The operating manual.
This is the home for how Project Kilimanjaro works — the operations an analyst runs, the method we model by, how we take it to market, and the governance that keeps every number defensible. Start with the operations if you’re shipping work this week; start with the method if you’re new.
New to Project Kilimanjaro entirely?
What it is, the problem it kills, what we sell, and one worked example end-to-end — for the wider team.
Project Kilimanjaro, explained →Bidding on a tender?
Upload the TOR; get a recommended bid team matched to staff & contractors.
Tendering →Pulling assumptions via the API.
Models read governed inputs from the Master Assumptions API — never local copies. Use the assumptions_client package, pass a named scenario, pin a ref to reproduce. Service on port 8020; open the Swagger reference →
Pull a value or series
Pin a version to reproduce
| Method | Path | Returns |
|---|---|---|
| GET | /v1/catalog | all domains, fields, judgements, scenarios |
| GET | /v1/value/{domain}/{field}?scenario=&ref= | a scalar value |
| GET | /v1/series/{domain}/{field}?scenario= | a timeseries |
| GET | /v1/table/{domain}/{field}?scenario= | a table |
scenario required on every /v1/* call. Auth (when on): Authorization: Bearer <token>. Install editable / pinned-from-GitHub (private repo, PAT). Reference: API_SETUP.md, assumptions_client_quickstart.md.
The modelling checklist.
The SOP as a checklist. Nothing reaches a formal deliverable until the compliance gate passes. Download the provenance template →
Before modelling
- Define the decision question.
- Set the boundary — in / out.
- List & classify material assumptions.
- Check the registry; request missing inputs.
- Agree scenarios; confirm units.
During modelling
- Pull from the registry; no hard-coded shared values.
- Keep data, assumptions & outputs separate.
- Standard internal units.
- Record exceptions immediately.
- Run low/med/high; visible calc trail.
Before review
- Produce: register, logic map, scenario summary, outputs, sensitivity table, exception log, provenance.
- State limitations & open items.
Before publication
- Owners sign off assumptions.
- Model Owner signs off logic.
- Custodian checks compliance.
- Output records
assumptions_commit; deck states scenario & basis.
The compliance gate
Ready for formal use only when all pass. Fail one → internal exploration only, never a formal result.
Production mode also requires review_status: reviewed, scenario approved_by: chief_analysts, and a pinned ref to published/v3/. An undocumented exception is a failure.
Changing an assumption.
Open a pull request to domains/{domain}/. The steward reviews within a 5-working-day SLA; shared drivers need every affected steward. A band shift >10%, new field, or new scenario routes to the monthly Assumptions Committee. On merge, publish_master_data.py recompiles published/v3/. See who stewards each domain →
Modelling philosophy.
Every formal output is a function of four governed terms. Control all four, or it doesn’t go in a board paper.
Single source of truth
Read shared inputs from the registry, behind a provider interface — never local copies.
Vintaged & reproducible
Vintages are immutable; (vintage, scenario, model_version) + provenance decompose any change into assumption-delta vs logic-delta.
Cost vs worth
A floor (landed / cost-recovery) against a ceiling (bearable / affordable). The verdict lives in the gap.
Scenario discipline
Named scenarios defined centrally; one-lever what-ifs go to the tornado, never become a scenario.
Intellectual honesty
Don’t hide judgement in a number. Ranges over false precision. “Illustrative, not audited” is a tracked label.
Shared vocabulary
bearable/landed · T_min/T_max · goal_seek · deal_space · [Q]/[P]/[N].
Capability & careers.
Our internal ladder mirrors the offer ladder — same spine, pointed at people. We grade on producing the weave. The full hub has the career ladder, how to self-assess, the problem-solving toolkit, the worked cases, and the workshop.
The career ladder
Five bands (Analyst → Partner), the placement rule, the two-band-gap promotion blocker.
Self-evaluation
The proficiency scale, the evidence rule, sponsor calibration — and the downloadable worksheet.
Problem-solving toolkit
The Decision Brief, issue vs hypothesis trees, the binding constraint, Expand·Link·Distill·Lead.
The cases & workshop
Five worked decisions, and how feedback works: name the step and the band, never the person.
Go-to-market.
“The weave is the product. The ladder is an escalator, not a menu.”
One proposition at five depths — the promise never changes rung to rung, only the depth, specificity and commitment.
Public Insight / Weekly Pulse · free
Free signal that proves the thinking.
Proprietary Brief / Outlook · first paid
The same weave, now sized — numbers, scenarios, a sourced answer.
Paid Pilot
The weave on the buyer’s variables — a scoped verdict (act/wait/hedge/reprice/phase).
Retained Intelligence
The weave delivered continuously.
Advisory / Deployment
The weave embedded inside the client.
Wedge sequencing
Prove the full motion on one wedge, then template it. Liquid Fuels → Gas → Corridor/Freight.
Painkiller or vitamin?
A buyer is validated only on a number, a story, or a referral. Polite enthusiasm doesn’t count — keep vitamins as internal capability.
Field notes.
Internal knowledge-sharing — how we actually work, sanitised for the team.
The LNG Cost-to-Serve engine: what we have, and how to use it
A governed engine that prices the landed cost of delivering gas — pipeline, truck or small-scale LNG — in $/GJ, with the evidence behind every number. What it answers, where to find it, and how to put it in front of a client.
Read →Why we vintage the models (and stopped shipping Excel)
The single discipline that lets us answer the only question stakeholders actually ask: "why did the number change?"
Read →Field feedback: sketch first, scaffold the governance after
A retro from a live gas engagement on how the clean 7-step SOP meets the mess of real work — and the iteration discipline we added because of it.
Read →The mothballed-refinery decision: the weave, worked
A teaching case — restart a refinery or build for imports? — showing what each capability band actually produces.
Read →Governance: the Master Assumptions Policy.
Models don’t each carry private assumptions. Shared assumptions live in one governed registry; every output records which version produced it.
1. Single source of truth
Models read from the registry, not local copies or hard-coded constants.
2. Versioned consumption
Every output records the assumptions_commit — reproducible and auditable.
3. Domain stewardship
Named steward per domain; shared-driver changes need every affected steward.
4. Scenario discipline
Named scenarios defined centrally; never redefined locally.
Domain stewardship.
13 governed domains. Each has a named custodian, a review cadence, and a 5-working-day SLA for field changes. Band shifts >10% or new scenarios go to the monthly Assumptions Committee. View the registry →
| Domain | Named custodian | Team | Cadence | Last reviewed | Status |
|---|---|---|---|---|---|
| Macroeconomics | Confirm at committee | Strategy / Economics | Quarterly | Q2 2026 | live |
| Energy | Confirm at committee | Integrated Energy (IE) | Quarterly | Q2 2026 | live |
| Fuel Prices | Confirm at committee | Energy + Finance (joint) | Monthly | Jun 2026 | wiring pending |
| LNG Transport | Confirm at committee | Energy Analytics | Quarterly | Q1 2026 | wiring pending |
| Mining | Confirm at committee | Mining Centre of Excellence | Quarterly | Q1 2026 | live |
| Manufacturing | Confirm at committee | Manufacturing Centre of Excellence | Quarterly | Q1 2026 | live |
| Rail | Confirm at committee | Finance / TFR Liaison | Quarterly | Feb 2026 | registry ready |
| Ports | Confirm at committee | Finance / TNPA Liaison | Quarterly | Feb 2026 | registry ready |
| Rolling Stock | Confirm at committee | Transport / Rail | Quarterly | Q4 2025 | wiring pending |
| Transport | Confirm at committee | Transport / Logistics | Quarterly | Q4 2025 | wiring pending |
| Financial | Confirm at committee | Finance | Quarterly | Q1 2026 | wiring pending |
| Agriculture | Confirm at committee | Agriculture Centre of Excellence | Quarterly | Q2 2026 | live |
| Chemicals | — | TBD | Quarterly | — | aspirational |
publish_master_data.py recompiles published/v3/.
Standards & voice.
“Bullish on the destination; ruthless on the evidence.”
Voice
Name the rock in the road, then the navigation line — never doom without direction. End on what to do, and by when.
The gating rule
Is this the story, or the number? Open = the structural story. Gated = the report, model, data. Paid = the sized brief.
Honesty
Cite only gathered evidence. No invented facts or dates. The machine carries coverage; the human keeps voice.