What are you changing?

Use this page when you know the behaviour you want to change, but not the owning package or review evidence yet.

What do you need to change?

New input, derived value or question

New tax formula, threshold or source-backed derivation

New public calculation goal or report

New tax year or parameter period

A result disagrees with a source or known scenario

PR evidence checklist

If you want toStart withOwning package
Add an input fact, derived fact or question promptAdd a factUsually @taxkit/core for shared descriptors, or the owning rule package for rule-specific facts
Add or change a tax formula, threshold, parameter table or source-backed derivationAdd a rule@taxkit/rules-au-pay, @taxkit/rules-au-income-tax or @taxkit/rules-au-stsl
Add a public calculation goal, request context or report shapeAdd a calculatorRule package for the calculator program, @taxkit/calculators for reusable orchestration
Add support for another tax yearAdd a tax yearThe rule package that owns the parameter table and calculator context
Fix a reported incorrect resultFix an incorrect resultThe package that owns the failing fact, rule, parameter table or calculator
Change HTTP endpoint shape or SDK helper shapeBackward compatibility@taxkit/api-http for transport contracts, @taxkit/sdk for SDK facades
Prepare a reviewable pull requestPR evidence checklistThe package you changed, plus public docs when behaviour changes

Boundary rule

HTTP and SDK layers must not hide tax business logic. Put calculator lookup, fact decoding, rule execution, graph assembly and expected calculator errors in the owning engine, rule or calculator package. HTTP handlers can translate route input and status envelopes. SDK helpers can adapt developer-facing calls to canonical calculator requests.

For deeper boundaries, read Package ownership and API and SDK.

Next step

Open the guide that matches your intent, then keep PR evidence checklist open while you work.