2.6 KiB
zfin audit
Two modes in one command: a portfolio hygiene check, and reconciliation against a brokerage export.
Usage: zfin audit [opts]
Flagless runs the hygiene check -- stale manual prices, accounts overdue for update, and auto-discovered brokerage-file candidates. With brokerage flags, it reconciles your portfolio against the export (treating the brokerage as source of truth) and reports discrepancies.
Options
| Flag | Effect |
|---|---|
--verbose |
Show full reconciliation output even when clean. |
--stale-days <N> |
Manual-price staleness threshold (default 3). |
--fidelity <CSV> |
Fidelity positions CSV ("All accounts" -> Positions tab -> Download). |
--schwab <CSV> |
Schwab per-account positions CSV. |
--schwab-summary |
Schwab account summary: paste from the summary page to stdin, then Ctrl-D. |
Reconciliation matches export accounts to yours via institution:: and
account_number:: in accounts.srf; an
unmatched account is reported as "unmapped."
The hygiene check also flags newly-appeared lots worth at least
$10,000 in a Large new lots - confirm source section, so you can
confirm whether each is a real contribution or an unrecorded transfer.
The cutoff is per account -- raise or lower it on an account's record
via audit_large_lot_threshold
in accounts.srf (e.g. to silence a noisy ESPP account).
Example (hygiene check)
ZFIN_HOME=examples/pre-retirement-both zfin audit
Portfolio hygiene
Stale manual prices (>3 days - --stale-days to configure)
(none)
Accounts overdue for update (weekly default - set update_cadence in accounts.srf)
Sam 401k weekly no update history found
Joint taxable weekly no update history found
Brokerage exports contain real account numbers and holdings. Keep them out of any git repo and delete them after reconciling.
See also
- Audit against your brokerage -- the workflow.
import-- build a portfolio file from an export instead.accounts.srfreference --update_cadence,institution,account_number.