Skip to content

Interactive Streamlit Experiment Lab (divvy ui) - #9

Merged
DanMat merged 1 commit into
mainfrom
ui-app
Jul 5, 2026
Merged

DanMat merged 1 commit into
mainfrom
ui-app

Conversation

@DanMat

@DanMat DanMat commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Adds a local, interactive UI for running portfolio experiments — the requested "compare my portfolios visually" feature.

What's in here

  • divvy ui launches a local Streamlit app (100% local, no data leaves the machine)
  • Sidebar: pick a contribution source (synthetic DCA or upload a date,amount CSV), configure 1–4 portfolios with an add/remove-ticker editor + weights
  • Main: headline metrics, sortable comparison table, and interactive value & cumulative-dividend charts
  • report.py refactor: shared value_over_time() / cumulative_dividends() helpers so the UI and the PNG report agree
  • Bug fix (caught by a smoke test): cumulative_dividends now keeps a unique date index when two holdings pay on the same ex-date
  • Streamlit is an optional [ui] extra; README documents it

Checklist

  • uv run pytest passes (13 tests)
  • ruff check + ruff format --check pass
  • App boots headless (HTTP 200 / health ok) and full data flow smoke-tested
  • No personal financial data committed

🤖 Generated with Claude Code

- src/divvy/ui.py: local web app to add/remove tickers, tweak weights,
  pick a contribution source, and compare portfolios live with a table,
  headline metrics, and interactive value/dividend charts
- divvy ui CLI command launches it; streamlit behind [ui] extra
- Refactor report.py: shared value_over_time()/cumulative_dividends()
  helpers (one source of truth for PNG report + UI), with tests
- Fix: cumulative_dividends kept a unique date index when multiple
  holdings pay on the same ex-date (caught by smoke test)
- README: document the Experiment Lab

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@DanMat
DanMat merged commit 97fbbb7 into main Jul 5, 2026
1 check passed
@DanMat
DanMat deleted the ui-app branch July 5, 2026 06:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant