# ThreeWayMatch

> Line-level variances, not header totals.

Source: https://lopifi.com/components/three-way-match
Part of: Lopifi — US GAAP books on autopilot, reviewed by a CPA (https://lopifi.com)

---

- **Family:** Payables (AP) — 
- **Status:** Implemented
- **Spec:** https://lopifi.com/docs/catalog/11-payables

## Install

```bash
npx shadcn@latest add @lopifi/theme
npx shadcn@latest add @lopifi/three-way-match
```

## Specification

PO, goods receipt, and invoice side by side, **line by line**, with differences highlighted at the line level. A header total that matches while lines don't is how overbilling hides. Tolerances displayed. A variance requires a disposition — accept with reason, request a vendor credit, partial-pay, or reject — never a silent pass.

## 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.
