Nine Files For One Tax Rate
Decide what you would do from the brief alone, including whether you would change anything at all. Everything below it is available, but the exercise stops working if you open it first.
Adding a reduced VAT rate for one product category is estimated at two weeks. The rule itself is four lines. The branch touches nine files: checkout, the invoice renderer, the quote endpoint, the CSV export, the admin edit screen, the refund path, the reporting job, a fixture builder and a seed script.
Extracting the rate into config/constants.ts as TAX_RATES and having all nine sites import it. The next *rate* change really is a one-line edit, so the fix looks proven by the very next ticket. It is not the rate that was duplicated, it is the rule — the qualifying categories, the exemption interaction, the shipping treatment, the rounding step. Those nine sites still each implement that, they already disagree in two places, and now they disagree while visibly sharing a constant, which makes the divergence harder to spot and easier to argue is impossible. A constants file extracts the part of the knowledge that was never the problem.
Read this even if you are confident. It is here rather than behind a button because it is the answer most teams actually ship, it passes review, and the cost of it does not arrive until the change after this one.