Kumu / Micro/Macro Econ / Economic Profit & Rent / Stage 1

Stage 1 — Brief, Spec, Build, Audit

Four people, four sets of books, and a client who wants to know which of them is actually ahead. Nothing delivered yet — a question on the record, then a model that can answer it.

Objective

Optional · ungraded · self-paced

This case is an optional extension. Nothing here is submitted and nothing is due — self-paced, for students who want to run the argument out to its end.

A brief naming who you think is ahead and why. Then the specification for two sheets — four profit-and-loss statements taken past accounting profit to economic profit, and the medallion capitalization — the AI-built workbook, and your audit of it.

Your repository already exists. This engagement adds one capability folder: capabilities/economic-profit/.

Learn — the three things a vague spec gets wrong here

Opportunity cost is the alternative's net earnings

The office job pays $57,600 gross and $52,200 after its own costs. Charge a driver $57,600 and you have compared a gross figure to a net one, overstating every implicit cost in the model. The previous version of this course's template shipped with exactly that error, and it is the kind a generated workbook reproduces silently, because "the traditional job's salary" is a phrase with two readings and a model will pick one.

Opportunity cost has to match scale

A part-time driver forgoes a part-time alternative: $26,100, not $52,200. Specify the implicit cost without qualifying the scale and the part-timer gets charged a full-time opportunity cost — which makes them look far worse than they are, for a reason that is arithmetic rather than economic.

Capitalization has two moving parts

Value is rent ÷ required return. Between the two eras the rent falls from $36,000 to $18,000 and the required return rises from 3.5% to 6.0%, because a shrinking income stream is also a riskier one. A specification that changes only the rent reproduces neither observed price. Both inputs belong in the named contract, per era.

One structural requirement

Days per month is a named input, not a constant buried inside formulas. The sensitivity run at the end of this stage depends on being able to change it in one place and watch every verdict move. If changing it does nothing, the number was hard-coded somewhere and the fix belongs in the spec.

Do — write the brief

Create docs/briefs/economic-profit-brief.md before anything else: the four-person setup in your own words, and a hypothesis — "I expect X to have the highest economic profit because Y." Name the person and the mechanism. The brief template has the structure.

Commit it before any spec or model work. Stage 2 does not reward a lucky guess — it rewards the account of why your finished model agreed or disagreed with the hypothesis, and that account can only be written if the hypothesis was on the record first.

Do — specify

Write capabilities/economic-profit/spec.md before opening Excel: named inputs with units and sources, the structure of both sheets, calculation logic in named-range notation, validation rules, and outputs. The spec template has the sections; the three failures above tell you where to be most precise.

Write the check figures in as acceptance criteria, before the build:

App FTApp PTCab FTOffice
Accounting profit$50,520$22,860$59,580$52,200
Economic profit−$1,680−$3,240+$7,380+$1,680
MedallionBefore entryAfter entry
Lease ÷ required return$36,000 ÷ 3.5%$18,000 ÷ 6.0%
Capitalized value$1,028,571$300,000

Commit the spec, then generate. The order is brief, spec, workbook.

Do — generate

Hand the spec to an AI tool as-is — chat, a CLI agent pointed at your repository, or Claude for Excel. A manual build is permitted; the contract is what matters, not the tool.

Re-explaining the model is a defect report

If you find yourself typing "no, use the office job's net figure" into the chat, that sentence belongs in the spec. Add it, commit it, regenerate. In this case the clarifications you give verbally will be exactly the three failures above — which is the evidence that they were missing from the document.

Do — audit

Run your validation rules against what came back and record the findings at the end of spec.md: what you checked, what you found, what you did.

CheckWhat it catches
The eight profit figures and both medallion valuesEverything, in aggregate — but not where it went wrong
A hand calculation of one opportunity cost — take the part-time driver's implicit cost and compute it yourself from the office job's net earnings, halvedBoth the net-to-net rule and the scale rule, in one line. If the workbook says $52,200 or $28,800, one of them did not survive the build
Capitalization is a division, not a stored number — change the rent input and watch the value moveA hard-coded $1,028,571 that will not respond to anything
Formulas, not pasted values, referencing your named inputsA number that is right today and wrong the moment an input changes
The sensitivity run — days per month 30 → 22, then restoreA days-per-month figure hard-coded somewhere inside the formulas

Record what the sensitivity did to each worker's economic profit — you will use those numbers in Stage 2 — then restore the input to 30 before your final commit.

When a check fails, fix the spec and regenerate rather than patching the workbook by hand. A workbook that no longer matches its spec is a model nobody can rebuild.

AI boundary for this stage: AI may explain the profit concepts, quiz you, critique your reasoning, and debug what it built. It may not write the brief, and it may not hand you the verdicts before your hypothesis is committed. "Walk me through why opportunity cost uses net earnings" is exactly right; "which of the four is ahead?" before the brief exists defeats the stage.

Deliverable

WhatWhere it goes
The brief, with a hypothesis committed before any modelingdocs/briefs/economic-profit-brief.md
The specification, with audit findings appendedcapabilities/economic-profit/spec.md
The workbook that satisfies itcapabilities/economic-profit/model.xlsx
What the capability is, and where it was exercisedcapabilities/economic-profit/README.md

Check yourself