# fleet.company-car-bik Status: needs review by a tax professional before it is published. The taxable benefit in kind of a company car for one UK tax year, and of free fuel for it: what goes on a P11D or is payrolled. It follows the method in ITEPA 2003 s121: 1. the price: list price plus taxable accessories (`listPrice`), less the employee's capital contributions, of which only the first 5,000.00 counts (s132); 2. times the appropriate percentage for the car's CO2 figure and, for 1-50 g/km, its electric range, in that tax year (s139), plus the 4% diesel supplement where it applies (s141); 3. cut for the days the car was unavailable: price x percentage x (days in year - unavailable days) / days in year (s143); 4. less what the employee was required to pay, and paid, for private use, never below nil (s144). Free fuel (s149-150) is the year's car fuel benefit multiplier times the same appropriate percentage, cut for the same unavailable days. It is not reduced by private use payments. Electricity is not fuel (s149(4)), so a zero-emission car has no fuel benefit even when `freeFuel` is true. `taxYear`, `daysInYear` (366 in a year containing 29 February, such as 2023-24 and 2027-28) and the percentage come back with the answer, so a payroll line can show its working. ## What the caller decides - `co2` is the whole-number g/km on the registration documents: the NEDC figure for a car first registered before 6 April 2020, WLTP otherwise. s139(2) rounds a fractional figure down; do that before calling. - `electricRangeMiles` is rounded up to a whole mile (s139(2)(b)). It only matters for 1-50 g/km up to 2027-28; from 2028-29 every 1-50 g/km car has one percentage. - `dieselSupplement` is true for a car propelled solely by diesel that is not certified to Euro 6d (RDE2). Hybrids are not "solely by diesel". The supplement never takes the percentage past the year's maximum. - `firstRegistered` picks the table column. Only 2021-22 has different percentages for cars first registered before 6 April 2020 (NEDC, one point higher). It must not be after the tax year. - `unavailableDays` are the days before the car was first available, after it was last available, and in any spell of 30 or more consecutive days when it was not available. Shorter gaps do not count; this function trusts the count. ## Rounding Each benefit is one exact division, rounded down to the penny, so neither is ever more than the statutory figure. The P11D takes whole pounds; converting is left to the caller. The same rounding is used for 2021-22 and 2029-30. ## What it does not do Cars without a CO2 figure (s140), cars first registered before 1998 (s142), shared cars, a replacement car (s145), classic cars valued at market value, optional remuneration arrangements (salary sacrifice, s121A), fuel withdrawn part way through the year (s152), and the easement for plug-in hybrids approved under Euro 6e-bis from 1 January 2025 (EIM24710). Vans are a different charge. ## Rates Three tables in `data/`, each with dated rows, looked up on `onDate`: - `bik-bands.json`: the percentages below 75 g/km, including 0 g/km and the 1-50 g/km electric range bands, by tax year and registration column. - `bik-limits.json`: the percentage at 75 g/km, the maximum, the 4% diesel supplement and the 5,000.00 capital contribution cap. From 75 g/km the percentage rises one point per whole 5 g/km (s139(3)). Note that since 2025-26 the 70-74 and 75-79 g/km bands share a percentage (21% in 2026-27), so "one point per 5 g/km from 55" gets 75-79 wrong. - `fuel-multipliers.json`: the car fuel benefit multiplier, 24,600 (2021-22), 25,300, 27,800, 27,800, 28,200 and 29,200 (2026-27). The multiplier for 2027-28 and later is set each Budget and is not published yet, so free fuel in those years is an error rather than a guess; 2027-28 onward percentages are legislated, so the car benefit itself is answered. | tax year | 0 g/km | 1-50 g/km by range (130+, 70-129, 40-69, 30-39, <30) | 51-54 | at 75 g/km | max | |---|---|---|---|---|---| | 2021-22 WLTP | 1% | 1, 4, 7, 11, 13% | 14% | 19% | 37% | | 2021-22 NEDC | 1% | 2, 5, 8, 12, 14% | 15% | 20% | 37% | | 2022-23 to 2024-25 | 2% | 2, 5, 8, 12, 14% | 15% | 20% | 37% | | 2025-26 | 3% | 3, 6, 9, 13, 15% | 16% | 21% | 37% | | 2026-27 | 4% | 4, 7, 10, 14, 16% | 17% | 21% | 37% | | 2027-28 | 5% | 5, 8, 11, 15, 17% | 18% | 21% | 37% | | 2028-29 | 7% | 18% | 19% | 22% | 38% | | 2029-30 on | 9% | 19% | 20% | 23% | 39% | Years before 2021-22 are not carried and are an error. The tables declare effective columns, so a `history=current` build refuses an earlier tax year instead of answering it with today's figures. When a rate changes, a new version of this capability carries it. ## Sources - HMRC Employment Income Manual, EIM24705, "Car benefit calculation: step 5: appropriate percentage: tax years 2015 to 2016 onwards: ready reckoner for type A cars" (tables 2020-21 to 2026-27, NEDC and WLTP columns, the diesel supplement and Euro 6d): https://www.gov.uk/hmrc-internal-manuals/employment-income-manual/eim24705 - Finance Act 2023 s11 (tables for 2025-26, 2026-27 and 2027-28, and 21% at 75 g/km): https://www.legislation.gov.uk/ukpga/2023/1/section/11/enacted - Finance Act 2025 s5 and s6 (2028-29 and 2029-30, maximum 38% and 39%): https://www.legislation.gov.uk/ukpga/2025/8/section/5/enacted and https://www.legislation.gov.uk/ukpga/2025/8/section/6/enacted - HMRC policy paper, "Taxation of company cars: The appropriate percentage for tax years 2028 to 2029 and 2029 to 2030" (30 October 2024): https://www.gov.uk/government/publications/income-tax-company-car-tax-rates-2028-to-2030 - ITEPA 2003 s132 (capital contributions, 5,000), s139, s141 (diesel), s143 (unavailability), s144 (private use payments), s149 (fuel; electricity is not fuel): https://www.legislation.gov.uk/ukpga/2003/1/part/3/chapter/6 - HMRC, "Travel - mileage and fuel rates and allowances" (car fuel benefit multiplier by tax year): https://www.gov.uk/government/publications/rates-and-allowances-travel-mileage-and-fuel-allowances/travel-mileage-and-fuel-rates-and-allowances 1.0.1 fixes Python accepting a trailing newline or non-ASCII digits in firstRegistered and onDate; adds tests. ## Before you rely on this **Not professional advice.** This capability calculates tax figures from published rules. It is a software component for developers, not tax advice. Rules change and every rate here has an effective date. Check that the dates cover your case. Verify results against the official sources listed above, and have a payroll or benefits-in-kind specialist review how you use it, before anyone relies on the output. Provided "as is" under its licence, without warranty. **Unreviewed.** This capability's implementations agree in every language and pass its published test vectors, which were worked out from the official sources cited. But no qualified payroll or benefits-in-kind specialist has yet checked those vectors, or confirmed that the capability covers the cases it claims. Treat it as a draft. Do not use it for real people, money or decisions without your own expert review. Once a qualified reviewer signs off, this notice is replaced with their name, qualification and the date. Each new version needs fresh sign-off. ## Notices Contains public sector information licensed under the Open Government Licence v3.0 (https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/). Legislation: Crown copyright and database right. 1.0.2 marks it unreviewed and adds its attribution notices (NOTICE). The code and the tests are unchanged.