Summary
Generate matplotlib charts from Zorora's structured data (SAPP, Eskom, FRED, World Bank) and embed them in deep research output alongside text synthesis.
Motivation
Published research articles include 4-7 data visualizations per piece. Text-only reports cannot match this quality bar. Zorora already has 64+ time series and feasibility analysis generates matplotlib charts (SEP-045). The data and charting capability exist but are not connected to the deep research output pipeline. Visual-first output is core to Zorora's product vision.
Proposed Change
- When market context is injected (SEP-070), also generate charts for relevant series
- Use LLM-generated chart specs (title, series, date range, chart type) based on query
- Render charts as base64 PNG embedded in synthesis markdown
- Reuse matplotlib patterns from feasibility analysis (SEP-045)
- Support line (trends), bar (comparisons), stacked area (composition) charts
Acceptance Criteria
- Deep research reports include 2-4 embedded charts from Zorora's structured data
- Charts are contextually relevant to the research query
- Charts render in the web UI alongside synthesis text
Dependencies
- Requires SEP-070 (market data in synthesis) for data availability
- Benefits from SEP-068 (structured output) for section-chart alignment
Priority
P2
Summary
Generate matplotlib charts from Zorora's structured data (SAPP, Eskom, FRED, World Bank) and embed them in deep research output alongside text synthesis.
Motivation
Published research articles include 4-7 data visualizations per piece. Text-only reports cannot match this quality bar. Zorora already has 64+ time series and feasibility analysis generates matplotlib charts (SEP-045). The data and charting capability exist but are not connected to the deep research output pipeline. Visual-first output is core to Zorora's product vision.
Proposed Change
Acceptance Criteria
Dependencies
Priority
P2