Requirements Governance: Who Approves What, and When
Nine items on a status ladder, four approval gates and ten logged changes replayed against a change policy. Reviewed is a rung below approved.
Numbers in this note carry source tags ([POLICY], [THREADS n=10], [MINE]). What the tags mean.
This piece uses the returns case published on this site: damaged-delivery refunds at a mid-size online retailer, built only from public sources, namely a published returns policy [POLICY], help centre articles [HELP], ten public complaint threads I selected myself [THREADS n=10], consumer law [LAW] and a walk through the published customer journey [WALKTHROUGH]. No client, no engagement, no interview. The case has three dated versions and two review sessions, so it has a real change history to test against.
Requirements governance is the set of written rules that say, for each kind of change to a requirement, whose approval makes it count, at which event that approval is due, and what happens if it never comes.
The RACI piece covered who approves, one rule at a time. This one covers when, and for which kind of change.
In short
- Governance needs a status for every item, not only for the document. The case says "Reviewed". Inside it, nine requirements and rules each sit on their own rung, most held there by a named open question.
- "When" is a list of events more than dates. The case's open questions give four gates: a decision date, the baseline, build start and the first week of access. Each has a written fallback.
- The case records ten changes between v1.0 and v1.2. Replayed against a change policy, three needed only the author. Seven needed someone with authority, and none of the seven has that yes.
- Peer review and approval are different steps. Two peers with no access to the retailer read the case, which is why its status stops at "Reviewed" and the register has never been baselined.
Why is a RACI matrix not enough?
A RACI says whose yes counts on a row. It does not say when that yes is due, whether a later edit cancels it, or which edits are small enough to skip it. Without those answers, every change goes back to everyone, or no change goes back to anyone.
Wikipedia's article on requirements management describes it as "documenting, analyzing, tracing, prioritizing and agreeing on requirements and then controlling change and communicating to relevant stakeholders". Governance is the agreeing and the controlling of change, and both need a reference point. The configuration management definition of a baseline supplies it: "an agreed description of the attributes of a product, at a point in time, which serves as a basis for defining change." Before a baseline there are no changes, only drafts. So governance starts with a status.
The ladder, and where the case stands on it
The rungs are mine [MINE], not a standard. They are the smallest set that tells a reader what has happened to a document:
- Drafted. One person wrote it.
- Self-reviewed. The author ran a written test against it, with time in between.
- Peer-reviewed. Someone else tried to break it, and the objections are logged.
- Approved. A person with authority to make it true said yes, for each item that needs one.
- Baselined. One version is frozen, and every later edit is a change with a record.
The case sheet in the case dates three of them: v1.0 drafted on 24 March 2026, v1.1 after self-review against the scorecard on 31 March, v1.2 after external review on 9 April. Its front matter says status: "Reviewed". Open question OQ-03 is due "before the register is baselined", which only makes sense if the baseline has not happened.
The items inside the document are spread across the ladder:
| Item | Entered | Highest rung | What holds it there |
|---|---|---|---|
| REQ-014 refund on damaged delivery | Before review. Criterion 2 rewritten in v1.2 | Peer-reviewed | OQ-04 (weekend rota), OQ-05 (partial refunds in release 1). Criterion 3 rests on BR-11 |
| REQ-015 escalation ownership | v1.2 | Written in answer to review | Traces to BR-07 (OQ-02) and to BR-12, which nobody has adopted |
| REQ-016 evidence retention | Fallback added in v1.1 | Peer-reviewed | OQ-01, legal, "before build starts" |
| REQ-017 condition dispute after payout | v1.2 | Written in answer to review | No OQ id. Its gate is item 4 of the summary's asks: "Put the goods-in lead in the room before anything ships" |
| REQ-018 pre-check may approve, never refuse | v1.1 | Peer-reviewed | Traces to BR-04 and BR-11, both held by OQ-03 |
| BR-04 damage reporting window, Observed | Before review | Published by the company | Owner unknown, OQ-03 |
| BR-07 resolution window, Observed, "possibly only a target" | Before review | Published by the company | OQ-02, due 30 April 2026 |
| BR-11 partial refund threshold, Observed | One line in v1.1, a page in v1.2 | Published by the company | Owner unknown, OQ-03 |
| BR-12 ownership of a missed window, Proposed by me | v1.2 | Written in answer to review | Adoption by the Head of Customer Care, "if adopted" |
Two readings of that table matter.
Three items were written after the reviewers left. The review sessions are dated 2 and 6 April 2026. REQ-015, REQ-017 and BR-12 entered in v1.2, dated 9 April. They answer the objections, but no reviewer has read them in their final form. The log's summary line says "Reviewed version: v1.2", which is true of the document and not of every item in it. A governance rule that marks status per item catches this. One that marks it per document does not.
Observed and proposed rules need different approvals. BR-04, BR-07 and BR-11 already exist, because the company published them. The analyst cannot approve them and does not need to. The task is to find whose they are, so they can be changed on purpose. That is OQ-03. BR-12 does not exist until someone adopts it, so there approval is what creates the rule. The register keeps the two apart in its Status column, which the case calls "the one most registers leave out, and leaving it out is how a rule that somebody proposed on a Tuesday becomes a rule that 'has always been there'." For an observed rule the owner confirms. For a proposed rule the owner adopts. A policy that says "approved by the rule owner" covers both with one word and gets one wrong.
When is each approval due?
The case has no governance section, but its open questions register already holds a calendar. Each question has a due point, and three of the four due points are events. Grouped, they become approval gates:
| Gate | What must be settled | Fallback the register writes down |
|---|---|---|
| 30 April 2026, the decision date on the one-page summary | OQ-02: is five working days a commitment or a target? OQ-05: do partial refunds ship in release 1? | OQ-02: "Treated as a target, published as a target, and REQ-015 hangs off the 48 hour window instead". OQ-05: "Out of release 1, threshold conversation moves to release 2" |
| Before the register is baselined | OQ-03: who owns BR-04 and BR-11? | "The rules stay in the register with the owner slot open, and nobody may change either threshold until it is filled" |
| Before build starts | OQ-01: retention period against statute. OQ-04: does the rota cover weekends? | OQ-01: "Shortest defensible period, and the decision escalates". OQ-04: "The window becomes two working days, and the public promise changes to match" |
| First week of access | OQ-06: how many cases actually stall today? | "Instrument first, decide second" |
Events outlast dates. "Before build starts" stays correct however far the plan moves. The one fixed date, 30 April, belongs to a decision the summary asks for directly, so there the date is the event.
One question has two clocks. The summary asks the Head of Customer Care to name the rota owner and confirm weekend cover by 30 April. The register gives OQ-04 "before build starts". The summary simply asks early, but a policy should say which one binds. I would make the register's due point the deadline and the summary's date the request.
The fallback makes the gate real. Without one, a missed gate means nothing happens. The case puts it in one line: "An open question without a fallback is a wish."
Ten changes, replayed against a change policy
A change policy sorts edits into classes and gives each class one approver. These classes are mine [MINE]. I wrote them, then ran every logged change from v1.0 to v1.2 through them.
| Class | What it covers | Who approves |
|---|---|---|
| E. Editorial | Wording that changes no test result and no decision | Author, with a log line |
| C. Criterion | Anything that changes what a tester would check | Approver of that requirement |
| N. New requirement | An item that needs a build slot | Owner of the release decision |
| R. Rule | A new rule, or a changed rule statement | Rule owner: adopts if proposed, confirms if observed |
| S. Scope | Anything moving in or out of scope | Owner of the release decision |
| L. Legal | Anything touching a statutory duty | Legal |
The replay, from the register's Status fields and the review log:
| Change | Source in the case | Class | Has the approver said yes? |
|---|---|---|---|
| v1.1: REQ-018 added | "added during self-review against scorecard check 03" | N | No |
| v1.1: fallback added to REQ-016 | "fallback added after self-review" | L | No, OQ-01 |
| v1.2: parked branch added to the as-is model | RL-01 | E | Yes, author |
| v1.2: REQ-015 added | RL-01 | N | No |
| v1.2: BR-12 proposed | RL-01 | R, adopt | No |
| v1.2: REQ-014 criterion 2 anchored to the form timestamp | RL-02 | C | No |
| v1.2: "four in ten" relabelled as a count | RL-03 | E | Yes, author |
| v1.2: non-delivery and lost parcels out of scope | RL-04 | S | No |
| v1.2: BR-11 page, with rationale marked as inference, owner open, review trigger | RL-05 | E | Yes, author |
| v1.2: REQ-017 added | "added in the redraft that followed review" | N | No |
Three of the ten needed only the author. Seven needed someone with authority, and none has said yes. That is the gap between "Reviewed" and "Approved", and the log's summary names its cause: "two peers, two sessions, neither with access to the retailer."
The biggest edit needed the fewest signatures. BR-11 went from one line to a page, the change the log calls the one "that produced an artifact rather than an edit". Under the policy it is editorial: the rule statement and the figure did not move. The page adds the rationale, labelled as my inference, the open owner slot and the review trigger, all the author's to write. Sort changes by size and this one goes to a Finance owner nobody can name yet, and waits.
The smallest model edit created two items that need approval. Drawing the parked branch describes what already happens, so it is the author's change. REQ-015 and BR-12 came out of it, and both need someone else's yes. Classify each change where it lands, not where it started. That is the same walk a traceability matrix does when a change request arrives.
Does governance stop at the baseline?
No, it moves into the system. Criterion 3 of REQ-018: "Every automated approval records the rule version that approved it, so a later change to BR-11 can be traced to the cases decided under the old one." Once the pre-check pays refunds on its own, "which version of the rule was in force?" is a question about money already paid, and a policy that ends at the baseline leaves it with no owner.
One more finding, against the scorecard. Check 14 asks that every requirement carry "an id, a version and the date it last changed". The Status fields give a version, such as "v1.2, criterion 2 rewritten after review", but no date. The date is one step away, in the case sheet. That passes by reference only, and a register copied out without its case sheet would fail.
The governance card, filled in
One page next to the register, written before the baseline. The fields are my proposal [MINE]; every value comes from the case.
| Field | Returns case |
|---|---|
| Document status | Reviewed, v1.2, 9 April 2026. Not approved, not baselined |
| Item status | Status field per item, with version. Items added after the last review marked as unread |
| Who may baseline | The author, once OQ-03 has an owner or its fallback is accepted in writing |
| Rule kinds | Observed (owner confirms) and Proposed (owner adopts), never merged |
| Change classes | E, C, N, R, S, L, one approver each |
| Gates | 30 April 2026 · before baseline · before build · first week of access |
| Missed gate | The fallback in the open questions register applies |
| After release | Each automated decision records the rule version (REQ-018, criterion 3) |
| Approval expires | When a change in class C, R, S or L touches the item or anything it traces to |
The governance card, empty
| Field | [Your document] |
|---|---|
| Document status | [Rung, version, date. Write "not approved" if it is not] |
| Item status | [Where each item's version and date live, and which items no reviewer has read] |
| Who may baseline | [A role, and the condition that must hold first] |
| Rule kinds | [Which rules exist already and which are proposed] |
| Change classes | [Your classes. One approver each, or split the class] |
| Gates | [Events, unless the event is a date] |
| Missed gate | [The default. Copy it from your open questions] |
| After release | [How a production decision records the rule version behind it] |
| Approval expires | [Which classes of change cancel which approvals] |
Fill in the "has the approver said yes?" column for your own history before the card. It tells you which rung you are really on.
Read next
Cutting Scope Without Cutting the Point
Eleven cuts a published case made and four it refused, each run through one test: on release day, is the problem the wor
RACI for Requirements Sign-Off: Who Actually Approves
A sign-off matrix on a published returns case: one business rule walked through every role that can approve it, and what
Get the Proof Pack
Six blank templates and one worked case. Free, one email. The scorecard is a separate file and needs none.
Send it to meAll field notes · The portfolio guide · More in Requirements That Survive Review