{
  "schema": "equity-tax-platform/corrections/1",
  "about": "Every fix to this app's calculation that could have changed a figure somebody put on a tax return. site/corrections.html is built from this file, and the same file is served at /corrections.json so the app can compare a saved computation's engine version against the affected releases. docs/corrections.md says when an entry has to be added and who writes it.",
  "beta_opened": null,
  "release_order": [],
  "release_order_note": "Every release commit that has been published, oldest first, taken from release-pins/app.json at release time (bin/release_pin.py). It is empty until the first pinned deploy. A saved computation whose commit is not in this list cannot be placed in time from inside a browser, and web/corrections.js says 'unknown' rather than guessing.",
  "corrections": [
    {
      "id": "2026-09-18-same-day-share-trades",
      "date": "2026-09-18",
      "title": "More than one share trade on the same day was matched in the order the trades happened to be listed",
      "tax_years": ["2023-24", "2024-25", "2025-26", "2026-27"],
      "filed_figure": true,
      "who": "Anyone whose broker reported more than one purchase, or more than one sale, of the same share on one day. A vest day filled in several pieces, a sell-to-cover alongside a sale of the rest, an ESPP purchase landing on a vest date.",
      "figure": "The capital gain or loss on the capital gains pages (SA108), and the tax on it.",
      "direction": "either",
      "direction_note": "Either way. The answer depended on which order the trades arrived in, so the same day's trading could produce a gain or a loss.",
      "largest_effect": "On invented test cases: £980 of gain on a £3,000 disposal moved purely by the order the trades were listed in. On one case the tax differed by £469.48, because the gain crossed the rate change of 30 October 2024. Another case reported a loss of £101.15 that does not exist as a transaction at all.",
      "fixed_in": "d8142ada0f09ffae04364acb428cb1998a7f968b",
      "fixed_in_subject": "A day's trades are one transaction, and the order they arrived in is not an identification rule",
      "how_to_tell": "Each disposal in the working now lists the trades that were added together to make it, with a note about section 105 of the Taxation of Chargeable Gains Act 1992. A pack whose disposals carry no such list, and no count of the trades on the day, was produced before this was fixed. Only a day with more than one trade was affected."
    },
    {
      "id": "2026-09-19-same-day-sterling-conversion",
      "date": "2026-09-19",
      "title": "A day's trades in a foreign currency were converted to sterling one fill at a time",
      "tax_years": ["2023-24", "2024-25", "2025-26", "2026-27"],
      "filed_figure": true,
      "who": "Anyone who sold or bought shares in a currency other than sterling — in practice a US broker — on a day the order was filled in more than one piece.",
      "figure": "The proceeds and the gain on the capital gains pages (SA108).",
      "direction": "either",
      "direction_note": "Either way, by a rounding of up to one penny for each extra fill on the day.",
      "largest_effect": "Up to one penny for each fill after the first. On an invented case a day split into ten fills gave proceeds of £1,026.53 where £1,026.54 is right. Where the pence straddle a pound it can move a whole-pound box by £1.",
      "fixed_in": "9a6d80a45858166d9c5b2065f57e2f7330f0081f",
      "fixed_in_subject": "One transaction, one consideration, one conversion",
      "how_to_tell": "Each part of a disposal now carries the amount in the currency it was traded in as well as in sterling. A pack without those per-part currency amounts was produced before this was fixed, and only a day with more than one fill was affected."
    },
    {
      "id": "2026-09-18-isa-disposal-taxed",
      "date": "2026-09-18",
      "title": "A sale inside a stocks and shares ISA was taxed as though it were a taxable account",
      "tax_years": ["2023-24", "2024-25", "2025-26", "2026-27"],
      "filed_figure": true,
      "who": "Anyone with a stocks and shares ISA at a platform that issues the same kind of contract note for every account it holds for a person. Hargreaves Lansdown, Interactive Investor and AJ Bell all do.",
      "figure": "Chargeable gains on the capital gains pages (SA108).",
      "direction": "too high",
      "direction_note": "Too high. A gain that is not taxable was added to the taxable ones.",
      "largest_effect": "There is no ceiling to quote: it is the whole gain on the ISA sale.",
      "fixed_in": "64854adc4523d59e7611e0fb95cacd7820beb54e",
      "fixed_in_subject": "Which account a sale was made in, and losses that remember which year they are from",
      "how_to_tell": "Every disposal in the working now names the account it was made in and says whether it is taxable or tax free. A pack whose disposals do not name an account was produced before this was fixed."
    },
    {
      "id": "2026-09-18-losses-brought-forward",
      "date": "2026-09-18",
      "title": "A capital loss from an earlier year could not be entered, and a loss for a later year was worked out and then dropped",
      "tax_years": ["2023-24", "2024-25", "2025-26", "2026-27"],
      "filed_figure": true,
      "who": "Anyone who has ever sold shares at a loss. In a browser there was no way to enter a loss from an earlier year at all.",
      "figure": "Chargeable gains on the capital gains pages (SA108), in the year the loss should have been set against gains and again in the year after.",
      "direction": "too high",
      "direction_note": "Too high, by the amount of the loss that could not be used.",
      "largest_effect": "There is no ceiling to quote: it is the size of the loss.",
      "fixed_in": "64854adc4523d59e7611e0fb95cacd7820beb54e",
      "fixed_in_subject": "Which account a sale was made in, and losses that remember which year they are from",
      "how_to_tell": "The working now carries a record of losses with the year each one arose and the date by which a claim for it has to be made. A pack with no such record was produced before this was fixed."
    },
    {
      "id": "2026-09-18-dollars-as-a-chargeable-asset",
      "date": "2026-09-18",
      "title": "The movement in the exchange rate between a sale and the conversion to sterling was described as a gain or loss on the dollars",
      "tax_years": ["2023-24", "2024-25", "2025-26", "2026-27"],
      "filed_figure": true,
      "who": "Anyone who sold shares in dollars and held the dollars in the brokerage account before converting them to sterling.",
      "figure": "Chargeable gains on the capital gains pages (SA108).",
      "direction": "either",
      "direction_note": "Either way. For an individual, foreign currency in a bank or brokerage account is not a chargeable asset (Taxation of Chargeable Gains Act 1992 sections 251(1) and 252). Where the dollar fell between the sale and the conversion, the app described an allowable loss that does not exist; where it rose, a gain that does not exist.",
      "largest_effect": "There is no ceiling to quote: it is the movement in the exchange rate on that person's own sale proceeds.",
      "fixed_in": "b1133f93e93870d93fd96ee8e25ba13b9746867f",
      "fixed_in_subject": "Dollars in a brokerage account are not a chargeable asset, and the app said they were",
      "how_to_tell": "The sentence printed above the table of sterling received. A pack that calls the difference a gain or a loss on the dollars themselves, citing CG78300, was produced before this was fixed."
    },
    {
      "id": "2026-09-18-child-benefit-charge-rounding",
      "date": "2026-09-18",
      "title": "The High Income Child Benefit Charge was worked out as a percentage of the child benefit with its pence still on",
      "tax_years": ["2023-24", "2024-25", "2025-26", "2026-27"],
      "filed_figure": true,
      "who": "Anyone receiving child benefit whose income put them in the band where the charge is tapered rather than at the full amount. The weekly rates of child benefit always have pence in them, so it applied to everyone in that band.",
      "figure": "The High Income Child Benefit Charge on the main return (SA100).",
      "direction": "too high",
      "direction_note": "Too high. Section 681C(3) of the Income Tax (Earnings and Pensions) Act 2003 rounds down three times; the app rounded down twice.",
      "largest_effect": "£1. On an invented case with adjusted net income of £75,200 in 2024-25 and child benefit of £1,772.84, the charge came out at £1,347 where £1,346 is due.",
      "fixed_in": "9ee7ccc25dc7c14e9bfe4d8ebad6af2c406fb606",
      "fixed_in_subject": "The child benefit charge is a percentage of whole pounds, not of the pence",
      "how_to_tell": "The working now shows the whole-pound child benefit total the percentage was taken of. A pack that shows a charge but no such total was produced before this was fixed."
    },
    {
      "id": "2026-09-19-income-tax-band-rounding",
      "date": "2026-09-19",
      "title": "Income tax was rounded once on the total rather than on each band as it was charged",
      "tax_years": ["2023-24", "2024-25", "2025-26", "2026-27"],
      "filed_figure": true,
      "who": "Everyone. It bites where income has pence in it and crosses a band, and hardest where there is a savings or dividend slice.",
      "figure": "Income tax on the main return (SA100), and everything worked out from it — the balance owed, and the total tax and National Insurance the pension figures are built on.",
      "direction": "too high",
      "direction_note": "Too high by one penny. HMRC's own calculation specification truncates each band as it is charged, which can only ever go one way.",
      "largest_effect": "One penny. It moved eleven of the twenty-five pinned test cases; the largest figure it moved was £70,094.51, where £70,094.50 is due.",
      "fixed_in": "72057a4f76a5dff5e692e33c3c54e684b0db23e3",
      "fixed_in_subject": "One rounding, where HMRC puts it: on each band, not on the total",
      "how_to_tell": "Add up the band rows printed in the working. If they do not add to the total printed under them, the pack was produced before this was fixed and the total is a penny high."
    },
    {
      "id": "2026-09-19-blind-persons-allowance-2026-27",
      "date": "2026-09-19",
      "title": "The blind person's allowance for 2026-27 was carried forward from 2025-26 instead of taking the published figure",
      "tax_years": ["2026-27"],
      "filed_figure": true,
      "who": "A blind taxpayer, on a 2026-27 calculation. Nothing in the app asks whether a person claims this allowance and nothing sets it, so no figure the app has produced has used it.",
      "figure": "The blind person's allowance, and so income tax on the main return (SA100).",
      "direction": "too high",
      "direction_note": "Too high. The allowance was £3,130 where £3,250 is published for 2026-27, so £120 less was set against income.",
      "largest_effect": "£120 of allowance, which is £54 of tax at the additional rate.",
      "fixed_in": "c036e15c2232934a4b20a59c39bbfaf0e28b81bf",
      "fixed_in_subject": "The blind person's allowance was never frozen, so it cannot be copied forward",
      "how_to_tell": "A 2026-27 pack that shows a blind person's allowance of £3,130. No pack the app has produced shows one at all."
    },
    {
      "id": "2026-09-18-scottish-annual-allowance-charge",
      "date": "2026-09-18",
      "title": "A Scottish taxpayer's annual allowance charge was worked out at rest-of-UK rates",
      "tax_years": ["2023-24", "2024-25", "2025-26", "2026-27"],
      "filed_figure": true,
      "who": "A Scottish taxpayer who put more into a pension in a year than the annual allowance allowed, after using up any unused allowance from the three earlier years.",
      "figure": "The annual allowance charge in the pension figures — the figure HMRC's HS345 working sheet produces for the additional information pages (SA101).",
      "direction": "too low",
      "direction_note": "Too low. The charge is sliced over the taxpayer's own band table, and Scotland's has five or six bands where the rest of the UK has three.",
      "largest_effect": "On a hand-worked case, £10,000 of excess on £100,000 of taxable income is £4,500 in Scotland and £4,000 elsewhere: £500.",
      "fixed_in": "9fbf6aa6955f14919e9d1c47449f2c684bc939fa",
      "fixed_in_subject": "A tapered prior year, a Scottish charge, and a defined-benefit accrual the taper never saw",
      "how_to_tell": "A pack for a Scottish taxpayer showing an annual allowance charge with no Scottish band table under it was produced before this was fixed."
    },
    {
      "id": "2026-09-18-scottish-top-rate-threshold",
      "date": "2026-09-18",
      "title": "The Scottish top rate started £12,570 too early for a taxpayer past the £100,000 allowance taper",
      "tax_years": ["2023-24", "2024-25", "2025-26", "2026-27"],
      "filed_figure": false,
      "who": "A Scottish taxpayer with income over about £100,000, where the personal allowance is being tapered away. Nobody below the taper was affected.",
      "figure": "The income tax figure in the pension figures and in the app's re-run of the PAYE your employer operated. Scottish income tax is not worked out for the return itself — that is on the standing list of what this app does not do — so no box on a return carried this.",
      "direction": "too high",
      "direction_note": "Too high. £12,570 of income was charged at the top rate that belongs at the advanced rate.",
      "largest_effect": "£377.10 on an invented 2025-26 case with employment income of £130,000, and £628.50 in 2023-24, where the step between the two rates is larger.",
      "fixed_in": "a4c3ece4fdbfd0b2c240c3a0689366e00d1de858",
      "fixed_in_subject": "A Scottish taxpayer past the £100,000 taper was charged 48% on £12,570 that belongs at 45%",
      "how_to_tell": "A pack for a Scottish taxpayer with income over £100,000 whose band table ends its last finite band at £112,570 rather than at £125,140."
    },
    {
      "id": "2026-09-18-annual-national-insurance-2023-24",
      "date": "2026-09-18",
      "title": "National Insurance for 2023-24 was charged at one of the year's two rates for the whole year",
      "tax_years": ["2023-24"],
      "filed_figure": false,
      "who": "Anyone whose National Insurance was worked out on a whole-year basis for 2023-24 — which is how the pension figures price a change to salary sacrifice. Categories C, J and Z were not affected.",
      "figure": "The employee National Insurance figure in the working and in the pension figures. Class 1 National Insurance is not a box on a Self Assessment return, so this is not by itself a figure that was filed.",
      "direction": "too low",
      "direction_note": "Too low. The main rate was 12% to 5 January 2024 and 10% from 6 January 2024; the blended annual rate is 11.5%.",
      "largest_effect": "£565.50 at any income at or above £50,270, and proportionally less below it. £3,770.00 was shown where £4,335.50 is due.",
      "fixed_in": "0ad98ab8f5f7aee94eb23318a5b5d1bba89c8da0",
      "fixed_in_subject": "A year that changed its NI rate in January did not charge either rate for all of it",
      "how_to_tell": "Only a 2023-24 year, and only where National Insurance was taken for the year as a whole rather than pay period by pay period."
    },
    {
      "id": "2026-09-18-paye-recheck",
      "date": "2026-09-18",
      "title": "Three rules in the app's re-run of PAYE did not match HMRC's own specification",
      "tax_years": ["2023-24", "2024-25", "2025-26", "2026-27"],
      "filed_figure": false,
      "who": "Anyone on an ordinary tax code above 500, which is most people — 1257L is one. And anyone on a BR, D0, D1 or NT code, above all where the code changed to BR or NT part-way through a year.",
      "figure": "The app's own re-run of the PAYE an employer operated, and the difference it reports beside the tax deducted. The tax deducted on the employment pages (SA102 box 2) is copied from the P60 or the payslips and not from this re-run, so no figure on a return was worked out from it.",
      "direction": "either",
      "direction_note": "Either way. The free-pay rule was a penny a month low; a flat code was charged period by period where it should be cumulative, which on a code that changed mid-year meant no refund was shown at all.",
      "largest_effect": "On an ordinary code, up to 45p between two adjacent pay periods, netting to nil over the year. On a flat code that changed part-way through a year it is not small: on HMRC's own test data a month carrying a £29,406.05 refund was shown as £2,518.00 deducted.",
      "fixed_in": "0b2dd8a7cccf61ff2ef2180881252bd43bcd341e",
      "fixed_in_subject": "Three rules HMRC's own specifications state and the engine had wrong",
      "how_to_tell": "A PAYE recheck line reporting a difference of a few pence on an ordinary code, or any difference at all in a year where the tax code changed to BR or NT."
    }
  ]
}
