

# Reports [#reports]

A report is the calculator-specific output returned by the SDK or HTTP API.
Reports are schema-backed values, not untyped result bags.

## When this matters [#when-this-matters]

Read the report when your application needs final amounts, ledger components
or trace-linked explanation. Keep assertions focused on fields your
application uses.

## How it works [#how-it-works]

```ts
import { Cents, aud } from "@taxkit/core/primitives";
import { au } from "@taxkit/sdk/au";

const report = await au.incomeTax.annual({
  taxableIncome: aud(Cents.make(9_000_000)),
});

console.log(report._tag);
console.log(report.liability.cents);
console.log(report.ledger.components.length);
```

Expected output includes:

```txt
AnnualTaxReport
1958800
3
```

This is the retained 2025–26 fixture. The
[annual calculation guide](/guides/calculate-annual-income-tax) explains
the pending Medicare threshold review; this output does not establish
current-law accuracy.

## Ledgers [#ledgers]

Ledgers break a calculation into components such as income tax, offsets and
Medicare levy. Components preserve trace information so a reviewer can inspect
how a total was assembled.

## Related concepts [#related-concepts]

* [Diagnostics](/concepts/diagnostics)
* [Graph, trace and ledgers architecture](https://github.com/crcorbett/taxkit/blob/a151e51e8a30247526fa93412df046955846eca4/docs/architecture/graph-trace-ledgers.md)
* [Calculate annual income tax](/guides/calculate-annual-income-tax)
