# ReportingPackage

> A board or lender pack as one object: contents, basis, review state.

Source: https://lopifi.com/components/reporting-package
Part of: Lopifi — US GAAP books on autopilot, checked by a CPA (https://lopifi.com)

---

- **Family:** Statements — **The largest gap in the market.** Nothing else has these.
- **Status:** Implemented
- **Spec:** https://lopifi.com/docs/catalog/06-statements

## Install

```bash
npx shadcn@latest add @lopifi/theme
npx shadcn@latest add @lopifi/reporting-package
```

## Specification

A board or lender pack as one object: a cover (`ReportHeader`), a contents list of sections (statements, key figures, commentary, schedules, notes) with page numbers and anchors, prepared / reviewed / approved sign-offs with names, timestamps and versions, and one basis and period for the whole pack.

- **The cover states the pack's basis, period and currency once.** A section that departs from it (a cash-basis covenant schedule, a trailing-twelve-month KPI page) declares `basis`, `currency` or `periodLabel`, and the contents flag the departure in words. A pack never mixes bases silently.
- **"Draft" is added to the cover until all three sign-offs stand on the version being read.** No caller can print an unapproved pack without it.
- **Approvals bind to a version.** A sign-off recorded against an earlier version is shown as void, with both versions named.
- **Segregation of duties is enforced, not configurable.** A review or approval by the preparer is recorded, struck through, and doesn't count.
- **No signatures are drawn.** A sign-off is the recorded approval: name, title, timestamp with zone, version.
- Sections that carry `content` are linked from the contents and render below, each opening a printed page; sections without it list their page and link nowhere.
- Server-safe. The contents are fragment links; nothing holds state.

## Rules this component obeys

Money is minor units, never floats. `null` is not `0` and neither is redacted. Negatives render in accounting parentheses with the parenthesis column reserved on both sides. Debit and credit are two columns. Per-currency decimal places. Polarity is explicit — up is not always good. Every figure states its period, entity, currency, basis and as-of.
