docs: explain the dashboard's field names and the four money settings - #240
Merged
Conversation
Two gaps, split along what the operator SEES vs. what the operator EDITS. The TUI prints keel's internal field names verbatim -- `equity_state_mode`, `high_water_mark`, `drawdown`, `rail11`, `paper_cash_usdc`, and the activity overlay's `sig blk ent exi err` columns -- and nothing on screen explains any of them. A dashboard of zeroes reads identically whether keel found no setup or found one and a rail vetoed it, which is the difference between an idle deployment and a correctly-declining one. Add a Glossary section to the `h` overlay, in the existing `_row`/`_note` idiom, defining each term and making the `sig 0` vs. `sig 1 blk 1` distinction explicit. No new key binding; the widest new line is 85 columns against the help's existing 88, so nothing newly clips under `_paint`. The README documents the rails but not the four settings that decide how much money actually moves, nor how they interact. Add "How much money moves": - `paper.starting_equity_usd` is a ONE-TIME seed applied on the first paper run only (`agent.py`, the `get_cash() is None` branch). Editing it later resizes nothing, and no command clears the persisted `paper_cash_usdc`. - `paper.monthly_contribution_usd` compounds against that small base. - `caps.max_exposure_usd` is both the held-at-once ceiling AND the live sizing equity proxy, so `risk_pct` is a fraction of it rather than of real equity. - rail 14's allowance lives in `broker_subscriptions`, not config -- which is why it drifts out of step with the caps. Sizing scales with equity; the rail-14 allowance is a fixed dollar figure. When they drift apart every setup is vetoed and the system looks broken while working as designed -- recorded with the verified $11,000/$3,284.67-vs-$500 case, and with the mechanic that makes it counter-intuitive: a tighter stop yields a LARGER position, so a 1% risk became a 30% position. Documentation only -- no behaviour, default or config value changes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two documentation gaps, split along what the operator sees vs. what the operator edits.
TUI help (
hoverlay) — the vocabulary on screen_equity_linesprints keel's internal field names verbatim, and nothing on the dashboard explains them:The
voverlay addssig blk ent exi err. A screen of zeroes reads identically whether keel found no setup or found one and a rail vetoed it — the difference between an idle deployment and a correctly-declining one.Adds a Glossary section to the existing
hoverlay (after "Live balance", before "Help mode"), in the existing_row/_noteidiom:cycle,signal,sig / blk / ent / exi / err,paper_cash_usdc,equity_state_mode,high_water_mark / drawdown / rail11._paint; scrolling is unchanged (161 lines total).README — the settings in a file
Adds "How much money moves" after "Confirm vs. autonomy", covering the four settings and, crucially, how they interact.
paper.starting_equity_usdagent.py, thepaper_trader.get_cash() is Nonebranch). Editing it later resizes nothing, and no command clears the persistedpaper_cash_usdc.paper.monthly_contribution_usdcaps.max_exposure_usdrisk_pctis a fraction of it, not of real equitybroker_subscriptions(DB, not config) — which is why it drifts out of step with the capsThe interaction is the point: sizing scales with equity (or the proxy), the rail-14 allowance is a fixed dollar figure. When they drift apart every setup is vetoed and the system looks broken while working exactly as designed. Recorded with the verified case — $11,000 equity,
risk_pct: 0.01, a 3.35%-wide stop sizing to $3,284.67 against a $500/month allowance; reseeding at $500 sizes the same setup at $149.30. Plus the mechanic that makes it counter-intuitive: a tighter stop yields a LARGER position (size = risk ÷ stop-distance), which is how a 1% risk became a 30% position.Verification
Every claim was read out of the source, not assumed. Notable precision fixes made during review:
starting_equity_usd: 0seeds from real mark-to-market equity (a value> 0is an override, not a fallback); the sizing proxy applies to the live non-DCA ENTER path only — paper mode passesequity_override; the contribution is per UTC calendar month; andconfig.yamldoes still supply rail 14's tier catalogue and unattested fallback, so the DB claim is scoped to the in-force allowance.Documentation only — no behaviour, default, or config value changed.
pyproject.tomluntouched; nothing underdocs/experiments/touched.2668 = the 2664 baseline + 4 new tests; exactly the one expected skip.
🤖 Generated with Claude Code