Academy / Measurement & reporting
Course progress and additional readings
Measurement & reporting
You will learn: how to map each funder's reporting requirements to metrics you already hold, report their number when a definition differs, and keep one ID per person so every wave connects.
Who this is for: the funded partner, a grantee or investee: the program lead, M&E lead or development team who reports to more than one funder. You have signed agreements, a stack of reporting templates and a data dictionary, or the start of one. This chapter joins them.
How do you report to several funders without collecting everything twice?
In short: collect once, into one set of records with one definition per metric, then report many times. Each funder gets its own format; none of them gets its own data collection.
Teams that report to four funders often end up running four small data systems, one per template. The same trainee is counted four ways, and nobody can say which count is right.
This chapter follows Partner C from the funder road, now from its own side. It is a fictional workforce training program that reports to several funders. Step 4, mapping every ask to your evidence, decides whether the rest of its road is calm or frantic.
Step 3 is not taught here. Deciding what to collect, and building it into the forms and records you already run, belongs to the Foundations course. This chapter assumes those records exist and asks a narrower question: which of them answers each funder's ask?
What goes in a funder requirements map?
In short: one row per funder request: the funder, what they ask in their own words, the metric in your dictionary that answers it, and a note on any difference in definition.
Keep the funder's wording exactly as written, with the page or clause it came from. Your metric column points to a row in your data dictionary, not to a new field. If no row fits, that is a gap to discuss, not a form to add in a hurry.

