# ConversionBreakdown

> Amount → fee → rate → recipient gets. Every line.

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

---

- **Family:** Swaps & FX — 
- **Status:** Implemented
- **Spec:** https://lopifi.com/docs/catalog/04-swaps-fx

## Install

```bash
npx shadcn@latest add @lopifi/theme
npx shadcn@latest add @lopifi/conversion-breakdown
```

## Specification

> Wise's honesty pattern, as a component. Every line visible.

```
Amount to convert                    1,000.00 USD
Our fee                                 −4.50 USD   ← itemized, named
Amount we'll convert                   995.50 USD
                                      ──────────    ← single rule
Rate  1 USD = 0.91842 EUR  · 09:12 UTC
Recipient gets                         914.29 EUR
                                      ══════════    ← double rule
```

- **Every fee named and itemized.** Never a lump "Fees".
- The rate line carries its timestamp.
- Uses `Rule` — the same grammar as the statements, which is what makes the library feel like one system.
- Percentage-of-total splits use largest-remainder allocation, so the parts sum to the total exactly.

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