Making Tax Digital VAT Ad
Record HMRC VAT scheme adjustments - retail schemes, fuel scale charges and partial exemption - cleanly, not hacked into journals
UK VAT returns regularly need adjustments that never come from ordinary invoices: retail-scheme apportionment, the fuel scale charge for private fuel, the partial-exemption recovery calculation, bad-debt relief and in-threshold error corrections. Most businesses hack these straight into a journal with a cryptic memo, leaving Box 1 and Box 4 impossible to audit. This module gives each adjustment type a structured vat.adjustment record with the inputs HMRC expects, a transparent calculation (VAT-fraction retail maths, CO2-banded fuel scale charges, standard-method partial exemption with de-minimis) and a one-click, correctly-tagged journal posting into your VAT control accounts, plus a period-close batch wizard. It does not submit anything to HMRC; it complements your own MTD VAT bridge by landing pre-corrected, fully documented figures in the control accounts, with a per-box report that the bridge can read so the totals it submits are already right.
Key Features
Structured adjustment record per type
vat.adjustment captures retail scheme, fuel scale, partial exemption, bad-debt relief, error-correction and manual notes, each with period, target VAT box, direction and a working/explanation note. _calculate_amount computes computed_vat per type, so every Box 1 or Box 4 figure traces to documented inputs rather than a memo line.
Retail scheme apportionment maths
For apportionment 1/2, point-of-sale and direct-calculation schemes, _calculate_amount applies the VAT fraction rate/(100+rate) to the standard-rated portion of gross takings or expected selling price. The standard-rated VAT due is derived consistently instead of estimated by hand.
CO2-band fuel scale charge
vat.fuel.scale.band holds the HMRC CO2-banded charge table, and find_band rounds emissions down to the nearest 5 to pick the right band. A vat.fuel.scale.charge per vehicle and period (1/3/12-month) computes the gross charge and embedded vat_due automatically.
Standard-method partial exemption
vat.partial.exemption computes the recovery percentage (rounded up per the standard method), apportions residual input tax, and runs the de-minimis test (within the limit and under 50% of total input). It outputs recoverable_input_tax and supports the year-end annual adjustment.
Source-to-adjustment generation
A fuel scale charge or partial-exemption calculation creates its vat.adjustment via action_create_adjustment, pre-filling the type, period, VAT box and an explanatory note. The detailed working stays linked to the adjustment that hits the return for full traceability.
Correctly-tagged journal posting
action_post validates the journal and VAT control/counterpart accounts, then _create_journal_entry posts a balanced account.move debiting/crediting per the increase/decrease direction and applying the chosen tax_tag_ids. action_reset_draft safely reverses a posted move, so adjustments land in the right control accounts.
Period-close batch posting
The vat.period.close.wizard lists confirmed adjustments in a date range, shows the count and total, and posts them all in one pass, back-filling the journal and accounts where missing. A whole VAT period's adjustments are finalised together rather than one at a time.
Per-box reporting and bridge feed
vat.adjustment.report is a SQL view aggregating confirmed/posted adjustments into increase, decrease and net totals per VAT box and period. net_adjustment_for_box exposes the net figure for a date range so an MTD VAT bridge can pull pre-corrected period totals.
Use Cases
Screenshots
Fuel Scale Bands
Fuel Scale Charges
Partial Exemption
Vat Adjustments
Why Choose This Module
Retail scheme apportionment, the fuel scale charge for private fuel and the partial-exemption recovery calculation rarely come from ordinary invoices — so most businesses post them straight into a journal with a cryptic memo, leaving the VAT return impossible to audit. This module gives each adjustment a structured record, a transparent calculation and one-click, correctly-tagged posting.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: account
- Support: support@pokutsoft.com
Update date: 2026-07-02