| Funder | What they ask | Your metric | Note |
|---|---|---|---|
| Funder A · quarterly template | "Participants served this quarter" | Total clients enrolled: unique trainees, not sessions | Their template counts visits. Report visits as asked, add unique people, and say so. |
| Funder B · annual narrative | "How many found work within six months" | Placed in a job: within 90 days of exit | Different window. Give the six-month count for Funder B, labelled; keep 90 days as yours. |
| Funder C · IRIS+ metrics | PI4060 "Client Individuals: Total" | Total clients enrolled | Same meaning. Add the code beside the number. |
| Board · two-page update | Placement, retention and wages | Placed within 90 days · Retained at 12 months · Starting wage by track | Your own definitions. The board sees the numbers funders see. |
Requirements map for Partner C · fictional example. Funder C's code is from the IRIS+ catalog.
Build the map the week an agreement is signed, not the week a report is due. The onboarding chapter shows how to get the definitions into the agreement in the first place.
What if a funder defines a metric differently from you?
In short: report their number, labelled with their definition, and add one sentence on how it differs from yours. Do not change your data or your dictionary to match.
Funder A's template asks for "participants served" and counts every visit. Partner C's dictionary counts unique trainees. Attendance gives visits, the enrolment record gives people. Neither is wrong; they answer different questions.
The team changes its enrolment count to visits for Funder A, then forgets to change it back. The board and Funder C now see a number that is several times larger than the number of people.
Funder A's report shows visits in their field, then one line: "This counts visits, as your template asks. The number of unique people in the same quarter is shown below." The dictionary never changes.
The same rule covers Funder B's six-month placement window. Give the six-month count in their narrative, say that your agreed measure elsewhere is 90 days, and keep the two apart. This is where mistakes cross over. On the funder road, the regional workforce fund found that Partner C reported placements "within 6 months" where the agreement said 90 days, and sent the question back. A map row with a note would have caught it before the report left.
Say the difference in the report, every time.
A funder who later compares your numbers across sources will find the difference anyway. Named up front, it reads as care. Found later, it reads as a mistake.
Why does one ID per person matter for every wave?
In short: change is measured by comparing the same person over time. If each survey wave creates a new record, you cannot connect intake to follow-up, and no funder's outcome question can be answered.
Girls Inc. of Metropolitan Dallas runs a coding program with surveys before, during and after the program, then follow-ups at 6 months and 1 year. Its reporting cycle follows a July 1 fiscal year. Five waves for one participant only tell a story of change if all five land on the same participant record.
Partner C faces the same test. "Retained at 12 months" needs the exit record and the 12-month follow-up to belong to one person. When a funder's year and your program year differ, the ID lets you place each follow-up in the right reporting period. The measuring change chapter in Foundations covers the survey design side.
01 · FIRST FORM
The application or intake creates the person's ID.
02 · EVERY WAVE
Mid, exit and follow-up forms attach to that ID.
03 · EVERY FUNDER
Each report counts from the same records, grouped their way.
In Sopact Sense today, a persistent unique ID is issued at the first form, and each later workflow is added to the same record. With any other tool, the practice is the same: one ID, created once, carried into every form by a link or a lookup, never retyped.
How can AI map a new funder's template to your dictionary?
In short: give it the template and your dictionary, and ask for a draft map with a gap list. Then a person confirms each match against the funder's own guidance.
AI does the first pass well: reading a long template and matching labels to dictionary rows. It cannot know what the funder meant. A match on the word "participants" is a guess until someone checks it.
Prompt · paste into Claude, ChatGPT or your AI tool
You are helping a funded program map a new funder's reporting template to its existing data dictionary. Inputs: 1. The funder's reporting template and guidance: [PASTE OR ATTACH] 2. Our data dictionary (metric, definition, dimension, standard code, collection point, disaggregation, source): [PASTE OR ATTACH] 3. Our signed agreement with this funder, if available: [PASTE OR ATTACH] Tasks: - List every item the funder asks us to report. Quote their exact wording and give the page or section. - For each item, name the dictionary metric that answers it, or write "no match". - Mark each match as SAME, DIFFERENT or NO MATCH. For DIFFERENT, say exactly how the definitions differ (population, period, time window, unit such as visits versus people, disaggregation). - For each DIFFERENT item, draft one sentence we could put in the report to explain the difference. - List the gaps: items we cannot answer from current records, and what we would need to collect or ask. Rules: do not invent definitions the documents do not state. If the funder's meaning is unclear, write it as a question for their program officer. Return a table with columns: Funder asks | Our metric | Match | Note.
ASK ANY TOOL, INCLUDING OURS
Once the map exists, ask your data a direct question: "For Funder A, how many visits and how many unique trainees did we have last quarter?" In Sopact Sense, the AI Assistant answers in plain language and each line links to a record you can open; Claude or ChatGPT can query the same data through MCP.
An honest limit: the map shows where the gaps are, it does not fill them. If Funder B wants 12-month retention before a full year has passed since exit, the right line in the report is "not yet available" with the date it will be. Templates also change at renewal, so reread each funder's guidance every cycle.
Try it on your own reporting
- List every funder you report to, plus your board. Write down each one's format and rhythm.
- For one funder, copy each thing they ask for, word for word, with the page or clause.
- Match each ask to a row in your data dictionary. Mark it same, different or no match.
- For every "different", write the one sentence that will go in the report.
- For every "no match", decide: collect it, ask the funder to accept a close measure, or say it is not available.
Check your reasoning
Take Partner C's placement row for the regional workforce fund. The fund asks for placement within 90 days of exit; Partner C's dictionary holds the same metric, so the match is "same". Its records hold exit dates and placement dates on one ID per person, so the 90-day count can be computed. The 6-month number it sent belongs on Funder B's row, labelled for Funder B. The fix is not new data. It is sending the 90-day count and noting that the earlier figure used a six-month window.
Questions teams ask
Should we change our definitions to match our largest funder?
Usually not. Your dictionary should describe your program the way your team runs it, so every report and every year can be compared. If your largest funder's definition is better, adopt it deliberately, for everyone, and note the date you changed it. What you should avoid is drifting toward whichever funder reported last. Report each funder's number in their definition, and keep yours steady underneath.
Two funders ask for different age bands. What do we collect?
Collect the finest detail you can reasonably hold, such as exact age at intake, and group it differently for each funder at report time. The same applies to income and location. Collecting at the finest level once lets you answer several funders without a second survey. Record the grouping each funder uses on their row of the map.
Do we need IRIS+ codes for every metric?
No. Add a standard code where a funder asks for it or where you want to compare with peers who use the same one. In Partner C's case only Funder C asks for IRIS+, so the code sits on the dictionary row for total clients enrolled and appears in Funder C's report. The code does not change the definition; check that the IRIS+ definition matches yours before you attach it.
What if a funder asks for something we do not measure?
Say so early, ideally when the agreement is drafted. Offer the closest measure you do hold and explain how it differs, or agree on when you will start collecting it. What loses trust is filling the field with an estimate that looks like a count. "Not collected in this period; we start in the next quarter" is a complete answer.
