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

Design an Intake Form That Captures a Usable Baseline

One before-number per promised outcome, captured at intake on the scale every later wave will re-ask, joined by one persistent ID — so the pre/post story writes itself.

<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:38%"></span></div> <div class="ci-progress-label">You're here — Chapter 5 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-active" aria-current="step"> <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 class="ci-step-meta">You're here</span></span> </li> <li class="ci-step "> <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 "> <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 "> <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 "> <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 "> <a href="/academy/cohort-to-funder-impact-report" target="_blank" rel="noopener"> <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> </a> </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/spot-at-risk-participants-mid-program" target="_blank" rel="noopener">Continue to Chapter 6 &nbsp;→</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: anyone who runs a program with a before and an after — a training cohort, a scholarship, a fellowship, an accelerator — and can't yet prove the after.

Why: most intake forms are built to register people, not to measure them. They capture demographics and a pile of free text, and at reporting time the only honest answer to "did anything improve?" is compared to what?

Outcome: an intake where every field earns its place — one "before" number per promised outcome, on a scale a later wave will re-ask, joined by one persistent ID — so the pre/post story writes itself.

What a well-designed intake pays back immediately:

  • Intelligent Cell structures every intake answer on arrival — barriers, goals, and starting conditions extracted from free text and pinned to the participant's own words, alongside the clean before-numbers your outcomes need.
  • Intelligent Row opens one profile per person, keyed to a persistent ID — the baseline lives in the same row every later wave will join, so the pre/post comparison is built the day the person walks in.
  • Query the baseline across everything, in plain English — ask the Sopact assistant "who started lowest on confidence, and what barriers did they name?" across intake and every later wave, quant and qualitative together — from Sense, or from Claude or ChatGPT via MCP.
  • Day-one risk gets routed on day one — safeguarding language, eligibility gaps, or acute-need signals in an intake answer trigger an automatic notification to a named human, not a discovery in week six.

This is Chapter 5 of the Case Intelligence series. In Chapter 4 you scored every application on arrival against one rubric. Here's the quiet bonus of that work: the application you just scored already holds your "before" numbers. This chapter turns them into a baseline — the starting line every change claim will be measured against. 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 read forms as they arrive or check instruments it has never seen.

Why most intake data can't prove change

Picture reporting season. The exit survey says confidence averages 7.4. The funder asks the obvious question: up from what? If intake never asked the same question on the same scale, there is no answer — the 7.4 floats alone, and a year of real work reads as an anecdote.

The failure is designed in at intake. Registration-style forms collect what enrollment needs — name, age, eligibility, program assignment — plus a couple of open text boxes nobody reads until someone hand-codes them weeks later. Nothing on the form was built as the "before" half of a pair, so no pair ever exists.

The distinction that fixes it: demographics describe the person; a baseline measures the outcome, before. Age and education you collect once, for segmentation. Confidence 1–10, current wage, employed yes/no — each of those exists because a promised outcome needs a starting number, and each will be re-asked later on the identical scale, joined by the same ID. Hold that test against every field on your form and the redesign is nearly mechanical.

Step 1 — Give every promised outcome a before-number [DIY]

For each outcome in your framework (your Chapter 2 theory of change, or any plain list of promises), decide the single number or answer that will show it changed. One measure per outcome — a confidence question asked identically at start, middle, and end reads as one line: 4.3 → 7.1 → 7.4. Three different confidence instruments produce more data and less proof.

Paste this into any AI:

Here are the outcomes my program promises: [paste your theory of change, logic model, or a plain list — and describe your program in one sentence].

For each outcome, suggest ONE "before" measure to capture at intake — a single question or number with its scale (for example: confidence, self-rated 1–10). Name the later moment that should re-ask it on the identical scale (mid, exit, or follow-up). If an outcome has no sensible before-number, say NONE — don't invent one. Finish with the two open-ended questions worth adding: one about barriers ("what might get in your way?") and one about goals.

Two design notes. Fix the scale permanently. The scale you choose at intake is a contract with every future wave — a 1–5 re-asked later as 0–100 is not a pair, it's two orphans. And keep the open text to those two questions. Barriers and goals are the text that explains every number you'll ever collect; a third open box is where response rates go to die.

Step 2 — Let the application be the baseline [DIY]

Here is the move most programs miss: you probably already collected the baseline — at admission. The Chapter 4 application asked for confidence, current situation, barriers, and goals, because the rubric needed them to score need and readiness. Those are the same fields the baseline needs. So don't build a second form that asks everything twice; stamp the application as your "before" wave, and pre costs zero extra effort.

Here is my application (or current intake) form: [paste the questions]. And here are the baseline measures from Step 1: [paste them].

Mark each baseline measure REUSE (the application already asks it, same scale), ADD (intake must ask it), or flag it MISMATCH if the later re-ask would use a different scale or wording. Then mark any form field that maps to no outcome and no decision as CUT. Confirm the form starts with one persistent ID field — email — so every later wave joins back to this record.

