diff --git a/docs/guides/audit-against-brokerage.md b/docs/guides/audit-against-brokerage.md index 984a275..9f8502f 100644 --- a/docs/guides/audit-against-brokerage.md +++ b/docs/guides/audit-against-brokerage.md @@ -186,15 +186,28 @@ Portfolio Audit (brokerage is source of truth) `--verbose` prints the full comparison even when everything reconciles. -### Why "close" counts as a match +### Discrepancies, and which ones are muted - **Cash matches to the penny.** It's an exact figure on both sides, so any gap is real (e.g. money-market dividend accrual between updates) - and worth surfacing. -- **Securities get ~$1 of slack.** A sub-cent NAV-rounding difference on - a six-figure fund position can exceed a dollar without being - actionable, so small *value* deltas are tolerated -- but *share-count* - mismatches never are. + and is surfaced as a warning. +- **Securities get ~$1 of slack** for sub-cent NAV rounding on large + positions. Beyond that, a value delta is a **warning by default** -- + your records should reconcile to the dollar. +- **Two cases are muted instead** -- still shown (and still in the + totals), just greyed out as "expected, you probably don't care." Muting + never hides a discrepancy: + - **CDs.** zfin carries a CD at face value while the broker marks it to + the secondary market. That gap is muted up to a band computed from + the CD's own `rate` and time to maturity (capped at one year's + coupon); anything larger still warns. We can't reproduce the broker's + exact mark without a live yield, so we bound it instead. + - **Options.** zfin tracks options at cost while the broker marks to + market, and that gap is unbounded without a live quote. So an account + holding open options mutes its account-level value delta -- drill into + the per-position export (`--schwab` / `--fidelity`) to check share + counts, which are never muted. +- **Share-count mismatches are never muted.** ### Institutional share classes @@ -215,7 +228,7 @@ treatment to track drift. See CSVs. - Matching is only as good as the `institution::` / `account_number::` entries you keep in `accounts.srf`. -- Options and cash are reconciled separately from share counts. +- Options, CDs, and cash are reconciled separately from share counts. None of this is a reason to skip it -- it's the single best way to keep your records honest -- just know it expects some setup and an occasional