Skip to content

Reports and Decks

Every report, deck, and table is built from the same view of the impact model, so a number or a label never differs between artifacts. The output is deterministic: the same inputs give byte-identical files.

Definition reports

These describe the impact model and need no observations, so a workshop can review them before any data exists.

impact-model report logic-model impact-model.yaml --pathway pw-supply
impact-model report definitions impact-model.yaml --out definitions.md
Kind What it shows
pathway The causal pathways, as diagrams
logic-model Inputs, activities, outputs, and outcomes for each pathway. --diagram draws it left to right (also logic-model-diagram)
logic-model-layered The logic model as columns, from inputs to impact, with a box for each item and an arrow wherever the impact model says one leads to another. Written as Mermaid
logic-model-d2 The same layered diagram as D2, where a grid keeps every stage in its own column. Render it with d2 diagram.d2 diagram.svg
problem-tree The core problem with its causes below and effects above, arrows flowing upward, and tables of what addresses each. Written as Mermaid; see the problem tree guide
problem-tree-d2 The same problem tree as D2, where a grid keeps every row in place
problem-tree-json The diagram document the problem tree is drawn from: a d2vision diagram spec, as JSON, with no stamp
outcome-map The outcomes framework, marking what is monitored but not owned
logframe A results-framework matrix with indicators, means of verification, and assumptions
metrics Metric definitions and how they combine across pathways
metric-selection Candidate indicators scored against your criteria, best first
collection-plan What is collected, how, how often, and the burden against the budget
glossary The words the impact model uses
assessment How much of the impact model is stated, inferred, or still a hypothesis
definitions One document for a workshop: the problem tree (when the model records causes or effects), the causal pathways, logic models, outcome maps, logframes, metric definitions, and glossary

Status reports

These need observations (-O) and describe how far the impact model has come.

impact-model report exec impact-model.yaml -O obs-q3.yaml --prev status-q2.json
impact-model report story impact-model.yaml -O obs-q3.yaml --audience aud-funders
impact-model report learning-review impact-model.yaml -O obs-q3.yaml --period 2026-Q3
Kind What it shows
exec The executive summary: where things stand and what changed
results Indicator and outcome results, separating what the organization answers for from what it only monitors
assumptions The assumption register and what moved
interventions Each intervention and what it is delivering
evidence-gaps Where claims rest on weak or missing evidence
full Every status report in one document
story An update for one audience (--audience), using the numbers and consented stories
headline The numbers each audience is told, from its headline list, with the latest figure, status, and caveats (--audience narrows it to one)
metric-tree Per pathway: its North Star and guardrails, then its indicators from activity to impact, as a table and a diagram (--pathway narrows it)
learning-review A period's review (--period): what changed, surprises, decisions
portfolio Pathways side by side, described without recommending
narrative The impact model as prose, checking the solution against the problem
actors Who does what, including partners
custom Your own Go text/template over the report view (--template)

narrative, actors, and custom also work without observations.

Stories and quotes are gated. A story appears only if consent was granted, and a quote only if its sensitivity is public or internal. Evidence marked restricted is never rendered: its excerpt, summary, and URL are withheld from every report, deck, and judge bundle, since a URL can reveal where a confidential document lives.

Slide decks

impact-model deck workshop impact-model.yaml -o workshop.md
impact-model deck exec impact-model.yaml -O obs-q3.yaml --export exec.pdf
Deck Contents
workshop The problem, the goal and ceiling, a diagram, a logic model table, and the logic model drawn as columns with arrows per pathway, key assumptions, metric definitions, the glossary, and what is still our reading. Needs no observations
exec Where we stand, and what changed since the last snapshot (--prev)
learning-review Behind plan, what we decided, and questions for discussion (--period)
story One audience's deck: what you told us you need, the numbers, what we ask of you (--audience)

A deck is written as Marp Markdown. With --export file (.pdf, .pptx, or .html) it is also rendered by marp, and by mmdc when it has diagrams. Each deck carries speaker notes and shows the export stamp (impact model, version, and hash) on its title slide.

Word and PowerPoint

impact-model export docx definitions impact-model.yaml --out impact-model.docx --reference-doc template.docx
impact-model export pptx workshop impact-model.yaml --out workshop.pptx

These convert the Markdown to a Pandoc-ready profile (diagrams as PNG, basis badges as text, page breaks) and run mmdc and pandoc. --reference-doc styles the output with your own template. If a tool is missing, nothing is written and the exit code is 3.

Spreadsheets

impact-model export csv indicators impact-model.yaml --out indicators.csv

Tables: indicators, metrics, glossary, metric-selection, and collection-plan. The files follow RFC 4180. Multi-valued cells are joined with ;.

The export stamp

Every export starts with a stamp, model:<id> version:<v> hash:<h>, where the hash is of the impact model's canonical form. The same hash appears in every format, so you can tell that a PDF, a Word file, and a spreadsheet came from the same version. --no-stamp leaves it off, and --as-of records the date the artifact describes.

PRISM exports

impact-model export okr impact-model.yaml -O obs-q3.yaml -o okr.json
impact-model export journey impact-model.yaml -o journeys.json
impact-model export v2mom impact-model.yaml -O obs-q3.yaml -o v2mom.json
impact-model export dmaic impact-model.yaml -O obs-q3.yaml -o dmaic.json

export okr turns each owned outcome that has measured indicators into an objective, with each indicator as a key result carrying baseline, target, current value, score, status, and confidence. export journey writes outcome journeys. export v2mom writes a V2MOM with one method per pathway; the V2MOM guide maps each part. export dmaic writes a DMAIC metrics document for the pathways marked for DMAIC; the DMAIC guide maps each part. All four are JSON for the PRISM tools, and an agent gets the same exports from the MCP server's impact_export tool.

The layered logic model diagram

logic-model --diagram draws each stage as a group and joins the groups, which says only that one stage follows another. The layered diagram draws the real relationships:

  • an input leads to the activities that use it, and one input can feed several;
  • an activity leads to the outputs it lists, which lead on to the outcomes it targets;
  • an outcome leads to the outcomes its causal links point to, so one box can lead to several, and several can lead to one.

The order within a column is chosen to keep arrows from crossing. A link that runs back to an earlier stage is feedback. It is left out of the diagram, where it would cut across the boxes between, and listed under it.

Both diagrams are available, so you can compare them. The layered one is made by pkg/logicmodel, which builds a layered graph from the impact model and writes it through d2vision's diagram spec, the same spec that writes the D2 and the Mermaid.

Next

Review round trip