Kumu / Finance & Securities / Stage 2

Stage 2 — Model Specification

Delivered so far: the executive brief. The CFO knows what is at risk and that a process is coming. No workbook exists yet, and none should until this spec does.

Design the workbook before any Excel exists: every input, name, formula, and check, written down precisely enough that an AI, or a colleague who has never seen your brief, could build the complete workbook from this document alone. In Stage 3, that is literally what happens.

Objective

Rehearse in the FX Lab first

The FX Hedging Lab computes everything your spec must describe, live, with the same named ranges. Work through it before you write, and note what each output should look like. Your validation rules (§7) state those expectations.

Learn — why the spec comes before the build

The CFO said "yes, build it." Before you (or your AI) open Excel, Treasury wants a design document it can review, because a model built without a spec is a model nobody else can audit. Your Stage 3 build will follow this document to the letter: every weakness in the spec becomes a defect in the build, which you will then have to find and fix in the audit. The better the spec, the shorter the audit.

And here's the AI-era reason this matters even more than the audit story: in Stage 3 you don't describe the workbook to an AI and hope: the spec is the prompt. A precise spec tells the model exactly what to build and exactly what each result must equal, so the first build comes back close and the audit becomes verification, not archaeology. A vague spec produces the opposite: the AI confidently builds the wrong thing, and you discover your real requirements one frustrating tweak at a time. Every minute you spend making this document unambiguous is a round of corrective back-and-forth you don't pay for in Stage 3.

Write for an AI reader

If an instruction is ambiguous, the AI will guess, and probably guess wrong. "A reasonable interest rate" is not a spec; R_USD = 5.30% annual, ACT/360 (placeholder — replaced with live Fed H.15 data at Stage 4) is.

Do — write the eight required sections

#SectionThe standard
1Problem statementCurrency, amount, settlement date, and the business consequence of an adverse move: precise professional language
2Inputs: the named-range contractEvery input with name, placeholder value, unit, and Stage-4 data source, using the standard names exactly (table below)
3Tab architectureEvery tab named with its purpose. Minimum: Cover, Legend/Key, Inputs, one calculation area per hedge, Sensitivity, Notes & Assumptions
4Assumptions & constraintsRate basis (ACT/360), transaction-cost treatment, parity expectation, premium treatment: every simplification, explicitly
5Calculation flowFormula logic per hedge in named-range notation: never cell addresses
6Sensitivity planS_T from 0.95×S0_in to 1.05×S0_in in 1% steps; proceeds per strategy; one comparison chart, and what it should let the CFO see
7Validation rules (check figures)The self-checks the finished workbook must pass: these become your Stage 3 audit checklist
8OutputsEach summary result and table (gray cells) named exactly

Learn — the named-range contract

These ten names are the shared vocabulary of your spec, the workbook, the automated checks, and every LLM prompt in this project. Use them exactly:

Named rangeDescriptionUnit
FC_AMTForeign-currency receivableEUR
S0_inSpot rate at inceptionUSD per EUR
F0_inForward rateUSD per EUR
R_USDUSD interest rateAnnual %
R_FCForeign-currency interest rateAnnual %
K_PUTPut option strikeUSD per EUR
K_CALLCall option strikeUSD per EUR
PREM_PUTPut premium per unit of FCUSD
PREM_CALLCall premium per unit of FCUSD
T_DAYSDays to settlementDays

Placeholders, flagged as placeholders

Use your assigned scenario's parameters as inputs, clearly marked "indicative, replaced with live market data at Stage 4." Where the scenario says you set the value (strikes at/near spot, interest rates), state the placeholder you chose and how Stage 4 will source the real one.

Learn — the calculation flow you're specifying

1 · Forward hedge — one line

USD proceeds = FC_AMT × F0_in

Locked. Done. The rest of the model exists to tell you whether locking was the right call.

2 · Money-market hedge — three explicit steps

Step 1  Borrow FC today:      Borrow = FC_AMT / (1 + R_FC × T_DAYS/360)
        (sized so the receivable exactly repays the loan at settlement)
Step 2  Convert at spot:      USD_now = Borrow × S0_in
Step 3  Invest in USD:        Proceeds = USD_now × (1 + R_USD × T_DAYS/360)

Specify each step as its own cell: the audit (and any auditor) wants the pipeline visible, not a single nested formula.

3 · The parity check — your free error detector

Covered interest rate parity says a forward contract and the borrow-convert-invest pipeline are the same trade built two ways, so:

F_implied = S0_in × (1 + R_USD × T/360) / (1 + R_FC × T/360)   ≈   F0_in

Write this into §7 as a validation rule: if MM proceeds and forward proceeds differ by more than rounding, the build has a formula error. This check catches any formula error that breaks the parity between the two hedges.

4 · Option hedge (put floor)

Net proceeds at settlement spot S_T:
  = FC_AMT × max(S_T, K_PUT)  −  FC_AMT × PREM_PUT

Below the strike, the put pays the difference (floor holds). Above it, the option expires worthless and you sell at the better market rate, minus the premium you already paid either way. Specify the call's participation payoff the same way.

Do — write conceptual formulas, not cell equations

✗ "C7 = C4/(1+C5*C6/360)"                        ← dies with the workbook
✓ "Compute the FC borrowing amount by dividing
   FC_AMT by (1 + R_FC × T_DAYS/360); this sizes
   the loan so the receivable repays it exactly
   at settlement."                                ← buildable in any tool

The named-range layer is what makes your logic portable between a document, Excel, and an AI prompt. Cell addresses are an implementation detail; the names are the model.

Do — you draft, AI reviews, then you iterate together

Write the first draft of the spec yourself, from your brief and the scenario. Then have an AI review it (ask it to find the gaps, not to tell you it's good) and work the fixes through with it, accepting some suggestions and rejecting others on the record. Log prompts in prompt-log.md and show at least one specific iteration: a gap found in your draft and how you fixed it (a before/after note or annotated diff). "The AI's review found my draft omitted the rate basis; I added ACT/360 to §4 and to every rate row in §2" is exactly the evidence the brief asks for.

Deliverable

Paths moved (2026-09-24)

The spec and the workbook now live together in capabilities/fx-hedging/ (spec.md, model.xlsx, and the folder's README.md), the way the Micro & Macro Economics course keeps capabilities/marginal-analysis/. The older docs/specs/ and models/builds/ folders belong to an earlier version of this project; if yours already has them, move the files across.

WhatWhere it goes
The specification, written before any Excel existscapabilities/fx-hedging/spec.md
What the capability is, and where it was exercisedcapabilities/fx-hedging/README.md

Check yourself