play icon for videos
← Academy
SOPACT ACADEMY · CASE INTELLIGENCE · COMMUNICATE

Turn a Cohort into a Funder Impact Report

A funder report that is a query, not a month of copy-paste — every outcome against a pre-committed target, every number paired with a verbatim quote, every claim graded before it ships.

<aside class="ci-wizard" aria-label="Case Intelligence series navigator"> <div class="ci-wiz-eyebrow">The Case Intelligence Series</div> <div class="ci-wiz-sub">13 chapters · foundation + two tracks</div> <div class="ci-progress"><span style="width:100%"></span></div> <div class="ci-progress-label">You're here — Chapter 12a of 13</div> <div class="ci-group">Foundation</div> <ol class="ci-steps"> <li class="ci-step is-done"> <a href="/academy/what-is-case-intelligence" target="_blank" rel="noopener"> <span class="ci-num">1</span> <span class="ci-step-body"><span class="ci-step-title">What Is Case Intelligence?</span></span> </a> </li> <li class="ci-step is-done"> <a href="/academy/how-to-build-a-theory-of-change" target="_blank" rel="noopener"> <span class="ci-num">2</span> <span class="ci-step-body"><span class="ci-step-title">How to Build a Theory of Change That Survives Funder Questions</span></span> </a> </li> <li class="ci-step is-done"> <a href="/academy/theory-of-change-to-data-collection-workflow" target="_blank" rel="noopener"> <span class="ci-num">3</span> <span class="ci-step-body"><span class="ci-step-title">How to Turn a Theory of Change into a Data-Collection Workflow</span></span> </a> </li> </ol> <div class="ci-group">Nonprofit Track</div> <ol class="ci-steps"> <li class="ci-step is-done"> <a href="/academy/review-applications-without-reviewer-bias" target="_blank" rel="noopener"> <span class="ci-num">4</span> <span class="ci-step-body"><span class="ci-step-title">How to Review Applications Without Reviewer Bias</span></span> </a> </li> <li class="ci-step is-done"> <a href="/academy/intake-form-usable-baseline" target="_blank" rel="noopener"> <span class="ci-num">5</span> <span class="ci-step-body"><span class="ci-step-title">How to Design an Intake Form That Captures a Usable Baseline</span></span> </a> </li> <li class="ci-step is-done"> <a href="/academy/spot-at-risk-participants-mid-program" target="_blank" rel="noopener"> <span class="ci-num">6</span> <span class="ci-step-body"><span class="ci-step-title">How to Spot At-Risk Participants Mid-Program</span></span> </a> </li> <li class="ci-step is-done"> <a href="/academy/measure-change-at-exit" target="_blank" rel="noopener"> <span class="ci-num">7</span> <span class="ci-step-body"><span class="ci-step-title">How to Measure Change at Exit (Not Just Completion)</span></span> </a> </li> <li class="ci-step is-done"> <a href="/academy/mentor-notes-early-warning" target="_blank" rel="noopener"> <span class="ci-num">8</span> <span class="ci-step-body"><span class="ci-step-title">How to Catch At-Risk Participants Early with Mentor Notes</span></span> </a> </li> <li class="ci-step is-done"> <a href="/academy/calculate-sroi-live" target="_blank" rel="noopener"> <span class="ci-num">9</span> <span class="ci-step-body"><span class="ci-step-title">How to Calculate SROI — Live, Sourced, and Honest</span></span> </a> </li> <li class="ci-step is-active" aria-current="step"> <span class="ci-num ci-num-range">12a</span> <span class="ci-step-body"><span class="ci-step-title">How to Turn a Cohort into a Funder Impact Report</span><span class="ci-step-meta">You're here</span></span> </li> </ol> <div class="ci-group">Social Enterprise Track</div> <ol class="ci-steps"> <li class="ci-step "> <a href="/academy/job-description-requirements-checklist" target="_blank" rel="noopener"> <span class="ci-num ci-num-range">10</span> <span class="ci-step-body"><span class="ci-step-title">How to Turn a Job Description into a Requirements Checklist</span></span> </a> </li> <li class="ci-step "> <a href="/academy/score-candidate-role-matches-without-bias" target="_blank" rel="noopener"> <span class="ci-num ci-num-range">11</span> <span class="ci-step-body"><span class="ci-step-title">How to Score Candidate–Role Matches Without Bias</span></span> </a> </li> <li class="ci-step "> <a href="/academy/cohort-to-investor-impact-report" target="_blank" rel="noopener"> <span class="ci-num ci-num-range">12b</span> <span class="ci-step-body"><span class="ci-step-title">How to Turn a Cohort into a Social-Enterprise Investor Report</span></span> </a> </li> </ol> <a class="ci-next" href="/academy/what-is-case-intelligence" target="_blank" rel="noopener">↺&nbsp; Back to the start</a> </aside> <style> .ci-wizard{--ink:#48416A;--body:#3D3A33;--muted:#76716A;--surface:#F7F6FD;--surface2:#EFEAFB;--line:#E4DFF2;--line2:#DCCEF4;--accent:#8D8AE8; position:sticky;top:24px;box-sizing:border-box;font-family:'Inter',system-ui,sans-serif;color:var(--body); background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px 20px;} .ci-wizard *{box-sizing:border-box;} .ci-wiz-eyebrow{font-family:'Inter',Georgia,serif;font-size:18px;font-weight:600;color:var(--ink);line-height:1.25;} .ci-wiz-sub{font-size:12.5px;color:var(--muted);margin-top:3px;} .ci-progress{height:5px;border-radius:999px;background:var(--surface2);margin:14px 0 7px;overflow:hidden;} .ci-progress span{display:block;height:100%;background:var(--accent);border-radius:999px;} .ci-progress-label{font-size:12px;color:var(--muted);} .ci-group{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px;padding-top:14px;border-top:1px solid var(--line);} .ci-group:first-of-type{border-top:0;} .ci-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;} .ci-step a,.ci-step{display:flex;gap:12px;align-items:flex-start;text-decoration:none;color:inherit;} .ci-step a{padding:8px;margin:-8px;border-radius:10px;transition:background .15s;width:100%;} .ci-step a:hover{background:var(--surface2);} .ci-step{padding:8px 0;} .ci-num{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:600;color:var(--muted);background:var(--surface2);border:1px solid var(--line2);} .ci-num-range{width:auto;min-width:26px;padding:0 9px;border-radius:999px;font-size:11.5px;height:26px;} .ci-step-title{display:block;font-size:14px;font-weight:500;color:var(--ink);line-height:1.35;} .ci-step-meta{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;} .ci-step.is-active .ci-num{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 0 4px rgba(201,100,66,.15);} .ci-step.is-active .ci-step-title{font-weight:600;} .ci-step.is-active .ci-step-meta{color:var(--accent);font-weight:600;} .ci-step.is-done .ci-num{background:var(--ink);border-color:var(--ink);color:#fff;} .ci-next{display:flex;align-items:center;justify-content:center;margin-top:20px;background:var(--ink);color:#fff;text-decoration:none;font-size:14px;font-weight:600;padding:12px 16px;border-radius:11px;transition:transform .15s,background .15s;} .ci-next:hover{background:var(--accent);transform:translateY(-1px);} </style>

For: program teams — nonprofit or social enterprise, running a training cohort, a scholarship class, a fellowship, or an accelerator — who owe a funder or grantmaker an impact report and dread the month it takes to produce one.

Why: the funder report is usually a year-end scramble — re-export every system, reconcile mismatched IDs for days, copy numbers into a deck that is stale on arrival, and ship claims nobody can trace to a source.

Outcome: a cited impact report that is a query, not a month of copy-paste — the cohort rolled up to your theory of change, every outcome against a pre-committed target, every number paired with a verbatim participant quote, every claim graded evidenced, unproven, or missing.

This is Chapter 12a of the Case Intelligence series — the capstone. In Chapter 11 you scored every candidate–role pair against one rubric and the funnel narrowed to 29 placements. Every earlier chapter was quietly stocking the shelves for this one: intake captured the baseline, the midpoint tracked it, exit closed the pair, the notes explained the drop-offs, the SROI chapter priced the change. Whether your participants are trainees, students, founders, or grantees, the method is identical.

As always, the first two steps are [DIY] — structuring the report and committing to targets are thinking work for any AI chat window. The last two are [SENSE] — because a chat window cannot quote transcripts it never received, and cannot grade a claim against waves it cannot see.

The funder report shouldn't be a scramble

Here is the ritual most teams know by heart. At grant close, someone exports the case-management system for the intake data. Then the survey tool, for the mid and exit numbers. Then the spreadsheet where the follow-up wages were pasted. Then the notes nobody has read since March. Each export carries a different ID scheme, so reconciling them takes days. The numbers that survive get copied into a deck — and the moment they are copied, they are stale. Worst of all, the claims ship uncited: "confidence rose" with no participant's words behind it, "82% employed" with no way to trace which participants, in which wave, measured how.

That ritual is not a staffing problem; it is the collect-then-clean architecture doing exactly what it was built to do. When every field was scored the moment it arrived, and every score and quote sits on one persistent ID, the report does not get assembled at cohort close — it gets queried. The report was being written the whole time; close is retrieval.

One more thing decides whether the report can be trusted: what a funder actually asks. Not how many workshops you ran — whether the program changed lives, at what cost, for whom, and whether you can prove it. Outcomes against targets, the funnel with its drop-off, cost per outcome, a defensible SROI, equity coverage, variance named plainly, and a citation behind every number. Activity counts are not on that list, and funders can tell the difference.

Step 1 — Structure the report around the funder lens [DIY]

Draft the skeleton before you touch any data — the same outline every reporting cycle, so this year's report is comparable to next year's. Deciding the sections before seeing results also removes the quiet temptation to organize the report around whatever happened to look good.

Here is my program, the outcomes the grant promised, and my funder's reporting requirements: [paste all three].

Build my report outline from these sections only, dropping any that don't apply: outcomes vs targets; the funnel with honest drop-off; cost per outcome; SROI carried from an existing sourced calculation; equity and subgroup coverage; grant variance; theory-of-change rollup; citations policy. For each section you keep, say in one line what funder question it answers and what data it needs. Apply the activity-count test mechanically: if a section's headline number could grow while participants' lives stayed unchanged — sessions delivered, hours mentored — cut it, or demote it to variance explanation.

Structure is where honesty gets decided. If "beneficiaries served" means the funnel with its drop-off, the report can be trusted; if it means the largest number anyone touched the program, it cannot.

Step 2 — Commit to targets before you see the rollup [DIY]

From your theory of change, pick the outcomes the grant funded and commit — before the results are in front of you — to one indicator and one target each: a confidence gain of +2.5 on the same scale, a median wage of at least $20 an hour at follow-up, 70% completion, 30 placements. Each indicator must point at a store and wave that already collects it; a target with no collection point is a coverage gap to name, not a number to improvise at close.

Here is my theory of change, and the stores and waves I already collect: [paste both].

Before any results exist, commit my reporting targets: only the outcomes the grant funded, one indicator and one checkable numeric target per outcome — no ranges of convenience, no "directional" targets. For each, name the store and wave that already collects the indicator; if nothing collects it, write NO COLLECTION POINT so it becomes a named coverage gap instead of a number improvised later. Flag any indicator whose scale changes between waves, and never delete a hard-to-hit target — a reported miss is worth more than a soft target hit.

A target chosen after the results is a target that cannot be missed — which is to say, not a target. Committing first means a miss ships as a miss, and funders have read enough reports to recognize a program that measures itself from one that grades its own homework.

Step 3 — The evidence assembled itself on arrival [SENSE]

From here on, this is what the product does — not a prompt you run. A chat prompt can format whatever you paste into it, but it cannot cite what it never received — and at close, nobody re-reads five waves of open text to find the right quote. Here, the citations were built when the data landed: every field scored on arrival, every open-text answer preserved in the participant's exact words beside its numbers, on the same record, same ID. Look at one claim as it sits in the store at cohort close:

One claim · as it sits in the store at cohort close
LayerWhat the record holds
ClaimMedian wage $9.96 → $25.11/hr, intake → six-month follow-up
SourcesWage at intake · wage at follow-up · joined on the persistent participant ID
Where it startedOne record: intake wage $12.69, confidence 3.6/10, goal in his own words — "support my kids without working two jobs"
Quote on the same ID"First real paycheck where I wasn't choosing between rent and groceries."
GradeEVIDENCED — a quotable figure and a participant's words, both traceable
Read it: nothing here was produced for the report. The number and the words were joined the day each record landed — the report's job is retrieval.

Nothing in that card was produced for the report. The intake wage was captured at intake, the follow-up wage two waves later, the quotes scored on arrival, the join guaranteed by the ID. In a collect-then-clean stack, pairing a number with a quote at report time means a human searching transcripts for something usable — slow, and quietly biased toward the most quotable participants. Here the pairing predates the report, so the citation is whatever the record actually says.

Step 4 — Query the report [SENSE]

Now the close itself. In Sense you ask over all the stores at once, in plain language:

  • "Roll the cohort up to the theory of change, against the committed targets" — each outcome reported hit, miss, or near, with a verbatim quote on the ID beside every number.
  • "Carry the economics" — cost-per-outcome ≈ $20,076 and SROI ≈ 2.44:1 from Chapter 9, measured value still labeled separately from benchmarked, not a fresh number invented for the deck.
  • "State the equity coverage" — about 22% justice-involved, about 55% first-generation, outcomes reportable inside each subgroup; "did you serve the hardest-to-serve?" gets a number, not an adjective.
  • "Grade every claim in the draft" — evidenced only with a figure and a quote on a record; unproven softened or cut before a program officer finds it; missing named as a coverage gap instead of faked.
The cited rollup · every outcome against its pre-committed target
OutcomeTarget → ActualStatusQuote on the ID
Job-ready confidence+2.5 → 4.3 → 7.4 (+3.1)HIT"By the end I was the one helping other people read the blueprints."
Living-wage employment≥ $20/hr → $25.11 medianHIT"First real paycheck where I wasn't choosing between rent and groceries."
Completion70% → 78% (62 of 80)HIT
Placement30 → 29NEAR — shipped as a missVariance attached: 25 roles unfilled on citizen-only and CDL hard fails
Read it: the near-miss ships as a near-miss, with its explanation pulled from the requisition store — and every number carries a participant's own words.

Study the placement row. Twenty-nine against a target of thirty ships as a near-miss, with the variance attached from the requisition store — 25 roles unfilled on citizen-only and CDL hard fails while 29 credentialed candidates sat surplus. A scramble-built report would have rounded that story off; a queried one attaches it. And the comparison numbers carry their own asterisk: 82% of completers employed at follow-up versus 45% of non-completers is a comparison, not a causal claim, and the report says so. A report that names its own gaps reads as more credible than one that pretends to none — because it is.

Common mistakes

Reporting activity instead of change. Sessions delivered, workshops run, hours mentored — funders skim past all of it looking for the outcome. Let activity appear only where it explains a variance.

Choosing targets after seeing the results. A target set at close is a ratification, not a commitment, and experienced funders can smell it. Commit first, and let 29-against-30 ship as exactly that.

Shipping numbers without words, or words without numbers. A number alone is an assertion; a moving quote alone is an anecdote. The unit of funder evidence is the pair — figure plus verbatim quote on the same ID — and the pairing has to happen on arrival.

Blending measured and benchmarked value. An SROI that mixes observed wage gains with modeled proxies in one undifferentiated number invites the one diligence question that unravels the report. Carry the split intact.

Hiding the coverage gaps. The outcome you never measured does not disappear because the report omits it — it becomes the question you cannot answer on the call. Grade every claim, and let MISSING appear in print.

What you have now

A funder impact report that is a query against data scored on arrival: the cohort rolled up to your theory of change, each outcome against a target you committed to in advance, the funnel told honestly, cost-per-outcome and a defensible SROI carried intact, equity coverage stated in numbers, every claim paired with a verbatim quote on the persistent ID, and every claim graded so nothing unsupported ships. Cohort close is an afternoon of queries and one human read-through — not a month of re-export and reconciliation.

The one thing to do this week

Take your most recent funder report and grade its claims: for each one, ask whether there is a figure and a participant's own words behind it, on the same record. Count how many survive as evidenced. That count is your current citation rate, and it is the single number this chapter exists to raise.

Who this is for

Program teams who lose a month every year to the report scramble and still ship claims they privately cannot source. Development directors who have watched a funder probe one uncited number and discount the rest. Evaluators who want targets committed before results, quotes beside figures, and gaps stated instead of smoothed. If your last report was assembled from six exports and hope, the fix starts here.

Write your funder report in Sopact Sense — sopact.com/academy.

Next in the series: How to Turn a Cohort into a Social-Enterprise Investor Report — the same records, an investor lens: blended value, unit economics, and the path to self-funding.

Ready to try it for yourself?

Open Sopact Sense, paste your program description, and put it to work.

Try it in Case Intelligence →