OTO
examples

Report automation in an investment firm

The question people ask: which reports do we produce, from which data, on what schedule, who owns each, what changed since last quarter, and can we automate the next one without a six-month project?

What feeds the graph: the report catalog, report templates and past editions, the data dictionary, the schedule, the sign-off records, and the conversations in which the analyst says what the report must show.

The journey

Definethe analyst and the agent describe the report type: sections, figures, audience, cadence
→
Discoverthe data each figure needs, where it lives, who owns it, how fresh it is
→
Submitthe definition goes to the factory as a pull request: the graph is the specification
→
Build and testthe factory builds the report; the agent's tests check every figure against its source
→
Runon the schedule, or by hand; each run is recorded with what it read

What the graph holds

Class For example
ReportType, Section, Figure the quarterly exposure report, its concentration section, the top-ten holdings table
DataSource, Dataset, Owner the positions warehouse, the daily positions extract, the data owner
Schedule, Run, Approval the fifth business day, the run of 2026-07-07, the sign-off by the head of risk
Requirement, Test, Decision the figure must reconcile to the ledger, the test that checks it, the decision to exclude a fund

The report-automation ontology extends product-delivery: a report type is a product, with a persona, a journey, requirements and gates, so the same lifecycle applies.

A cited answer

=== Top ten holdings  [Figure]  (figure.top-ten-holdings) ===
status=current  ·  as_of=2026-06-30  ·  source_doc=exposure-report-definition

Ten largest positions by market value at quarter end, reconciled to the ledger.

Relationships (outgoing):
  reads → Daily positions extract
  checked_by → Reconciliation test T-14

When the data owner says the extract changes column names in August, the capture skill records it, the fact is superseded, and every figure that reads the extract is listed as pending re-attestation.

How it is used

  • The analyst defines a new report type in conversation with the agent; the definition is a graph, not a document that drifts.
  • The factory builds from the graph and opens a pull request; the agent's tests are the gate.
  • Operations run the report on the schedule; each run records what it read, so a wrong number is traceable to a source and a date.
  • The head of risk asks which reports read a dataset that is about to change.

The commands and the skills

oto init --name "Report Factory" --pack report-automation --project reports
oto capture --project reports --title "Exposure report" --by "<analyst, role>" --at <date> --statement "..."
oto actions list --project reports        # submit, build, run: described in the graph, invoked by the factory

The pack is in preparation: its ontology, five skills, five actions and two views. It will be in the catalog when it ships. Actions explains why the graph describes what can be done and never does it itself.