# Map your accounts **Goal:** create an `accounts.srf` that tags each account with its tax treatment (and, optionally, its institution and maintenance cadence). This unlocks the **By Tax Type** breakdown, an umbrella-insurance exposure estimate, and broker reconciliation. **You'll need:** a `portfolio.srf` whose lots use `account::` labels ([build one first](set-up-your-portfolio.md)). Full field list: [`accounts.srf` reference](../reference/config/accounts-srf.md). ## 1. List your accounts with a tax type One record per account. The `account::` name must match the `account::` value on your lots **exactly**. The minimum is a tax type: ```srf #!srfv1 account::Pat 401k,tax_type::traditional account::Pat Roth,tax_type::roth account::Joint taxable,tax_type::taxable account::Family HSA,tax_type::hsa ``` The four recognized tax types are `taxable`, `roth`, `traditional`, and `hsa`. Run analysis to see the breakdown: ```bash ZFIN_HOME=~/finance zfin analysis ``` ``` By Tax Type Traditional (Pre-Tax) █████████████████▋ 58.9% $815,290.06 Taxable ██████▍ 21.6% $299,010.60 Roth (Post-Tax) █████ 16.9% $233,732.95 HSA (Triple Tax-Free) ▊ 2.5% $35,104.20 ``` Accounts you don't list show up as "Unknown." ## 2. Add institution and account number (for auditing) If you plan to reconcile against brokerage exports ([audit guide](audit-against-brokerage.md)), add the institution and a (placeholder) account number so zfin can match export files to accounts: ```srf account::Pat 401k,tax_type::traditional,institution::fidelity,account_number::P401 account::Joint taxable,tax_type::taxable,institution::schwab,account_number::JT01 ``` Recognized institution keys include `fidelity`, `schwab`, `vanguard`, and `wells_fargo`. ## 3. Tune the maintenance cadence [`zfin audit`](../reference/cli/audit.md) (run with no flags) nags you about accounts you haven't refreshed recently. The default cadence is `weekly`; relax or silence it per account: ```srf account::Family HSA,tax_type::hsa,update_cadence::quarterly account::Old Rollover,tax_type::traditional,update_cadence::none ``` ## 4. Advanced flags Two flags change how analysis treats an account. Both are optional -- see the reference for details: - **`shielded:bool:false`** -- mark a pre-tax account that is *not* judgment-protected (deferred comp, a weak-state IRA) so it counts toward your [umbrella-insurance exposure](read-your-portfolio.md#umbrella-exposure) -- the slice of net worth a personal umbrella liability policy is meant to cover. - **`cash_is_contribution:bool:true`** -- treat cash increases on this account as real external contributions in [`zfin contributions`](track-contributions.md), instead of internal noise. ## Example (from `examples/pre-retirement-both`) ```srf #!srfv1 account::Pat 401k,tax_type::traditional,institution::fidelity,account_number::P401 account::Pat Roth,tax_type::roth,institution::fidelity,account_number::PROTH account::Sam 401k,tax_type::traditional,institution::vanguard,account_number::S401 account::Joint taxable,tax_type::taxable,institution::schwab,account_number::JT01 account::Family HSA,tax_type::hsa,institution::fidelity,account_number::HSA01 ``` ## Next steps - [Read your portfolio](read-your-portfolio.md) -- the breakdowns this unlocks. - [Audit against your brokerage](audit-against-brokerage.md) -- put `institution`/`account_number` to work. --- [Previous: Classify your holdings](classify-holdings.md) | [Next: Read your portfolio](read-your-portfolio.md) | [Documentation home](../README.md)