docs← Back to article

Markdown for LLMs

PolicyEngine

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# PolicyEngine

**In short:** PolicyEngine simulates what households receive under dated
tax-benefit parameters; Arxo establishes what the statute grants, with
grounds and refusals. On the US Earned Income Tax Credit they compute the
same quantity — through different gates. This page is for microsimulation
practitioners who want the exact comparability conditions.

## What PolicyEngine is for

PolicyEngine computes household tax-benefit outcomes with dated parameter
values carrying source links, single-household simulation, one-construct
reforms as baseline-versus-modified deltas, population runs over weighted
datasets, mass YAML tests with absolute error margins, per-release
validation against an external tax calculator, and a computation trace
tree — across mature US and UK model ecosystems.

## Where it meets Arxo

The shared quantity is the Earned Income Tax Credit: the simulator's dated
credit variable against Arxo's credit predicate, plus a reform-parameter
change and weighted-population runs, with the statute section as arbiter.
The UK side is blocked — no matching benefit package exists on the Arxo
side — and full microsimulation over a shared population sample is blocked
on a shared pinned dataset. Both blocks are stated with their unblock
conditions, not buried.

## Key differences

- **Compare base to base, or year to year — never mixed.** The
  inflation-adjustment multiplier in the Arxo package had no pinned revenue
  procedure at study time (closed later in the research line — see the
  direction's research report, section 16, and the 1 October 2026 status
  note on the US credits package); the
  simulator carries concrete year-dollars with uprating. Without an
  appended parameter source, year-cents comparison is non-comparable.
- **The formula is gated.** The credit equals a phased amount capped by a
  maximum-minus-reduction, times take-up, times filer status, defined only
  for the eligible. Every case must freeze the eligibility inputs, or a simulator
  zero is non-comparable — not a mismatch.
- **Take-up is receipt, not right.** The simulator's take-up flag defaults
  to true and is absent from Arxo: a zero from switched-off take-up means
  "not received", never "not entitled". Right-versus-receipt is a contract
  class of its own.
- **Precision has a contract.** Single-precision floats against exact
  arithmetic meet at a one-cent tolerance, stated before the run. Recorded
  YAML expectations are not engine behavior until the pin executes — and
  simulator dollars are never ported into the subject package.

## A concrete scenario

Fifteen frozen neutral cases — plateau maxima per child count, phase-in
and phase-out, the zero boundary, the disqualified-income limit, a
qualifying child, self-employment loss, a take-up control, a fixed-dollar
reform, year-to-year parameter edits, and a pandemic-era edition case with
its historical expectation — run the same inputs through simulator
scenarios with reforms and the Arxo stand, comparing deltas after minus
before.

## Choosing and combining

Choose PolicyEngine for household simulation, reform deltas, and
population-weighted pictures with documented tolerances. Look to Arxo for
the individual entitlement with its grounds, its edition, and its refusals
— including the honest "no model" where parameter sourcing is missing.
Combined, the simulator pictures the population while Arxo decides the
contestable case; the eligibility inputs and parameter sources are the shared
contract between them.

## Evidence and open questions

- Sources checked: September 2026 (framework docs, simulation and reform
  guides, the studied parameter files, revenue procedures, full hash
  re-verification).
- Studied profile: the core and US packages at pins; the UK package by
  master version only.
- Basis: confirmed by documentation and code reading (shallow clone, no
  build or run) plus a prepared protocol with frozen cases; comparative
  run not performed.
- Open: parameter-source alignment for year-cents, the UK side, the
  population dataset, and the run itself.

## Sources and reproducible materials

- Framework guides: [policyengine.github.io/policyengine-core](https://policyengine.github.io/policyengine-core/intro.html)
- Studied credit parameters:
  [policyengine_us/parameters/gov/irs/credits/eitc](https://raw.githubusercontent.com/PolicyEngine/policyengine-us/master/policyengine_us/parameters/gov/irs/credits/eitc/max.yaml)