# `zfin import` Synthesize a portfolio file from a brokerage positions export. Designed for managed accounts (direct-indexing baskets, accounts you don't track at lot granularity). ``` Usage: zfin -p import (--fidelity FILE | --schwab FILE | --wells-fargo FILE) [-y] ``` Each run **replaces** the target portfolio file with lots drawn from the export: - **Fidelity and Schwab** exports are per-position, so each (account, symbol) becomes one synthetic lot. Per-buy history is lost; git serves as the file-level history. - **Wells Fargo** exports list every tax lot, so each WF lot becomes a lot with its real trade date and cost. One WF file covers every account in the household. **Re-import merge:** when the target already exists, lots still present in the new export keep their prior `note::` and every hand-edited field (`ticker::`, `label::`, `price::`, `price_ratio::`, `drip::`, ...), so `git diff` flags only genuine brokerage changes. A lot whose export row has no buy date (every Fidelity/Schwab position, and a Wells Fargo `Intra-Day` fund) also keeps its prior `open_date` and `open_price`; new ones get an `open_date::1970-01-01` sentinel. Disappeared positions are dropped. ## Options | Flag | Effect | |--------------------------|-----------------------------------------------------------------| | `-p, --portfolio ` | Target file (a single concrete path, not a glob). **Required.** | | `--fidelity ` | Fidelity positions CSV. | | `--schwab ` | Schwab per-account positions CSV. | | `--wells-fargo ` | Wells Fargo positions spreadsheet (`-` for stdin). See below. | | `-y, --yes` | Don't prompt before overwriting an existing file. | Account resolution needs an [`accounts.srf`](../config/accounts-srf.md) next to the target with `institution::` + `account_number::` entries matching the export; import refuses to write when an export account is unmapped. A target that doesn't exist yet is created in the current directory, so run a first import from the portfolio's own directory. ## Wells Fargo On the WF site, download the positions spreadsheet with **Download Type** "Portfolio-Expanded Detail", **Portfolio View** "Positions", for all brokerage accounts. It saves as `WFA_Portfolio_Positions_*.xls`. - "Portfolio-Collapsed Detail" has no per-lot rows; import rejects it. - Each row names its account as `*1234`; map it with `institution::wells_fargo,account_number::1234`. - Cash is one lot per account: cash balance, sweep, and accrued interest combined, matching WF's own cash total. ## Example ```bash zfin -p portfolio_managed.srf import --fidelity ~/Downloads/Portfolio_Positions.csv zfin -p portfolio_wells_fargo.srf import --wells-fargo ~/Downloads/WFA_Portfolio_Positions_100326_1247.xls ``` ## See also - [`audit`](audit.md) -- reconcile an existing portfolio against an export instead of replacing it. - [Map your accounts](../../guides/set-up-accounts.md) -- the institution/number mapping import needs. --- [CLI command reference](index.md)