Projects — AI & Automation

Investment Performance Dashboard.

A self-hosted system that turns raw brokerage data into institution-grade performance reporting — built in Python against the Schwab API, run on my own hardware. The design principle: numbers you saw yesterday should mean the same thing today.

$84,000

Invested

$101,250

Portfolio value

+$17,250

Lifetime gain

+$3,180

Net option premium

Illustrative sample data — not actual holdings or results

01 / 03

Brokerages tell you what you have — not how you're doing.

01

Benchmarked truth

Every month, the portfolio's Modified-Dietz return runs next to the same dollars and deposit dates invested in SPY and QQQ. Deposit timing and account size can't flatter the result.

02

Contributions ≠ growth

A rising balance feels like winning even when it’s just new deposits. Net external cash is tracked separately from market gains, dividends, and premium — "invested" and "earned" never mix.

03

Options income, first-class

For a covered-call strategy, premium is a real income stream — net premium collected, contracts opened and closed, every short leg shown inside the positions table where it belongs.

04

One consolidated picture

Taxable, IRA, Roth, and trust accounts roll up into one weighted view — sector allocation, day moves, and staleness flags on every quote, so a stale price is never mistaken for a live one.

02 / 03

Built like a control environment.

The part that reflects my day job: data integrity is a first-class feature, the way a finance department treats internal controls. Completed months are computed once, validated, and frozen permanently — the same principle as a locked accounting period. If a month says +5.14%, it says +5.14% forever.

Anything estimated or provisional is visibly flagged, never silently blended. Broker data is cross-checked against the system's own price history — impossible figures get substituted and warned, never displayed. Every adjustment is reversible and auditable, the holdings log is append-only, and every panel is isolated so one failure can never take down the reporting.

Investment performance dashboard screenshot
Illustrative sample data — not actual holdings or results
03 / 03

How it's built.

EnginePython daemon (FastAPI) on my own hardware — quotes every minute in market hours, snapshots every fifteen, daily Schwab transaction sync, marks re-anchored to the official close
DataLocal SQLite with automated nightly backups — credentials never leave the macOS Keychain, no aggregator or third party sees the data
Front endReact with ECharts, served privately from the same machine
MethodAI-assisted development throughout — designed, built, and iterated with LLM tooling as a force multiplier

Same discipline, your balance sheet.