For: anyone who loses people mid-program — a training cohort, a scholarship cohort, a fellowship, an accelerator — and only finds out at exit, when the file closes and nothing can be done.
Why: attendance logs and unread notes are lagging indicators read on a lag. By the time a missed third session gets noticed, the intervention that would have worked in week four is a condolence in week twelve.
Outcome: every mid-program response read the moment it arrives — a flag with the evidence that triggered it, a confidence trajectory against each person's own baseline, and one specific action routed to a named human while there's still time to change the ending.
What arrives with every mid-program response:
- Intelligent Cell reads each check-in the moment it lands — a risk flag with the exact sentence that triggered it, never a hunch, never a guessed emotion.
- Intelligent Row plots every person against their own baseline — one row per participant showing the confidence trajectory, so "slipping" is measured movement, not an instructor's impression.
- Ask the cohort anything, mid-flight — the Sopact assistant cuts across intake, mid-program, and attendance data in one question: "Who dropped more than a point and mentioned scheduling?" — from Sense, or from Claude or ChatGPT via MCP.
- The alert reaches a named human automatically — when Intelligent Cell flags risk, the notification routes to the right coach with the evidence attached, while the fix still costs a phone call, not an exit interview.
This is Chapter 6 of the Case Intelligence series. In Chapter 5 you captured a baseline — one before-number per outcome, joined by a persistent ID. This chapter is what that baseline is for: the mid-program check re-asks the same questions, and the gap between the two numbers is your earliest warning that someone is slipping. 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 a chat window can't watch a caseload or join a mid response to the baseline it never saw.
Why drop-outs look sudden (and never are)
Here is the economics nobody puts on a slide: a barrier caught at the midpoint costs a phone call; the same barrier caught at exit costs a participant.
Picture a typical funnel: eighty enrolled, sixty-two completed. Eighteen people gone. Read their mid-program records afterward and the pattern is never mysterious — attendance drifting below the cohort, a confidence number pointing the wrong way, and a specific, nameable blocker sitting in an open text box: "childcare fell through twice this month," "the pace is fast and I'm struggling to keep up," "my car broke down and now I feel lost." Nobody vanished without warning. They disengaged in plain sight, in a field no one was reading.
The fix is not more data collection — the attendance, the confidence numbers, and the open text usually already exist. The fix is reading them the day they arrive, across the whole caseload at once, and flagging who needs a human before the window closes. That is the entire job of the mid wave.
Step 1 — Design a mid-point check with exactly three signals [DIY]
Keep it short. A mid check that takes twenty minutes doesn't get filled out by the people most likely to drop. Three signals: an engagement reading (attendance plus a 1–5 self-rating — behavior and felt-engagement together, because attendance can look fine after someone has already checked out), the same confidence question from intake on the identical scale and wording, and one open question: "what's getting in your way right now?"
Paste this into any AI:
Here is my intake form — or at least its core self-rating question and the outcomes it maps to: [paste].
Design a mid-program check-in with exactly three parts: one engagement signal (attendance plus a 1–5 self-rated engagement question), the same confidence question my intake asked — identical wording, identical scale — and one open question: "what's getting in your way right now?" For each, name what it tracks and which intake item it pairs with. Keep it to three questions; a longer survey loses exactly the quiet people I most need to hear from.
The discipline: the confidence question must match intake byte for byte. A mid number with no baseline can describe a moment; it can never show a direction. 4.0 means nothing alone — 4.3 → 4.0, while the rest of the cohort climbs toward 7, means everything.
Step 2 — Write the at-risk rule down [DIY]
"At-risk" is not a vibe — it's a rule you write once, so the same signals produce the same flag whether the reviewer is caffeinated or exhausted. Three tiers, one mechanical line each.
Here are my three mid-check signals and their scales: [paste from Step 1].
Define ON-TRACK, WATCH, and AT-RISK with one mechanical rule each — thresholds and combinations a spreadsheet could apply, no "use judgment" clauses. Use trajectory against each person's own baseline, not absolute level. Make AT-RISK require compounding: two signals moving the wrong way, a blocker that has recurred, or floor-level engagement — and make sure high attendance alone can never force ON-TRACK. Finish with the blocker language that escalates immediately regardless of tier: safety, housing loss, childcare or transport collapse.
The rule matters most for the person attendance would wave through: 96% attendance, confidence down against baseline, engagement 2 out of 5, and a named blocker aging in the text. Two signals off while behavior looks perfect — at-risk. Write the rule and that person gets flagged; leave it to instinct and they get a gold star until they quietly don't enroll in the next module.
Step 3 — Read every response on arrival [SENSE]
From here on, this is what the product does — not a prompt you run. A chat window reads the one response you paste into it. Sense holds the store, so every mid response is read as it lands, joined by the persistent ID to that person's own baseline: the blocker classified and quoted, the rule applied, the flag routed — for response #1 and response #80 alike.
What that looks like for the participant attendance would have missed:
The flag on arrival · one mid-point response, read against its baseline
| Signal | What arrived | What it means |
| Attendance | 96% | Top of any roster — the signal every attendance-only system trusts |
| Confidence | 4.3 → 4.0 on 1–10 | Down against their own baseline, while the cohort trends toward 7 |
| Engagement | 2 / 5 | Felt-engagement at the floor despite perfect behavior |
| Blocker | "I don't get the blueprint symbols yet and it's stressing me out" | Classified: specific skill module — not motivation, not logistics |
| Flag | AT-RISK | Instructor session on that module this week; mentor briefed — attendance masks the risk |
Read it: the flag fired because the trajectory contradicted the attendance — exactly the case every attendance-only system waves through.
Notice why the flag fired: the confidence trajectory contradicted the attendance. The open text became a classified blocker — a specific module, not a motivation problem — pinned to the participant's exact words, and the action is time-boxed and concrete, not "monitor." This is a person one tutoring session away from back on track, if someone acts this week instead of reading the box at exit.
Step 4 — Work from the caseload list, not the case file [SENSE]
One flag is a case note. The whole caseload's flags, ranked and routed, are an early-warning system — what a case manager actually needs on a Monday morning. In Sense you ask for it in plain language:
- "Who is showing early-warning signals right now, ranked by urgency?" — at-risk before watch, compounding signals first.
- "For each: the evidence quote, the trajectory against their own baseline, and who should reach out."
- "Which blockers are aging?" — problems logged weeks ago that nobody closed.
- "What themes cluster across the at-risk records?" — the difference between ten conversations and one program fix.
Monday morning · the caseload early-warning list, ranked by urgency
| Participant | Signals | Blocker, in their words | Route to |
| A | Attendance 41% · engagement 2/5 · no mentor assigned | "Falling behind on the subnetting module and too embarrassed to ask" | Assign a mentor today + instructor outreach |
| B | Attendance 41% · confidence 2.9 → 2.8, flat-low | "The pace is fast and I'm struggling to keep up with the reading" | Mentor check-in + tutoring support |
| C | Attendance 49% · blocker aging three weeks | "My car broke down and now I feel lost" | Transport support — flagged at intake, never closed |
| D | Attendance 96% — but confidence 4.3 → 4.0 · engagement 2/5 | "I don't get the blueprint symbols yet and it's stressing me out" | Brief assigned mentor — attendance hides the risk |
Read it: the list re-sorts as responses land, and nobody re-reads eighty notes by hand. Theme clusters — pace and reading load, childcare, one hard module — separate the ten-conversation problems from the one-fix problems.
The clusters are a program signal, not just a caseload one. Ten people naming childcare is not ten phone calls — it's a schedule change. Two people "too embarrassed to ask" about the same module is a curriculum flag, surfaced mid-program instead of in an exit survey. And the list re-sorts itself as responses land: Monday morning shows who moved into at-risk over the weekend, and the week gets spent on the people who can still be saved.
Common mistakes
Calling attendance an early-warning system. Attendance is a lagging signal — by the time it drops, disengagement already happened, and the quiet high-attenders never trip it at all. Pair it with a trajectory and the person's own words.
Changing the confidence scale between intake and mid. Different scale, no trajectory. The mid question must match the baseline exactly, or "confidence is dropping" is a claim you can't make.
Collecting the blocker question and reading it at exit. The open box is where the intervention lives. If it isn't read the day it lands, don't ask it.
Flagging by instinct. Unwritten rules produce different flags for the same signals. Write the three tiers once; apply them to everyone.
Treating the flag as the finish line. A flag with no routed human is a spreadsheet cell. The point is a named person, a specific support, this week.
What you have now
A three-question mid check that gets completed. A written at-risk rule that catches the quiet high-attenders. Every response read on arrival, flagged with evidence, and routed with a time-boxed action. And a caseload list that ranks who's closest to leaving — refreshed as responses land, not reconstructed at report time.
The one thing to do this week
Add two fields to whatever mid-program touchpoint you already have: your intake confidence question, unchanged, and one open "what's getting in your way right now?" The number becomes a trajectory the moment it has a baseline; the text becomes an intervention list the moment someone reads it on arrival.
Who this is for
Program leads who find out at exit that they lost eighteen people and can't say why. Case managers drowning in attendance logs and unread notes. Evaluators who want the mid number to mean something — which it only does against a baseline. If your program notices drop-off in the exit report instead of in week four, the fix starts here.
See a caseload flagged on arrival in Sopact Sense — sopact.com/academy.
Next in the series: How to Measure Change at Exit (Not Just Completion) — the exit wave closes the pre/post pair the baseline opened and the midpoint tracked, turning three readings on one scale into a provable outcome.