A separate intake wave earns its place only for what admission genuinely can't capture — cohort assignment, start-date logistics, or a measure you deliberately keep out of the admission decision. Everything else: reuse, don't re-ask. Duplicate questions cost completion rate and invite inconsistency — $14 an hour on the application, $15 at intake, and now nobody knows which is the baseline.

Step 3 — Structure the open text on arrival [SENSE]

From here on, this is what the product does — not a prompt you run. A chat window can classify the one barrier answer you paste into it. Sense holds the form, so every record is read the moment it is submitted: barriers classified, a readiness flag set, the before-numbers stored against one ID — for participant #1 and participant #80 alike, with nobody pasting anything.

What that looks like for one arriving record:

What lands with your team · one intake record, structured on arrival
What arrivedWhat the system did
"My car finally died and the bus only runs twice a day; daycare runs $180 a week I don't have"Transport classified primary, childcare and financial secondary — each pinned to the participant's exact words
Confidence self-rating — 3.6 on 1–10Stored as the before-number; re-asked at mid and exit on the same scale
"Support my kids without working two jobs"Goal themed as wage stability — re-read at exit for goal attainment
Whole recordReadiness flag READY-WITH-SUPPORTS — transport help and a childcare referral routed before day one
Read it: a barrier discovered in week six is a dropout; the same barrier discovered on arrival is a bus pass. Zero coding backlog formed.

Read the barrier row the way a case manager would have to: the answer is compositional — transport tangled with childcare tangled with money. Classified on arrival, each strand lands with its quote, and the support routes before day one. The same sentence sitting unread in a text box until week six is a dropout that looks like a mystery.

Step 4 — Audit the pairs before the cycle starts [SENSE]

The last step is a check no chat window can run, because it spans instruments a chat window never sees: every before-number must have a later wave that re-asks it, on the same scale, joined by the same ID. In Sense you ask for it in plain language:

  • "List every baseline measure and the wave that re-asks it" — the pairs your change claims will stand on.
  • "Flag any measure with no later wave" — dead fields that can never show change: add the wave or stop collecting.
  • "Flag any later measure with no baseline" — after-numbers with no before, the claims a reviewer strikes first.
  • "Confirm every record carries the persistent ID" — it's the missing ID, not the missing field, that silently breaks the story
The audit · every before-number checked against its later wave
Baseline measureLater waveSame scale?Verdict
Confidence, 1–10Mid and exit, same wordingYesPAIRED payoff: 4.3 → 7.1 → 7.4
Hourly wage, $/hrSix-month follow-upYesPAIRED payoff: $9.96 → $25.11
Public assistance, Y/NSix-month follow-upYesPAIRED poverty-exit context
Skill self-rating, 1–5Exit asks skills as 0–100NoFLAGGED scale drift — no comparable pair
Read it: the FLAGGED row costs one added exit question to fix today — or a year of unprovable "skills improved" claims if it surfaces at report time.

The flagged row is the audit earning its keep. Caught now, the fix is one question added to the exit survey. Caught at report time — which is when most programs discover every one of these holes — it's a year of unprovable claims. And a clean audit is what the whole series cashes in later: 4.3 → 7.1 → 7.4 on confidence, $9.96 → $25.11 on wages, completers employed at nearly double the rate of non-completers. None of that is analysis heroics; all of it is baseline design.

Common mistakes

Confusing registration with baseline. If your intake is demographics plus free text, you have a registration form. Add the before-numbers your outcomes need, or accept that change will be unprovable.

Changing the scale between waves. Same scale, same wording, every time. "Roughly comparable" is not comparable.

Asking everything twice. If the application already asked it, reuse it. Every duplicate question costs completion rate and creates a second, conflicting answer.

Letting the open text pile up. Two open questions are gold if they're read on arrival and dead weight if they wait for a coding sprint that never comes.

Skipping the ID. A record without a persistent ID is a baseline for nobody — it can never reconcile with a later wave. Make email the first required field, and validate it.

What you have now

An intake where every field earns its place: demographics that segment, one before-number per promised outcome with its later wave named, two open questions that arrive classified instead of piling up, and a persistent ID that joins every future wave automatically. Plus an audit that catches dead fields and scale drift now, while the fix is a one-line edit.

The one thing to do this week

Add two questions to your intake, on the exact scales you'll reuse later: a 1–10 self-rating on your core outcome, and one open barrier question. The 1–10 becomes your 4.3; the barrier text becomes your support routing. Everything else in this chapter is refinement on those two.

Who this is for

Program leads whose intake form was designed by the registration process instead of the theory of change. Evaluators who discovered at report time that exit measured on a different scale than intake. Anyone with a drawer of unread open text and a funder asking "compared to what?" If your program collects plenty and proves little, the fix starts here.

See a baseline captured on arrival in Sopact Sense — sopact.com/academy.

Next in the series: How to Spot At-Risk Participants Mid-Program — the baseline you just captured becomes the reference line, and the mid-program wave reads every record against it while intervention is still cheap.

Ready to try it for yourself?

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

Try it in Case Intelligence →