some readme cleanup

This commit is contained in:
Emil Lerch 2026-03-01 12:11:40 -08:00
parent b510a86b09
commit 9d86ccf2e5
Signed by: lobo
GPG key ID: A7B62D657EF764F8

104
README.md
View file

@ -121,15 +121,15 @@ Every data fetch follows the same pattern:
Cache files use [SRF](https://github.com/lobo/srf) (Simple Record Format), a line-oriented key-value format. Freshness is determined by file modification time vs. the TTL for that data type.
| Data type | TTL | Rationale |
|---------------|--------------|-------------------------------------------------|
| Daily candles | 24 hours | Only changes once per trading day |
| Dividends | 7 days | Declared well in advance |
| Splits | 7 days | Rare corporate events |
| Options | 1 hour | Prices change continuously during market hours |
| Earnings | 24 hours | Quarterly events, estimates update periodically |
| ETF profiles | 30 days | Holdings/weights change slowly |
| Quotes | Never cached | Intended for live price checks |
| Data type | TTL | Rationale |
|---------------|--------------|--------------------------------------------------|
| Daily candles | 24 hours | Only changes once per trading day |
| Dividends | 7 days | Declared well in advance |
| Splits | 7 days | Rare corporate events |
| Options | 1 hour | Prices change continuously during market hours |
| Earnings | 24 hours | Quarterly events, estimates update periodically |
| ETF profiles | 30 days | Holdings/weights change slowly |
| Quotes | Never cached | Intended for live price checks |
Manual refresh (`r` / `F5` in TUI) invalidates the cache for the current tab's data before re-fetching.
@ -210,35 +210,35 @@ zfin i --default-keys > ~/.config/zfin/keys.srf
Default keybindings:
| Key | Action |
|---|---|
| `q`, `Ctrl+c` | Quit |
| `r`, `F5` | Refresh current tab (invalidates cache) |
| `R` | Reload portfolio from disk (no network) |
| `h`, Left | Previous tab |
| `l`, Right, Tab | Next tab |
| `1`-`6` | Jump to tab |
| `j`, Down | Select next row |
| `k`, Up | Select previous row |
| `Enter` | Expand/collapse (positions, expirations, calls/puts) |
| `s` | Select symbol from portfolio for other tabs |
| `/` | Enter symbol search |
| `e` | Edit portfolio/watchlist in `$EDITOR` |
| `<` | Sort by previous column (portfolio tab) |
| `>` | Sort by next column (portfolio tab) |
| `o` | Reverse sort direction (portfolio tab) |
| `[` | Previous chart timeframe (quote tab) |
| `]` | Next chart timeframe (quote tab) |
| `c` | Toggle all calls collapsed/expanded (options tab) |
| `p` | Toggle all puts collapsed/expanded (options tab) |
| `Ctrl+1`-`Ctrl+9` | Set options near-the-money filter to +/- N strikes |
| `g` | Scroll to top |
| `G` | Scroll to bottom |
| `Ctrl+d` | Half-page down |
| `Ctrl+u` | Half-page up |
| `PageDown` | Page down |
| `PageUp` | Page up |
| `?` | Help screen |
| Key | Action |
|------------------------|------------------------------------------------------|
| `q`, `Ctrl+c` | Quit |
| `r`, `F5` | Refresh current tab (invalidates cache) |
| `R` | Reload portfolio from disk (no network) |
| `h`, Left, Shift+Tab | Previous tab |
| `l`, Right, Tab | Next tab |
| `1`-`6` | Jump to tab |
| `j`, Down | Select next row |
| `k`, Up | Select previous row |
| `Enter` | Expand/collapse (positions, expirations, calls/puts) |
| `s` | Select symbol from portfolio for other tabs |
| `/` | Enter symbol search |
| `e` | Edit portfolio/watchlist in `$EDITOR` |
| `<` | Sort by previous column (portfolio tab) |
| `>` | Sort by next column (portfolio tab) |
| `o` | Reverse sort direction (portfolio tab) |
| `[` | Previous chart timeframe (quote tab) |
| `]` | Next chart timeframe (quote tab) |
| `c` | Toggle all calls collapsed/expanded (options tab) |
| `p` | Toggle all puts collapsed/expanded (options tab) |
| `Ctrl+1`-`Ctrl+9` | Set options near-the-money filter to +/- N strikes |
| `g` | Scroll to top |
| `G` | Scroll to bottom |
| `Ctrl+d` | Half-page down |
| `Ctrl+u` | Half-page up |
| `PageDown` | Page down |
| `PageUp` | Page up |
| `?` | Help screen |
Mouse: scroll wheel navigates, left-click selects rows and switches tabs, double-click expands/collapses.
@ -426,20 +426,20 @@ account::HSA,tax_type::hsa
### Account fields
| Field | Type | Required | Description |
|---|---|---|---|
| `account` | string | Yes | Account name (must match `account::` in portfolio lots exactly) |
| `tax_type` | string | Yes | Tax classification (see below) |
| Field | Type | Required | Description |
|------------|--------|----------|-----------------------------------------------------------------|
| `account` | string | Yes | Account name (must match `account::` in portfolio lots exactly) |
| `tax_type` | string | Yes | Tax classification (see below) |
### Tax types
| Value | Display label |
|---|---|
| `taxable` | Taxable |
| `roth` | Roth (Post-Tax) |
| Value | Display label |
|---------------|-----------------------|
| `taxable` | Taxable |
| `roth` | Roth (Post-Tax) |
| `traditional` | Traditional (Pre-Tax) |
| `hsa` | HSA (Triple Tax-Free) |
| (other) | Shown as-is |
| `hsa` | HSA (Triple Tax-Free) |
| (other) | Shown as-is |
Accounts not listed in `accounts.srf` appear as "Unknown" in the tax type breakdown.
@ -530,10 +530,10 @@ accounts.srf Account to tax type mapping for analysis
### Dependencies
| Dependency | Source | Purpose |
|---|---|---|
| [SRF](https://github.com/lobo/srf) | Local (`../../srf`) | Cache file format and portfolio/watchlist parsing |
| [libvaxis](https://github.com/rockorager/libvaxis) | Git (v0.5.1) | Terminal UI rendering |
| Dependency | Source | Purpose |
|----------------------------------------------------|---------------------|--------------------------------------------------|
| [SRF](https://github.com/lobo/srf) | Local (`../../srf`) | Cache file format and portfolio/watchlist parsing |
| [libvaxis](https://github.com/rockorager/libvaxis) | Git (v0.5.1) | Terminal UI rendering |
## Building