VAT Margin Scheme & Secon
HMRC VAT margin scheme stock-book, margin calculation and VAT-on-margin reporting
Resellers of second-hand goods, antiques, art and used vehicles can pay VAT on the profit margin instead of the full sale price, but only if they keep the stock-book HMRC requires and compute the VAT correctly, which most dealers wrangle in spreadsheets. This module runs both the standard margin scheme and the global accounting scheme: each item records its purchase and sale legs, the engine computes margin and VAT on the positive margin only (1/6 at 20 percent), and losses correctly carry zero VAT. A pool mode aggregates low-value bulk stock by period with loss carry-forward, and a wizard produces the period VAT-on-margin figures for the return. It suits car dealers, antique and art traders and their accountants. It generates the stock-book and figures; you file the VAT return.
Key Features
HMRC-compliant stock-book
The gb.margin.item model is the stock-book: each item carries stock reference, description, purchase date, purchase price, seller name, seller VAT and invoice references, plus the sale leg and an in_stock / sold / scrapped state. build_stock_book outputs the mandatory HMRC register columns ordered by purchase date.
VAT on the margin only
When an item is sold, _compute_margin works out margin as sale_price minus purchase_price and compute_vat_on_margin applies the vat_fraction (rate / (100 + rate), 1/6 at 20 percent) to the positive margin. VAT is charged on profit only, never the full sale price.
Losses carry zero VAT
Items sold below cost set is_loss and return zero VAT on margin, exactly as the scheme requires, with no negative VAT. The net_margin field shows margin less VAT for profitable items and the raw margin for losses, so the per-item position is always clear.
Global accounting pool mode
For low-value bulk stock the gb.margin.pool model aggregates total purchases and sales per period. _compute_margin taxes the net margin and, when negative, sets carry_forward; action_close propagates the carried-forward loss into the next open pool's opening_carry automatically.
Pool population from items
action_recompute_from_items sums stock-book purchases and sales whose dates fall inside the pool period, so the global accounting figures stay tied to the underlying items rather than being typed in. action_close and action_reopen control the period lifecycle.
Period VAT-on-margin report
The gb.margin.report wizard takes a date range and action_compute totals sold items' sales, eligible purchases, positive margin, losses, taxable margin and VAT due. action_view_items drills into the underlying sold items, giving the figures to feed the VAT return.
Scheme configuration and stock value
gb.margin.scheme sets the scheme_type (standard or global), category (second-hand, art, antiques, vehicles), VAT rate and margin VAT account, with per-company multi-currency support. _compute_stats and action_stock_value report items in stock, sold counts, total margin, VAT due and stock-on-hand value.
Use Cases
Screenshots
Vatonmargin Report
Why Choose This Module
Run the HMRC VAT margin scheme (and the global accounting scheme) for resellers of second-hand goods, antiques, works of art and collectors' items. Odoo charges VAT on the full sale price — but under the margin scheme you only pay VAT on the profit margin. This module maintains the compliant stock-book HMRC requires and computes VAT correctly, so dealers stop doing it by hand in spreadsheets.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: account
- Support: support@pokutsoft.com
Update date: 2026-07-10