Following the Belgium pilot pattern (#447, draft PR #448: AxiomBelgiumPilot as a raw TaxBenefitModelVersion outside certified-release machinery): add an AxiomGhanaPilot wrapping the rulespec-gh encodings (Act 1111 individual rate schedule + Act 896 Fifth Schedule personal reliefs, both merged and GHAMOD-validated — per-case parity exact to the cedi on everything both systems model; GHAMOD's own missing 35% top band documented and reported upstream to UNU-WIDER).
Prerequisite: the composed gross-to-tax program (rulespec-gh#5 — s.2 chargeable-income chain + axiom-programs spec). Once that lands, this adapter is thin: household inputs → composed program via the engine bindings → Simulation(...).run().
Motivation: runnable pip install policyengine examples for Ghana strengthen the TaxDev/IFS conversation about African tax-benefit tooling (inbound from ODI, July 2026).
🤖 Generated with Claude Code
Following the Belgium pilot pattern (#447, draft PR #448: AxiomBelgiumPilot as a raw TaxBenefitModelVersion outside certified-release machinery): add an AxiomGhanaPilot wrapping the rulespec-gh encodings (Act 1111 individual rate schedule + Act 896 Fifth Schedule personal reliefs, both merged and GHAMOD-validated — per-case parity exact to the cedi on everything both systems model; GHAMOD's own missing 35% top band documented and reported upstream to UNU-WIDER).
Prerequisite: the composed gross-to-tax program (rulespec-gh#5 — s.2 chargeable-income chain + axiom-programs spec). Once that lands, this adapter is thin: household inputs → composed program via the engine bindings → Simulation(...).run().
Motivation: runnable
pip install policyengineexamples for Ghana strengthen the TaxDev/IFS conversation about African tax-benefit tooling (inbound from ODI, July 2026).🤖 Generated with Claude Code