Earnings-season panel with multi-agent synthesis
A primary-filing warehouse and synthesis workflow that keeps numeric source checks, incomplete cohorts and model disagreement visible.
What changed. The output separates warehouse figures, reporting coverage and model interpretation; elapsed-time and throughput improvements are not established here.
Stack. DuckDB · SEC XBRL ingest · breadth acceleration metrics · mixture-of-agents review
Context
An earnings-season summary combines filings, reporting coverage and interpretation. A fluent narrative can hide a missing cohort or mix incompatible units. The studio’s panel separates the data aggregation from model-written interpretation.
This is an analytics engineering case, not a trading recommendation or a claim about investment returns.
Task
Keep primary filing facts traceable, distinguish growth level from its change, and display an incomplete season honestly. Let reviewers compare interpretations without allowing generated prose to become an unverified source of numbers.
What we built
A DuckDB warehouse holds filing facts and normalized concepts from regulator forms. Ingestion checks must preserve periods, units and issuer coverage before aggregation. Query speed and dataset-size claims require a dated benchmark and are not asserted here.
The panel separates demand channels instead of silently combining unlike series. Its breadth-level metric is the share of the selected reporting cohort with positive year-on-year revenue growth. Its breadth-change metric compares each eligible name’s growth rate with a stated historical reference. These are descriptive definitions, not literal first and second derivatives or a forecast rule. Record the cohort, period and reference window with the output.
Coverage and chart extent are separate fields: an incomplete reporting season can be shown without marking it final. Missing members and unavailable facts must remain visible. Unit-normalization and period-selection fixtures help expose a parser that reads the wrong column or aggregates incompatible quantities.
The synthesis stage supplies the same warehouse snapshot to multiple model reviewers, then reconciles their interpretations. Different model families do not guarantee independent errors. Check each material numeric claim against the actual query result, including units, period and conditions; matching a token somewhere in the warehouse is not enough.
A timeout or unavailable reviewer is a degraded review state, not agreement among the remaining models. Keep an interpretation’s assumptions and a condition that would contradict it alongside the source evidence.
What changed
Collection, numeric checks, cohort coverage and interpretation can be reviewed separately. This case does not establish a four-day-to-minutes improvement or a query-latency benchmark. A source-linked output is useful evidence of provenance, but does not prove every interpretation is correct.
What we would do differently
Expose incomplete coverage in the first dashboard and test how it reaches the final prose. Validate the source-to-number boundary before adding more model reviewers. A larger panel is not a substitute for an accurate warehouse query.
Related service: AI agents and automation