How mdlacasse/owl works
Owl is a retirement-planning optimizer exposed through a Streamlit application, command-line interface, and MCP tools. Users provide household, account, goals, tax, and rate assumptions; Owl builds a multi-year plan, optimizes withdrawals and conversions under tax and benefit rules, then presents results and stress tests. README documentation establishes capabilities beyond the sampled implementation excerpts, including tax coverage and stochastic analysis; those are represented at subsystem level. The excerpts do not establish every UI or CLI call path, so uncertain wiring is omitted.
Main entry points: plan.py Retirement plan · tools.py Assistant tools · factory.py Plotting · main.py Streamlit app
Components 19
User interfaces
- Streamlit app
ui/main.py - CLI
src/owlplanner/cli/_main.py
Plan modeling
- Case configuration
src/owlplanner/config/schema.py - UI config bridge
src/owlplanner/config/ui_bridge.py - Retirement plan
src/owlplanner/plan.py - Tax and benefits
src/owlplanner/tax_federal.py - Rate models
src/owlplanner/rate_models/loader.py - Built-in rate models
src/owlplanner/rate_models/builtin.py
Optimization and analysis
- Plan optimizer
src/owlplanner/plan.py - Stress analysis
src/owlplanner/stresstests.py - Baseline comparison
src/owlplanner/assistant/tools.py - Optimization explanation
src/owlplanner/assistant/explain.py
AI integration
- Assistant tools
src/owlplanner/assistant/tools.py - MCP service
src/owlplanner/cli/cmd_serve.py
Results and views
- Plotting
src/owlplanner/plotting/factory.py - Plot backends
src/owlplanner/plotting/plotly_backend.py - Reports and exports
src/owlplanner/export.py
Other components
- Planner
- MCP-compatible AI
Connections 23
- Planner → Streamlit app: enters assumptions
- Planner → CLI: runs commands
- Streamlit app → UI config bridge: maps case values
- UI config bridge → Case configuration: forms configuration
- CLI → Case configuration: loads case
- Case configuration → Retirement plan: configures plan
- Retirement plan → Rate models: loads rate model
- Rate models → Built-in rate models: selects model
- Retirement plan → Tax and benefits: models tax rules
- Retirement plan → Plan optimizer: builds optimization
- Plan optimizer → Retirement plan: returns solution
- Retirement plan → Stress analysis: runs scenarios
- Assistant tools → Retirement plan: builds and runs
- Assistant tools → Stress analysis: computes frontiers
- Assistant tools → Baseline comparison: compares strategies
- Assistant tools → Optimization explanation: explains results
- MCP-compatible AI → MCP service: requests tools
- MCP service → Assistant tools: dispatches tools
- Streamlit app → Plotting: presents charts
- CLI → Plotting: requests charts
- Plotting → Plot backends: renders figures
- Retirement plan → Reports and exports: exports plan results
- Stress analysis → Plotting: provides scenario results