For: anyone who can report that people finished — a cohort, a scholarship class, a fellowship, an accelerator batch — and then gets asked by a funder how much anyone actually changed.
Why: completion records describe delivery: attendance met, credential earned, box checked. They can't prove movement, and they never ask whether the movement was yours.
Outcome: an exit wave that closes the pre/post pair — every baseline measure repeated on the same scale, change computed per person the moment the response lands, one honest counterfactual on the record, and a one-page exit report for every graduate.
What the exit wave delivers as it closes:
- Intelligent Cell reads every exit reflection on arrival — outcome claims graded against the participant's own words, growth stories separated from polite thank-yous, every quote traceable.
- Intelligent Row computes change per person, not per average — each row closes its own pre/post pair the moment the exit response lands: same scale, same ID, movement you can defend record by record.
- Interrogate the whole journey in plain English — the Sopact assistant answers across intake, mid, and exit waves at once: "Who improved most, and what did they credit?" — from Sense, or from Claude or ChatGPT via MCP.
- Regressions and hollow claims flag themselves — when a graduate's numbers fall or a change claim has no evidence behind it, Intelligent Cell notifies you automatically before the cohort story ships to a funder.
This is Chapter 7 of the Case Intelligence series. In Chapter 6 you caught the people slipping mid-program, while the fix still cost a phone call. Now the cohort is finishing — and exit is where the pre/post story your baseline opened either closes or falls apart. Whether your participants are trainees, students, founders, or grantees, the method is identical.
As always, the first two steps are [DIY] — they run in any AI chat window today. The last two are [SENSE] — product behavior, because change is a two-record fact, and a chat window has never seen the first record.
Completion is not change
Picture the annual report: eighty enrolled, sixty-two completed, fifty-eight credentialed. Real facts, worth having. Then the funder asks the two questions the completion count can't touch. How much did each person change? Two graduates can both finish — one transformed, one leaving exactly where they started — and the count scores them identically. And was the change yours? Some people would have found the job anyway; a funder paying for impact wants the change you caused, not the change that happened nearby.
The fix is a join, not a new survey. Exit is the "post" half of the pairs you opened at intake: every baseline measure reappears on the same scale, same wording, same persistent ID — which is what lets change be computed per person instead of as a cohort average that hides who never moved. And it sets this chapter's standard: a completer with no measured change is a flag, not a success.
Step 1 — Build the exit from the intake form [DIY]
Don't design an exit survey alongside your intake — build it from it. Every baseline measure repeats byte for byte; then add the completion facts (credential, assessment score, readiness) and consent plus a contact channel for follow-up, because your wage pair doesn't pay off until months after exit.
Paste this into any AI:
Here is my intake form, with exact wording and scales: [paste it — and any later waves already planned, like a six-month follow-up].
Build my exit survey from it. Repeat every baseline measure byte for byte and mark it PAIRED; flag anything that changed wording or scale as DRIFTED with the one-line fix; mark any exit measure with no intake partner ORPHANED. List every intake measure that doesn't reappear, with the claim that becomes unprovable if it stays unpaired. Then add the completion facts (credential yes/no and name, assessment score if the same one ran at intake, readiness yes/no) and a consent-plus-contact field so the follow-up wave can find people.
The discipline is symmetry. A reworded question is an orphan, not a pair; a new outcome scale at exit with no baseline is a dot with no line. And name where each pair pays off: confidence closes at exit, the wage pair closes at follow-up — which is why the consent field is not optional.
Step 2 — Ask whether it would have happened anyway [DIY]
One question separates reporting outcomes from claiming impact, and most programs skip it. The design problem is politeness: ask a grateful graduate "was the program helpful?" and you've measured gratitude. Pose the counterfactual instead — where would you be on this today without the program?
My program in one sentence: [describe it]. The main outcome my exit measures: [name it].
Write one counterfactual attribution question for my exit survey: plain-language wording a grateful participant can answer honestly, with exactly four options — entirely because of the program / mostly the program / partly the program / would have happened anyway — plus a short open "why". Then give me the rule for coding the why: STRONG only if it explicitly rejects the would-have-happened-anyway alternative and names something the program supplied; MODERATE if the program is the main of several factors; WEAK if it's praise with no counterfactual content. Warmth is not evidence.
The open "why" is where attribution actually lives. "No way I'd have gotten certified on my own — I didn't even know which cert employers wanted" rejects the counterfactual and names the mechanism: strong, quotable evidence. "Great program, amazing staff" is warmth — an honest rule codes it weak no matter how good it feels to read.
Step 3 — The one-page exit report, written on arrival [SENSE]
From here on, this is what the product does — not a prompt you run. Change is a two-record fact: the +3 on confidence exists only because the exit row found the intake row. A chat window can summarize the exit answer you paste; it cannot know the person started at 4. Sense holds every wave on one ID, so the moment an exit lands, change is computed from that person's own baseline and attribution is coded from their own words:
One graduate's exit report · written the moment the response lands
| Field | Result | Basis |
| Confidence | 4 → 7 (+3) — mid dip to 3, recovered | Same question, same 1–10 scale, joined across three waves by one ID |
| Skills | 40 → 78 (+38) on 0–100 | Same assessment at intake and exit |
| Attribution | STRONG | "No way I'd have gotten certified on my own — the mentor pushing me through the bus mess is the only reason I finished" |
| Readiness | READY | Credentialed · skills 78 · confidence recovered |
| Grade | EVIDENCED | Movement on both pairs, counterfactual on the record |
Read it: every number is a two-record fact — the +3 exists only because the exit row found the intake row. A completer whose measures stay flat gets this same report graded UNPROVEN, not a quiet tick in the completion column.
Read it the way a checkbox system can't: a confidence line that runs 4 → 3 → 7 — the mid-program dip Chapter 6 caught, recovered and passed; a skills score nearly doubled against his own start; and a counterfactual naming the exact intervention that kept the story from ending at the dip. And the flag cuts the other way: a completer whose repeated measures stay flat gets the same report graded UNPROVEN — the graduate a checkbox would silently count as a win.
Step 4 — Build the cohort story from per-person joins [SENSE]
One exit report is a graduate's story; the cohort story is what the funder reads. The only honest way to build it is from the per-person pairs, not from averages — a mean can be arithmetically true while a slice of graduates moved zero. In Sense you ask in plain language:
- "Report cohort change built from each person's own before-and-after" — a trajectory with names behind it, not a mean with a margin.
- "List everyone who completed but shows no movement" — the UNPROVEN flags that make the headline defensible.
- "Compare completers and non-completers at follow-up" — the comparison that shows completion was worth measuring at all.
- "Split the wins: changed and attributable vs would-have-happened-anyway" — the split a skeptical funder runs in their head; run it first, on evidence.
The cohort story · built from per-person joins, not averages
| Pair | Before | After | Status |
| Confidence, 1–10 | 4.3 at intake | 7.1 mid → 7.4 exit | PAIRED same scale, same people |
| Median wage | $9.96 at intake | $25.11 at six-month follow-up | PAIRED exit hands the pair to follow-up |
| Employment at follow-up | — | 82% completers vs 45% non-completers | The comparison that shows completion mattered |
| Completers with no movement | Each flagged with their own before/after values | UNPROVEN the flag a checkbox hides |
Read it: the aggregate is assembled from every participant's own before-and-after, so the non-movers surface as named flags — and the headline number can be defended line by line.
The last two rows are the ones traditional reporting can't produce. The completers-versus-non-completers comparison only exists because everyone stayed joined on the same ID after they left — a program that stops tracking at the certificate ceremony has no comparison group. And the flagged non-movers are what make the headline number one you can defend line by line, which is the only kind a skeptical funder accepts.
Common mistakes
Reporting completion as impact. "62 completed" describes delivery. Keep the count — funders want it — but never let it stand where the change number should be.
Rewording the exit questions. An exit item that "improved" the intake wording is an orphan, not a pair. Repeat the baseline exactly, or accept that the pair is dead.
Skipping the counterfactual because everyone loves the program. Gratitude is not attribution — that's exactly why the question is needed.
Publishing the average without the joins. If your cohort number can't survive its own line-by-line, it's not a number to publish.
Treating exit as the last contact. The wage pair and the completer comparison both live at follow-up. An exit without consent and a contact channel closes the file and the evidence with it.
What you have now
An exit survey built from the intake form, every pair intact. One honest counterfactual with a mechanical coding rule. A per-graduate exit report written on arrival — change from their own baseline, attribution with the quote that earned it, and an UNPROVEN grade for any completer who didn't move. And a cohort story assembled from per-person joins that can be defended record by record.
The one thing to do this week
Open your exit survey next to your intake form and check one thing: does every intake measure reappear, same scale, same wording? Fix the drifted ones, and add one question — "where would you be on this today without the program?" with an option for "would have happened anyway." That single edit turns your next cohort's exit from a completion record into a pre/post claim.
Who this is for
Program leads whose annual report says "graduated" where the funder wants "changed." Evaluators staring at an exit export and an intake export that share no key. Anyone who has published a cohort average and hoped nobody asked about the people inside it. If your program can prove attendance but not movement, the fix starts here.
Close your pre/post pair in Sopact Sense — sopact.com/academy.
Next in the series: How to Catch At-Risk Participants Early with Mentor Notes — exit measures the people you kept; the weekly notes are where you keep them, catching the slide weeks before the midpoint confirms it.