A full business analysis showcase: the AS-IS pain mapped honestly, a TO-BE process designed around a human review gate, 20 business requirements traced through 43 functional requirements to a live backlog, and a decision log with two entries still open.
Terrawatt's analysts produce a Country Transition Scorecard on request — how fast is this country's electricity system actually decarbonising, and who is stalling. The output mattered. The process producing it did not survive contact with a second analyst.
Both diagrams are modelled in Enterprise Architect using the same conventions, so they are directly comparable. Flip between them: the analyst lane empties out, the system lane fills up, and the review gate survives the redesign on purpose.
Click a diagram to open it full size.
A star schema in UML: one fact, four dimensions. The parts that matter for governance are the flags and the version dimension — they are what let the process above make promises it can keep.
Click to open it full size.
A star schema only protects you from a bad structure. It says nothing about whether the numbers going into it are trustworthy. Before scoring a single country, I checked whether the data even agreed with itself.
Renewable electricity share for Germany, Lithuania, Poland, Slovenia and Sweden — 2023 — pulled from three independent sources: Our World in Data, IRENA, and Eurostat. Same metric name, same year, same countries.
Click to open it full size.
Four of the five countries agreed closely — within 2–3 percentage points, well inside normal reporting variance. Lithuania did not. The same country, the same year, reported as 36%, 74%, and 84% depending which source you asked — a 48-point spread, larger than the gap between the highest- and lowest-scoring country in the entire dataset.
A dashboard that silently picks one of those three numbers is not being neutral. It is being confidently wrong.
Excluding an inconvenient country is the easy version of data governance. Disclosing exactly where and why sources disagree is the harder, more useful version — and it's the one a reviewer can actually act on. Status: Agreed. Supersedes D-011. Impacts the Data Quality Assessment, the published country set, and the scoring methodology's system boundary.
A low-fidelity screen is only useful if you can say which requirement each element satisfies. Every callout here points back to a numbered functional requirement — which is also how the traceability runs the other way, from requirement to design to test.
Click to open it full size.
The diagrams are the visible part. The chain underneath them is what makes the work usable by a delivery team — and what lets anyone ask, a year later, why the system does what it does.
A decision log is only useful if it records the reasoning, not just the outcome. Two of the thirteen. are still open, which is what a live project actually looks like.
Weights change when the methodology changes. Storing them as a governed configuration value rather than a constant means a weight change has an owner, a date and a reason — and “it’s in the code somewhere” is never the answer to why a country scored 62. Status: Agreed. Impacts BR-12, FR-27 and the data model.
The scenario needed a named client for the methodology to cohere. Naming one without saying so would misrepresent the work. So the decision to disclose is itself logged, with the disclosure line specified in the project overview. Status: Agreed.
The data-preparation groundwork is complete, but the report is a BI deliverable rather than a business-analysis one. Deferring it deliberately — and recording that it was deferred — is more honest than leaving it looking unfinished. Status: Agreed.
The scoring index is a 0–100 composite of five components — clean electricity level, five-year momentum, carbon intensity, fossil dependence and energy productivity. The interesting part is not the formula. It is the handful of decisions that stop the formula lying to you.
A country needs at least three of the five components to be scored at all. Fewer, and it returns Insufficient Data — a status, not a low score. Treating a gap as a zero quietly punishes countries for their statistics office rather than their power sector.
Renewable share is SUM(renewable TWh) / SUM(total TWh). Averaging a percentage
across countries or across years weights a country generating 4 TWh the same as one generating
400. This is the single most common way an energy dashboard becomes confidently wrong.
Energy productivity is capped at the 95th percentile before the scale is built, so one unusual economy cannot compress everyone else into the bottom third of the range.
Below 1 TWh of annual generation, a single new installation moves the score more than a decade of policy. They still get a score; they are excluded from the league table.
They live in a versioned decision log and in the indicator dimension. When Research changes a weight, the change has an owner, a date and a reason — and every scorecard built under the old weights stays reproducible.
Modelled as a UML state machine, because the rules are easier to argue about as states than as prose.
↩ From In Review a reviewer can send it to Changes Requested, which returns to In Review once the analyst responds — a loop, not a dead end.
A scorecard may only be published from Approved. When a new data vintage lands, the previously published scorecard becomes Superseded — never deleted. That one rule is what makes an old published number defensible a year later.
Most teams have one. A number everyone relies on, produced by a method nobody has written down, by a person who really ought to be allowed a holiday. That is the work I do.