For: anyone whose program runs on recurring notes — mentor sessions, coaching check-ins, case visits, advisor calls — that nobody reads across the caseload until someone drops out and the warning turns up in week four's note.
Why: those notes are the richest early-warning data a program collects, and in most systems they're free text filed per person: visible one file at a time, invisible at scale, read only in the post-mortem.
Outcome: every note structured the moment it arrives — topics, progress, blockers, next actions, each pinned to the exact sentence it came from and never a guessed feeling — plus a caseload view that surfaces aging blockers while the fix is still a bus pass, not an exit interview.
What every note becomes the moment it's filed:
- Intelligent Cell structures each note on arrival — topics, progress, blockers, next actions, every one pinned to the quoted sentence it came from and never an invented emotion.
- Intelligent Row assembles the caseload view — one row per participant accumulating every session, so a blocker that's aged three weeks is visible at a glance instead of buried in file twelve.
- Ask the caseload anything, in plain English — the Sopact assistant cuts across notes, surveys, and attendance together: "Which active blockers are older than two weeks, and who owns the next action?" — from Sense, or from Claude or ChatGPT via MCP.
- Aging blockers escalate themselves — Intelligent Cell notifies the right person automatically when a risk signal appears or a blocker goes stale, while the fix is still a bus pass, not a dropout.
This is Chapter 8 of the Case Intelligence series. In Chapter 7 you measured change for the people who finished. But exit is where you count the people you kept — the weekly notes are where you keep them. The eighteen people a typical cohort loses don't vanish at exit; they slip weeks earlier, one missed session and one unresolved blocker at a time, while the evidence sits unread in the notes.
As always, the first two steps are [DIY]. The last two are [SENSE] — because trajectory is a many-record fact, and a chat window can't order weeks it never saw.
One rule governs this whole chapter: evidence only — never infer emotion. "Missed two sessions; said the bus route changed" is a fact a skeptic can check against the note. "Seems discouraged" is a fabrication — and invented sentiment is the fastest way to make staff stop trusting the analysis.
The best early-warning data is the notes nobody reads
Run the inventory on your own program: every weekly note already says what the person worked on, whether they moved, what's in the way, and what happens next. Multiply by the caseload and you're holding hundreds of small status reports on exactly the people most likely to slip.
And in a traditional system, that data is functionally invisible. Notes file per participant in chronological piles; a mentor sees their own mentee's last note; a coordinator opens a file only when there's already a problem. Nobody reads three hundred notes across a caseload week over week — so nobody sees that the same blocker, "still no reliable transport," has appeared in three different people's notes for three weeks running. The pattern that predicts the drop-off is present in the text and absent from every screen.
Two framing points. This wave is recurring, not pre/post: its value is trajectory — a blocker mentioned once is noise, the same blocker three weeks running is signal. And it complements the Chapter 6 midpoint flag rather than replacing it: the midpoint catches who is slipping at the halfway line; the note stream catches the slide forming, weeks before.
Step 1 — Design a note a busy mentor will fill [DIY]
Exactly four free-text headings, and resist every urge to add a fifth: topics discussed, progress, blockers, next actions. Too long and mentors skip it after busy sessions — exactly the sessions you need recorded. And no mood box: a mood field invites speculation, and speculation poisons the store.
Paste this into any AI:
My mentoring (or coaching / case management) program in one sentence: [describe who meets whom, how often].
Design a weekly note template with exactly four free-text headings — topics discussed; progress (moved forward, held, or slipped, on what); blockers (specific and concrete: a named module, a bus route, a childcare gap); next actions (what happens before next session, and who owns it). One line of writing guidance under each, phrased to pull concrete facts. No mood or "how are they feeling" field — if the person said something that matters, it belongs under blockers or progress as what was said. The whole note must take under five minutes.
The template is the contract between the humans who write and the machine that reads: four predictable headings mean the extraction lands cleanly on every note, and concrete blocker language means the flag that eventually fires carries a checkable fact.
Step 2 — Write the extraction rule: evidence only [DIY]
Before any AI touches a note, write down what it may pull out — and what it is forbidden to invent. This is the most important artifact in the chapter.
Here are my four note fields: [paste them — and one or two anonymized sample notes if you have them].
Write the extraction instruction that will govern how any AI reads these notes: extract only the four fields; attach the exact sentence from the note as evidence to every extracted item — no quote, no extraction; never infer, guess, or describe emotion, mood, or feeling ("missed two sessions; said the bus route changed" is allowed, "seems discouraged" is forbidden, even when it might be true); return "not stated" for anything missing rather than filling the gap; and carry recurrence counts only as the mentor stated them ("third week this has come up").
Why the hard line: the entire value of the system is that a human can trust a flag without re-reading the note. A flag that traces to a quoted sentence survives scrutiny. A flag built on "the model sensed frustration" collapses the first time a mentor says "I never wrote that" — and takes the whole system's credibility down with it. Emotion-guessing is also unfair to the participant: it converts a bad bus route into a personality assessment.
Step 3 — The note, structured on arrival [SENSE]
From here on, this is what the product does — not a prompt you run. A good week-six note reads: covered blueprint reading and test prep; picked up the fillet weld symbols without help; missed Tuesday's session again — said the bus route changed, third week transport has come up; next: confirm transport support with staff. Nothing about how anyone feels; everything about what happened. The moment it lands, it becomes structure on the participant's timeline:
One weekly note · structured the moment it lands
| Field | Extracted | Evidence — the exact sentence |
| Topics | Blueprint reading · certification test prep | "Covered blueprint reading and joint prep for the practice test" |
| Progress | Advancing on technical skills | "Got through the fillet weld symbols without help this week" |
| Blocker | Transport — RECURRING · 3rd week | "Missed Tuesday's session again; said the bus route changed… third week transport has come up" |
| Next action | Confirm transport support — owner: staff, before next session | "Told him I'd flag it for a bus pass or a schedule shift" |
| Emotion | Not extracted — by rule | — |
Read it: every cell is checkable against the sentence beside it. The blocker carries its own age because the mentor stated it — nothing inferred, no feeling guessed.
Every cell is checkable against the sentence beside it, and the blocker carries its own age because the mentor stated it. A chat window could produce this table for one pasted note — but it couldn't stamp it onto a timeline, couldn't know this is the third week without the earlier notes, and couldn't do it for three hundred notes as they arrive. The structure is only useful because it accumulates.
Step 4 — Trajectory, aging blockers, and the Monday list [SENSE]
One structured note is a data point; the value is the line through all of them. In Sense you ask the store in plain language:
- "Show this person's trajectory" — momentum read from the extracted progress and blocker fields, week by week, never from inferred mood.
- "List every blocker that has repeated two or more weeks for the same person" — ranked by age, each with its quotes.
- "Which blockers appear across multiple people?" — one person's transport problem is a support ticket; the same quote in three people's notes is a program-design finding.
- "Who has no note stream at all?" — an unwatched participant is a silent one; the coverage gap is the store auditing itself.
Monday morning · what the note store surfaces across the caseload
| Signal | Evidence across the store | Route to |
| Aging blocker | Transport, 3 weeks running for one mentee — while technical progress trends up | Bus pass or schedule shift this week |
| Repeating blocker | "Still no reliable transport to the shop" — 3 different mentees, three weeks running | Program-level fix, not three separate chats |
| Stalling momentum | Progress "held" three weeks straight, no blocker named — quotes attached | Mentor check-in: something unstated is in the way |
| Coverage gap | Two participants with no note stream at all — both later surfaced on the at-risk list | Assign mentors now — an unwatched participant is a silent one |
Read it: no emotion anywhere in the table. Every flag traces to a quoted sentence or a countable absence.
Notice the shape of the first flag: technical progress up and risk up at the same time — the profile a single score would flatten. That three-week transport blocker gets fixed with a bus pass this week; caught at exit, it's the reason a completer became a non-completer. And no emotion appears anywhere in the table — every flag traces to a quoted sentence or a countable absence.
Common mistakes
Adding a mood field to the template. It feels caring and it corrupts the store — mentors start recording guesses, and every downstream flag inherits the speculation.
Letting the AI infer emotion "for richness." "Seems disengaged" reads like insight and is unverifiable by design. The first disputed feeling kills trust in every other output.
Reading notes per file instead of across the caseload. Per-file reading is how three people report the same blocker for three weeks and nobody notices. The unit of analysis is the store, not the file.
Treating one mention as a crisis — or three as noise. Write the threshold down (two or more weeks, same person) so the flag fires by rule, not by whoever happened to read the note.
Ignoring the people with no notes at all. An empty note stream is not good news; it's a blind spot — and the unwatched people are usually the ones who surface on the at-risk list. Audit coverage monthly.
What you have now
A four-field note that busy mentors actually complete. A written extraction rule with the hard line in it — evidence quotes, never inferred emotion, "not stated" over assumption. Every note structured on arrival and filed onto a timeline by persistent ID. Per-person trajectories that read momentum from what was said. And a Monday-morning list — aging blockers ranked by persistence, repeated blockers promoted to program findings, coverage gaps named — every flag traceable to a sentence a human can check.
The one thing to do this week
Restructure your note template into the four headings — topics, progress, blockers, next actions — and delete the mood field if you have one. That single change makes every future note extractable, and it costs your mentors nothing but a cleaner form.
Who this is for
Coordinators with hundreds of notes and no way to read them at caseload scale. Program leads who learned about a three-week-old blocker in an exit interview. Anyone burned by an analytics tool that reported feelings nobody wrote down. If your program's richest data is filed per participant and read post-mortem, the fix starts here.
Put your notes to work in Sopact Sense — sopact.com/academy.
Next in the series: How to Calculate SROI — Live, Sourced, and Honest — the outcomes this chapter helped protect become a ratio a funder can check, with every number traced to its store.