play icon for videos
← Academy
SOPACT ACADEMY · IMPACT MEASUREMENT AND REPORTING · LOGIC MODEL

How to Build a Logic Model: Steps, Example and AI Prompt

Turn your theory of change into a practical logic model. Separate activities, outputs and outcomes, check evidence gaps and choose the next improvement.

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> @keyframes pulseDot{0%,100%{opacity:1}50%{opacity:.35}} *{box-sizing:border-box} body{margin:0;font-family:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;background:#EEF2F9;padding:26px;display:flex;justify-content:center} .card{width:600px;max-width:100%;background:#FFFFFF;border:1px solid #E3E9F4;border-radius:20px;box-shadow:0 26px 64px -32px rgba(15,30,70,.34),0 2px 4px rgba(15,30,70,.05);overflow:hidden} .hdr{display:flex;align-items:center;gap:11px;padding:16px 20px;border-bottom:1px solid #EEF1F7;background:#F5F8FE} .hdr .ic{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border:2px solid #155DFC;border-radius:50%;color:#155DFC;font-size:15px;font-weight:800;flex-shrink:0} .hdr .t{min-width:0} .hdr .t .n{font-weight:800;font-size:14.5px;color:#0F172A;letter-spacing:-.2px} .hdr .t .s{font-size:12px;color:#64748B} .hdr .pill{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#155DFC;background:#E6EEFF;padding:5px 10px;border-radius:20px;white-space:nowrap} .hdr .pill .d{width:6px;height:6px;border-radius:50%;background:#155DFC;animation:pulseDot 2s infinite} .tabs{display:flex;gap:0;padding:12px 16px 0;background:#F5F8FE} .tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;font-family:inherit;font-size:11.5px;font-weight:700;color:#64748B;background:transparent;border:none;border-bottom:2px solid transparent;padding:8px 4px 10px} .tab.on{font-weight:800;color:#155DFC;border-bottom-color:#155DFC} .tab .num{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:50%;font-size:11px;font-weight:800;color:#64748B;background:#EEF1F7} .tab.on .num{color:#fff;background:#155DFC} .divider{height:1px;background:#EEF1F7} .body{padding:20px} .eyebrow{font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:#155DFC;margin-bottom:5px} .eyebrow.g{color:#15884F} .headline{font-family:'Inter',Georgia,serif;font-size:18.5px;font-weight:600;line-height:1.25;color:#0F172A;margin-bottom:12px} .lede{font-size:12.5px;line-height:1.55;color:#475569;margin:0 0 14px} .rows{display:flex;flex-direction:column;gap:8px;margin-bottom:14px} .row{display:flex;align-items:center;gap:11px;background:#F5F8FE;border:1px solid #EEF1F7;border-radius:11px;padding:11px 13px} .row .emoji{font-size:17px} .row .rt{flex:1;min-width:0} .row .rt .n{font-size:13px;font-weight:700;color:#0F172A} .row .rt .s{font-size:12px;color:#64748B} .pillsm{font-size:11px;font-weight:800;color:#155DFC;background:#E6EEFF;padding:4px 9px;border-radius:6px;flex-shrink:0} .pillsm.gray{font-weight:700;color:#64748B;background:#EEF1F7} .chainwrap{position:relative;padding-left:26px} .chainline{position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:#E3E9F4} .cnode{position:relative;margin-bottom:14px} .cdot{position:absolute;left:-26px;top:4px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #94A3B8} .clabel{font-size:9.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#64748B;margin-bottom:4px} .cbox{background:#F5F8FE;border:1px solid #EEF1F7;border-radius:11px;padding:10px 12px;font-size:12px;line-height:1.5;color:#334155} .cbox.graded{display:flex;align-items:flex-start;gap:9px;border-left-width:3px;border-left-style:solid} .cnote{margin:0 0 14px 4px;font-size:11px;line-height:1.5} .cnote .plus{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;background:#155DFC;color:#fff;border-radius:4px;font-size:10px;font-weight:800;flex-shrink:0;margin-right:6px} .csummary{display:flex;align-items:center;gap:12px;background:#0A1B3D;border-radius:13px;padding:11px 15px;margin-top:4px} .csummary .t{flex:1;font-size:11.5px;color:#CBD8F5} .csummary .t b{color:#F1F5FF} .mxwrap{border:1px solid #EEF1F7;border-radius:12px;overflow:hidden;margin-bottom:10px} .mxhead{display:grid;grid-template-columns:118px 1fr 1fr;background:#F5F8FE;border-bottom:1px solid #EEF1F7} .mxhead div{font-size:9px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#64748B;padding:7px 9px} .mxrow{display:grid;grid-template-columns:118px 1fr 1fr;border-bottom:1px solid #EEF1F7} .mxrow:last-child{border-bottom:none} .mxrow>div{padding:9px;font-size:11.5px;line-height:1.4;color:#334155;display:flex;align-items:center;flex-wrap:wrap;gap:5px} .mxrow .mxlabel{font-weight:700;color:#0F172A;background:#FAFBFE} .mxchip{font-size:9px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:3px 6px;border-radius:5px;white-space:nowrap} .promptwrap{padding:0 20px 18px} .promptlbl{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#94A3B8;margin-bottom:7px} .prompt{display:flex;align-items:flex-start;gap:9px;font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:11px;line-height:1.5;color:#1E293B;background:#F5F8FE;border:1px solid #EEF1F7;border-left:3px solid #155DFC;border-radius:9px;padding:11px 12px} .prompt .car{color:#155DFC;font-weight:800;flex-shrink:0} .flagrow{display:flex;align-items:flex-start;gap:10px;background:#F5F8FE;border:1px solid #EEF1F7;border-radius:11px;padding:10px 12px;border-left-width:3px;border-left-style:solid;margin-bottom:8px} .flagtag{font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:4px 8px;border-radius:5px;white-space:nowrap;flex-shrink:0} .flagtxt{font-size:12px;line-height:1.45;color:#334155} .lp{display:flex;align-items:center;gap:12px;background:#0A1B3D;border-radius:13px;padding:14px 16px;margin-top:6px} .lp .ic{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;background:#14295C;border:1px solid #26407A;border-radius:9px;color:#7FA8FF;font-size:16px;flex-shrink:0} .lp .rt{flex:1;min-width:0} .lp .rt .n{font-size:13px;font-weight:800;color:#F1F5FF} .lp .rt .s{font-size:11.5px;color:#9DB2D9} .lp .open{font-size:11px;font-weight:800;color:#0A1B3D;background:#7FA8FF;padding:6px 11px;border-radius:7px;white-space:nowrap} </style> </head> <body> <div class="card"> <div class="hdr"> <span class="ic">&#128203;</span> <div class="t"> <div class="n">Vista Workforce Collaborative</div> <div class="s">DEMO-01 · Sopact Sense · Framework Builder</div> </div> <span class="pill"><span class="d"></span>Building</span> </div> <div class="tabs" id="tabs"></div> <div class="divider"></div> <div class="body" id="body"></div> <div class="promptwrap"> <div class="promptlbl">The prompt behind this step</div> <div class="prompt"><span class="car">&gt;</span><span id="promptTxt"></span></div> </div> </div> <script> (function(){ var TABS = ["Setup", "Build", "Fix", "Report"]; var CONTENT = [{"eyebrow": "Step 1 · Describe the program", "headline": "The input is your description, nothing else", "lede": "Use only what the program states — anything inferred gets marked, never invented.", "prompt": "You are the Sopact Sense Assistant. Here is my program description: [PASTE PROGRAM DESCRIPTION]. Use only what it states; mark anything you infer as [INFERRED]. Wait for my task."}, {"eyebrow": "Step 2 · Fill & grade the columns", "headline": "Six stages, one orphan activity flagged", "lede": "Every box is filled and graded, and gaps are flagged — <strong style=\"color:#15884F\">green</strong>, <strong style=\"color:#C9820A\">amber</strong>, <strong style=\"color:#C63E2B\">red</strong>.", "prompt": "Build a Logic Model for Vista Workforce Collaborative. Flag gaps and orphan activities, and grade every element green/amber/red."}, {"eyebrow": "Step 3 · Turn the weak link green", "headline": "The same model, one link fixed", "lede": "Take the lowest-graded link and fix it with the one indicator the program could realistically measure.", "prompt": "Take the lowest-graded element above and fix it using only what the program could realistically measure. Show the before → after grade and the single indicator that moves it to green."}, {"eyebrow": "Step 4 · Missing & incomplete report", "headline": "See what a funder circles first", "lede": "Every amber or red item becomes one named ask — the report leads with the decision it informs.", "prompt": "Create a 'missing & incomplete' report from this analysis in Sopact branding. List every element graded amber or red, what is missing, and the one input that would fix each. Lead with the decision this report informs."}]; var BODIES = { setup: "<div class=\"row\"><span class=\"emoji\">&#128221;</span><div class=\"rt\"><div class=\"n\">Program description</div><div class=\"s\">Vista Workforce Collaborative · 12-week bootcamp</div></div><span class=\"pillsm\">Pasted</span></div><div class=\"row\"><span class=\"emoji\">&#128203;</span><div class=\"rt\"><div class=\"n\">Five columns</div><div class=\"s\">Inputs · Activities · Outputs · Outcomes · Impact</div></div><span class=\"pillsm gray\">Structure</span></div><div class=\"row\"><span class=\"emoji\">&#128274;</span><div class=\"rt\"><div class=\"n\">No hallucination rule</div><div class=\"s\">Only what the program states; infer = flagged</div></div><span class=\"pillsm gray\">Required</span></div>", build: "<div class=\"chainwrap\"><div class=\"chainline\"></div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#94A3B8\"></div><div class=\"clabel\" style=\"color:#64748B\">Inputs</div><div class=\"cbox\">Curriculum, instructors, mentors, employer partners, laptops, funding</div></div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#94A3B8\"></div><div class=\"clabel\" style=\"color:#64748B\">Activities</div><div class=\"cbox\">200 hrs instruction · weekly 1:1 mentoring · employer demo day</div></div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#94A3B8\"></div><div class=\"clabel\" style=\"color:#64748B\">Outputs</div><div class=\"cbox\">~60 complete the bootcamp; portfolios built</div></div><div class=\"cnote\" style=\"color:#C63E2B\"><strong>Gap:</strong> employer demo day feeds no output — orphan activity.</div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#C9820A\"></div><div class=\"clabel\" style=\"color:#C9820A\">Short-term outcome</div><div class=\"cbox graded\" style=\"background:#FBF0DA;border-color:#F0DBA8;border-left-color:#C9820A\"><span style=\"flex:1;color:#5C3E08\">Job-ready skills + increased confidence</span><span class=\"mxchip\" style=\"background:#C9820A;color:#fff\">AMBER</span></div></div><div class=\"cnote\" style=\"color:#C9820A\"><strong>Assumption:</strong> mentoring builds confidence — claimed, not measured.</div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#15884F\"></div><div class=\"clabel\" style=\"color:#15884F\">Medium-term outcome</div><div class=\"cbox graded\" style=\"background:#E4F3EA;border-color:#C6E7D1;border-left-color:#15884F\"><span style=\"flex:1;color:#0F3D24\">Employment within 6 months — 71%, verified</span><span class=\"mxchip\" style=\"background:#15884F;color:#fff\">GREEN</span></div></div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#C63E2B\"></div><div class=\"clabel\" style=\"color:#C63E2B\">Long-term / Impact</div><div class=\"cbox graded\" style=\"background:#FCE9E7;border-color:#F6C9C2;border-left-color:#C63E2B\"><span style=\"flex:1;color:#7A2A1E\">Sustained employment &amp; wage growth → economic mobility</span><span class=\"mxchip\" style=\"background:#C63E2B;color:#fff\">RED</span></div></div></div>", fix: "<div class=\"chainwrap\"><div class=\"chainline\"></div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#94A3B8\"></div><div class=\"clabel\" style=\"color:#64748B\">Inputs</div><div class=\"cbox\">Curriculum, instructors, mentors, employer partners, laptops, funding</div></div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#94A3B8\"></div><div class=\"clabel\" style=\"color:#64748B\">Activities</div><div class=\"cbox\">200 hrs instruction · weekly 1:1 mentoring · employer demo day</div></div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#94A3B8\"></div><div class=\"clabel\" style=\"color:#64748B\">Outputs</div><div class=\"cbox\">~60 complete the bootcamp; portfolios built</div></div><div class=\"cnote\" style=\"color:#C63E2B\"><strong>Gap:</strong> employer demo day feeds no output — orphan activity.</div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#15884F\"></div><div class=\"clabel\" style=\"color:#15884F\">Short-term outcome</div><div class=\"cbox graded\" style=\"background:#E4F3EA;border-color:#C6E7D1;border-left-color:#15884F\"><span style=\"flex:1;color:#0F3D24\">Job-ready skills + increased confidence</span><span class=\"mxchip\" style=\"background:#15884F;color:#fff\">GREEN</span></div></div><div class=\"cnote\" style=\"color:#15884F\"><span class=\"plus\">+</span><strong>Indicator added:</strong> Confidence scale (1–5) captured at intake and at exit, on the same contact ID.</div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#15884F\"></div><div class=\"clabel\" style=\"color:#15884F\">Medium-term outcome</div><div class=\"cbox graded\" style=\"background:#E4F3EA;border-color:#C6E7D1;border-left-color:#15884F\"><span style=\"flex:1;color:#0F3D24\">Employment within 6 months — 71%, verified</span><span class=\"mxchip\" style=\"background:#15884F;color:#fff\">GREEN</span></div></div><div class=\"cnode\"><div class=\"cdot\" style=\"border-color:#C63E2B\"></div><div class=\"clabel\" style=\"color:#C63E2B\">Long-term / Impact</div><div class=\"cbox graded\" style=\"background:#FCE9E7;border-color:#F6C9C2;border-left-color:#C63E2B\"><span style=\"flex:1;color:#7A2A1E\">Sustained employment &amp; wage growth → economic mobility</span><span class=\"mxchip\" style=\"background:#C63E2B;color:#fff\">RED</span></div></div></div>", reportFlags: "<div class=\"flagrow\" style=\"border-left-color:#C9820A\"><span class=\"flagtag\" style=\"color:#C9820A;background:#FBF0DA\">AMBER</span><div class=\"flagtxt\">Short-term outcome — mentoring → confidence is claimed, not measured. Needs an intake/exit confidence scale.</div></div><div class=\"flagrow\" style=\"border-left-color:#C63E2B\"><span class=\"flagtag\" style=\"color:#C63E2B;background:#FCE9E7\">RED</span><div class=\"flagtxt\">Long-term / Impact — sustained employment and wage growth aren’t tracked past first placement.</div></div>", lpTitle: "Missing & incomplete report · shareable link", lpSub: "Decision-first · Sopact branding · Vista Workforce Collaborative", summaryBefore: "Grade: 1 green &middot; 1 amber &middot; 1 red. Plus one orphan activity.", summaryAfter: "Grade: 2 green &middot; 0 amber &middot; 1 red. One indicator changed the picture." }; var phase = 1; var tabsEl = document.getElementById('tabs'); var bodyEl = document.getElementById('body'); var promptEl = document.getElementById('promptTxt'); function renderTabs(){ tabsEl.innerHTML = ''; TABS.forEach(function(label, i){ var b = document.createElement('button'); b.type = 'button'; b.className = 'tab' + (i === phase ? ' on' : ''); b.innerHTML = '<span class="num">' + (i+1) + '</span><span>' + label + '</span>'; b.addEventListener('click', function(){ phase = i; render(); }); tabsEl.appendChild(b); }); } function renderBody(){ var c = CONTENT[phase]; var eyebrowClass = (phase===2) ? 'eyebrow g' : 'eyebrow'; var out = '<div class="' + eyebrowClass + '">' + c.eyebrow + '</div><div class="headline">' + c.headline + '</div><p class="lede">' + c.lede + '</p>'; if (phase === 0) { out += '<div class="rows">' + BODIES.setup + '</div>'; } else if (phase === 1) { out += BODIES.build; out += '<div class="csummary"><div class="t"><b>' + BODIES.summaryBefore + '</b></div></div>'; } else if (phase === 2) { out += BODIES.fix; out += '<div class="csummary"><div class="t"><b>' + BODIES.summaryAfter + '</b></div></div>'; } else { out += BODIES.reportFlags; out += '<div class="lp"><span class="ic">&#128196;</span><div class="rt"><div class="n">' + BODIES.lpTitle + '</div><div class="s">' + BODIES.lpSub + '</div></div><span class="open">Open &rarr;</span></div>'; } bodyEl.innerHTML = out; promptEl.textContent = c.prompt; } function render(){ renderTabs(); renderBody(); } render(); })(); </script> </body> </html>
Sopact Academy · Course review

Practical Academy guide

How to Build a Logic Model: Steps, Example and AI Prompt

To build a logic model, define the program and decision, list the resources and activities, identify their direct outputs, then connect them to intended outcomes. Check the assumptions behind those connections and record how delivery and outcomes will be assessed. A model can be drafted in a document, spreadsheet or diagramming tool. AI can help organize the material, but the responsible team must verify the content and distinguish missing information from evidence of a program problem.

This chapter is for program managers, evaluators and partners turning an agreed theory of change into a practical program structure. Bring the pathway and evidence register from the related lesson. Leave with a logic-model table, a measurement worksheet and a prioritized review list. You do not need software to learn the method.

Build the model in six steps

  1. Name the scope and decision. Specify one program, population, period and intended use.
  2. Separate the components. List resources, activities, outputs and outcomes without confusing what is done with what changes.
  3. Connect the pathway. Explain which activities could contribute to each outcome and what assumptions must hold.
  4. Map evidence and measures. Record sources, definitions, populations, timing and missing information.
  5. Review gaps with the team. Distinguish a documentation gap, a measurement need and an unresolved design question.
  6. Choose an action and maintain the model. Assign owners, dates and version history, then revisit the model as evidence develops.

What belongs in a logic model?

A logic model makes a program’s proposed relationships visible. CDC’s program-description guidance uses a program roadmap to connect activities with intended outcomes. Formats vary: some show outputs separately, while others describe them in the accompanying measurement narrative. Use the format required by your audience without treating one column arrangement as universal.

ComponentQuestion it answersExample in the fictional training program
InputsWhat resources are available?Instructor time, facilities, funding and employer relationships.
ActivitiesWhat does the program do?Instruction, supervised practice, coaching and employer introductions.
OutputsWhat is directly delivered?Sessions delivered, practice assessments completed and introductions made.
Early outcomesWhat changes first?Participants demonstrate relevant skills or improved ability to navigate recruitment.
Later outcomesWhat changes over time?Suitable employment, continued employment and improved economic security.

Do not write “run six workshops” as an outcome. It describes delivery. Similarly, a count of people enrolled does not establish improved skills. Outcomes can also concern organizations, systems or environmental conditions; they are not limited to changes in individual people. The model should reflect the actual program.

Step 1: name the decision and the boundary

Write one sentence before filling boxes: “The program team will use this model to decide which delivery and follow-up changes to test in the next cohort.” A grant reviewer may have a different decision, such as assessing whether proposed activities and resources fit the intended outcomes. Ask the reader or inspect the agreement rather than letting AI invent their priorities.

A logic model is not automatically required for every grant. Check the specific application or reporting instructions. If the funder asks for a results framework or another format, map the relevant content carefully; those formats may include different fields and definitions.

Define where this model starts and ends. A workforce program’s delivery is not the entire local labor market. Include external conditions that matter, such as employer demand, recruitment practices, transport and participant circumstances. Avoid claiming control over conditions the program cannot determine.

Step 2: turn the course pathway into a working model

Fictional course exercise. Continue the training program from the related lesson. Its records contain 80 starters, 60 known employment statuses at 90 days after exit, and 36 people employed at that checkpoint. Twenty statuses are unknown. These observations do not establish skill improvement or sustained employment, so those outcomes remain proposed until appropriate evidence is available.

Resources and activityDirect output to defineIntended outcomeAssumption to investigate
Instructors and practice facilities → supervised trainingTraining sessions and practice opportunities deliveredRelevant skills demonstratedInstruction and assessment match the skills needed in available work.
Coaches and time → individual supportSupport contacts and agreed actionsParticipants can address relevant participation or recruitment barriersSupport is appropriate, accessible and delivered when needed.
Employer relationships → introductionsIntroductions or applications facilitatedParticipants find suitable employmentEmployers have suitable opportunities and recruitment is accessible.
Follow-up capacity → later contactCompleted follow-up recordsThe team can assess employment duration and job qualityPeople can be reached and consent/access arrangements support appropriate follow-up.

Notice the last row: collecting follow-up is a measurement activity. It enables the team to assess outcomes; it does not itself cause sustained employment. Keep evaluation activities visible without confusing them with the intervention’s effects.

The table can become a diagram, but draw only the connections the team can explain. An activity may contribute to several outcomes, and several activities may support one outcome. Avoid adding arrows just to make every box look connected.

Step 3: use AI to draft, not certify, the model

The prompt below produces four working drafts: a model, an evidence table, a review of unclear connections and an improvement plan. Each draft should show its sources and the questions your team needs to resolve.

Prompt
Build a draft logic model from the APPROVED MATERIAL below.
INPUTS: [program scope, intended decision, theory of change, source records,
participant input and relevant research]
1. Restate the scope and decision. Ask if either is missing; do not invent them.
2. Create: resources | activities | outputs | early outcomes | later outcomes.
   Keep observed results separate from intended outcomes. Identify assumptions.
3. For each entry, return source ID/date, supporting passage or value, relevant
   population/period, missing information, and proposed measurement question.
4. Flag unexplained connections. Say whether the available material is insufficient
   before suggesting that an activity lacks a purpose or is not measured.
5. Propose up to five review actions: issue | why it affects the decision | owner
   to consult | evidence or design discussion needed. Label proposals clearly.
Rules: use only material supplied or actually readable; report inaccessible URLs.
Do not invent counts, verification or participant experiences. A quote or number
is not proof of causal effectiveness. Do not call the output validated or grant-ready.
Return a plain table and an accessible text description of any suggested diagram.

Run one row manually first. Compare the output with the source, then inspect the full draft for omitted activities, duplicated outcomes and unsupported wording. If the source is a public webpage, label the review “public information only.” A blank page section may mean the organization has not published a record, not that the record does not exist.

AI-generated suggestions can be useful questions. They should not become facts merely because they fit the diagram. Save the draft, source version and reviewer’s changes so the next cycle starts from approved work.

Step 4: build the evidence and indicator worksheet

For each important claim, decide what evidence would support it. You do not need a survey question for every box. Use existing delivery records when they answer the question, and collect new information only when the decision justifies it.

Model entryEvidence or proposed measureDefinition or limit to resolve
Training deliverySession register, dates and participation recordsDistinguish sessions offered, sessions delivered and individual attendance.
Skill developmentComparable assessment before and after relevant instructionChoose appropriate anchors and report matched-record coverage.
Employment at day 90Dated follow-up status and agreed source36/60 known = 60%; coverage 60/80 = 75%; 20 unknown. This is not a causal estimate.
Support contactsDated notes describing the action and its statusAn agreed referral is not a completed service; a copied note is not a new event.
Employment durationAppropriate later evidenceDefine continued employment versus continuous employment before collecting.

In the employment row, 45% of all starters are confirmed employed: 36 divided by 80. Do not describe the remaining 55% as unemployed, because it includes unknown statuses. Reporting the denominator and coverage makes the result usable without hiding its limits.

Record an owner and collection moment next to each proposed measure. “Assess skills” is incomplete until someone knows which assessment, which population, when it is administered and how results will be reviewed. The later metric-definition lesson develops this worksheet further.

Step 5: diagnose gaps without guessing their cause

An unexplained connection is a question to investigate. It is not automatically proof of ineffective program design. Separate the three situations below before deciding whether to change the program or collect more data.

Gap typeWhat you actually knowAppropriate response
Documentation gapThe reviewed material does not explain an activity’s purpose or evidenceAsk the program owner for the relevant explanation and records.
Measurement gapThe team confirms an important question lacks usable evidenceDesign proportionate collection with a definition, source, owner and review date.
Design questionThe pathway remains implausible or incomplete after discussion and evidence reviewRevisit the activity, assumptions or intended outcome with the team and affected people.

For example, if the public program page does not state coaching hours, do not conclude that coaching is unrecorded or that it leads nowhere. Ask what records exist and why frequency matters to the proposed pathway. Session counts might help describe delivery; they would not, by themselves, establish coaching effectiveness.

Prioritize issues by their effect on the decision. A missing outcome definition may matter more than a missing count of an incidental activity. A serious concern raised by participants may require attention even when it does not fit neatly into the current boxes.

Step 6: choose a practical improvement and keep the version

Write a short action list that distinguishes an immediate correction from a learning task. Correct an unsupported report sentence now; allow appropriate time to obtain evidence or evaluate a program change. Adding a single question should not be presented as sufficient to make an entire causal pathway “green.”

IssueActionCompletion evidence
Employment percentage lacks coverageAdd known-status denominator and missing-status count to the reportA reviewer reproduces the percentage from the approved records.
Skill change is asserted without comparable evidenceReview an appropriate assessment plan before the next cohortApproved instrument, timing, owner and analysis plan.
Coaching link is not explained in supplied materialDiscuss purpose and existing records with program staff and participantsRevised pathway and documented unresolved questions.

Give the model a version, owner and review date. Record changes to activities, definitions or assumptions. Keep earlier versions alongside reports that used them. CDC’s 2024 evaluation framework describes revising models as context, resources, research or evaluation findings change. The purpose is learning, not preserving an attractive diagram after the program has changed.

Watch the related framework-to-reporting demonstration

Watch the 11-minute 58-second related reporting walkthrough. It shows how frameworks and evidence can connect in a reporting workflow; it is not a validation of this fictional logic model. Browse more videos in the video library.

When software becomes useful

A document or spreadsheet can support the first model. A connected system becomes useful when several programs or partners maintain definitions, recurring submissions, documents and follow-up over time. Look for version history, source links, permissions, clear exports and a way to distinguish missing evidence from poor performance.

Sopact can support collection and source-linked analysis around these continuing records. People remain responsible for the model’s reasoning and the decision it informs. For the broader concept and software context, see the logic model guide; for delivery across cohorts, explore training and program data workflows.

Review the connections before adding more measures

Use this exercise when an activity or outcome appears disconnected. Trace one outcome backward to the activities intended to support it, then trace each activity forward to a stated purpose. A missing arrow is a question for the team, not evidence that the activity has no value.

Fictional example: The model lists training, coaching and employer introductions, but the employment outcome connects only to training. Ask whether the introductions are part of the proposed pathway and what conditions they depend on. The correction might be an explained connection, a clearer outcome or a decision to retain the activity for a different purpose. Do not add an arrow merely to pass the check.

  1. Select one result important to the next decision.
  2. Identify its proposed activities, direct outputs and assumptions.
  3. Check whether the model explains those relationships and whether source material supports the description.
  4. Separate missing documentation from a confirmed measurement gap or a design question.
  5. Assign an owner and a next step. Record which version was reviewed.

Your output: one review row containing the connection, question, source, decision and next action. For example: “Employer introductions → suitable employment: clarify opportunity availability and recruitment access with the program team before adding a placement-effect claim.” A session count alone cannot resolve that causal question.

Frequently asked questions

How many components should a logic model have?

Many models show inputs, activities, outputs and outcomes, with outcomes divided by time horizon. Some include a separate impact column. Use the structure that fits the program and reporting requirements, and explain each component rather than forcing every program into identical boxes.

Is a logic model the same as a theory of change?

They overlap. A logic model organizes the program’s proposed relationships; a theory of change usually develops the explanation and assumptions behind them in more depth. A logic model can include assumptions too. Use the two as complementary working documents rather than treating the difference as an absolute rule.

Can AI create a logic model from a website?

It can draft one from information it can actually read. A public webpage is often incomplete. Identify inaccessible material and missing context, then ask the organization to verify the draft. Do not infer that an activity is unmeasured or ineffective simply because the website does not discuss it.

Does every activity need a separate survey measure?

No. Some delivery questions can be answered from routine records, and not every detail warrants measurement. Select measures based on the decision, program logic and burden. Keep important outcomes visible rather than collecting only easy activity counts.

Do funders always require a logic model?

No universal requirement applies. Read the funder’s current instructions and agreement. If a model is requested, use it to explain the pathway and assumptions clearly. An AI-generated diagram does not guarantee that an application satisfies the funder’s requirements.

What should a missing output mean?

First establish whether the output is absent from the documentation, absent from measurement, or genuinely unclear in the design. Those situations need different responses. Ask for existing records and the activity’s purpose before recommending removal or new collection.

Can a logic model prove that a program works?

No. It states a proposed explanation and helps plan evaluation. Evidence is needed to assess delivery, outcomes and causal claims. A model can be clear and internally consistent while important assumptions remain untested.

What should I do after building it?

Have staff and affected people review the model, resolve the highest-priority definition or evidence gap, and assign the next collection and review action. Keep the approved version with the evidence register so later reports use the same definitions.

Practice and continue

Turn your previous Theory of Change into a logic-model table. Ask another reviewer to classify five entries without seeing your column labels. Discuss disagreements, then trace one outcome to its proposed activities, assumption and evidence. Choose one improvement that matters to the next decision.

Next, use the Five Dimensions of Impact to examine whose outcomes are represented, how much is known and what remains uncertain. For report presentation, use How to Write an Impact Report and report examples.

By Sopact Academy · Revised September 12, 2026. The training-program example is fictional. CDC references support the method, not a claim that the example or Sopact has been certified.

Return to your course →

Put this guide into practice.

Bring your program pathway, delivery records and one outcome you need to measure.

Explore Impact Measurement →
Prepare data governance before using AI
Prepare your data governance
nonprofit-data-governance-before-ai
Feedback
Foundation
Prepare an evidence register and a tested governance baseline before applying AI to program data.
Make learning part of the work you already do
The Loop — the method in one read
the-loop
Loop
The method
0
One continuous method for reliable, traceable AI reporting across case, application, grant, and program workflows: collect clean, analyze on arrival, and improve in time.
Teams running cases, applications, grants, or programs that need AI-assisted reporting they can reproduce, trace to source evidence, and act on before the cycle ends.
What Is Case Intelligence?
What Is Case Intelligence?
what-is-case-intelligence
Case
Foundation
1
One current, traceable record for each person—connecting intake, services, notes, surveys, documents, outcomes, decisions, and follow-up.
Workforce and training · Youth and mentoring · Case management · Scholarships · Accelerators · Education · Nonprofit programs
What Is Grant Intelligence?
What Is Grant Intelligence?
what-is-grant-intelligence
Grant
Foundation
1
One connected evidence record from application and committee review through the awarded grant, grantee reporting, renewal, and board accountability.
Foundations and grantmakers · Public grant programs · Scholarships and fellowships · Accelerators
What Is Portfolio Intelligence?
What Is Portfolio Intelligence?
what-is-portfolio-intelligence
Portfolio
Strategy
1
A source-linked portfolio view that connects each investee or grantee's agreed plan, reporting cadence, evidence, risks, and results.
Impact funds and investors · Foundations with grant portfolios · Family offices · Blended-finance vehicles
What Is Connected Data Intelligence?
What Is Connected Data Intelligence?
connected-data-intelligence
Feedback
Foundation
1
Keep evidence from surveys, files, notes, documents, systems, sites, and reporting periods connected to one continuing record.
Multi-program nonprofits · Member and chapter networks · Research associations · Training and coaching teams · Organizations with scattered evidence
Build an impact report from evidence you can explain
What Is Impact Measurement and Reporting?
embedded-impact-measurement
Reporting
Align
1
Define intended change, align organization and funder context, govern measures, interpret evidence, and produce traceable reports for decisions.
Program and impact teams · MEL leads · Funders and donors · Foundations · Impact funds · Organizations building rigorous impact reports
Build a repeatable collect, review and improve cycle
Methodology — continuous, not annual
loop-methodology
Loop
The method
1
The continuous collect–analyze–improve cycle, adopted as an experiment: start with the step that already pays and add one data-collection step at a time.
Teams tired of rebuilding spreadsheets and forms who want a measurement system that compounds instead of resetting.
How to Build a Theory of Change with AI: Prompts and Examples
Build a Theory of Change You Can Test
how-to-build-a-theory-of-change
Reporting
Align
2
How Do You Onboard a Portfolio and Track Results?
Agree the Portfolio Reporting Plan
onboard-portfolio-lock-impact-agreement-track-results
Portfolio
Data Dictionary
2
Test whether an AI-assisted result is repeatable and correct
Reliability — the same answer twice
loop-reliability
Loop
The method
2
Determinism as a feature: the same question over the same data returns the same answer every run — the opposite of a generic AI chat that drifts.
Anyone who has watched a general AI tool give two different numbers for the same question and needs results they can stand behind.
Design application intake around a defensible decision
Design an Application Process
how-to-design-an-application-process
Grant
Foundation
2
How to Structure Stakeholder Data: Four Common Patterns
Choose your record structure
which-shape-is-your-data
Feedback
Foundation
2
Map the people, observations and relationships your workflow needs before collecting data.
How to Build a Logic Model: Steps, Example and AI Prompt
Build a Logic Model You Can Use
how-to-build-a-logic-model
Reporting
Align
3
How Do You Onboard a Grant or RFP Program?
Onboard a Grant or RFP Program
how-to-onboard-a-grant-rfp-program
Grant
Foundation
3
Turn your theory of change into a data-collection plan
Turn a Theory of Change into a Data-Collection Workflow
theory-of-change-to-data-collection-workflow
Case
Foundation
3
Build a portfolio data dictionary without forcing false comparisons
Map Portfolio Data to Reporting Standards
portfolio-data-dictionary-standards-mapping
Portfolio
Chapters
3
Keep a clear trail from a finding to its evidence
Traceability & Transparency
loop-traceability
Loop
The method
3
Every figure links back to the exact response, note, or document it came from — a full audit trail from headline result to raw evidence.
Teams whose numbers get scrutinized — by funders, boards, auditors, or standards — and who need to answer where did this come from on the spot.
How to Change Survey Questions Without Losing Comparability
Change questions with a clear history
change-questions-without-breaking-the-record
Feedback
Control
3
Create a question-change log and decide how old and new versions should appear in reports.
Programme & MEL leads · Teams whose questionnaire has ossified · Anyone evaluating a platform where configuration is a purchased service
Five Dimensions of Impact: How to Review Your Evidence
Use the Five Dimensions to Test the Evidence
five-dimensions-of-impact
Reporting
Align
4
How Do You Design a Grant Rubric and Eligibility Rules?
Design Your Rubric & Eligibility Rules
grant-rubric-eligibility-rules
Grant
Foundation
4
How to Measure Outcomes Across an Investment or Grant Portfolio
Frame Outcomes Over Outputs at Portfolio Level
frame-outcomes-portfolio-level
Portfolio
Chapters
4
Adapt the learning cycle to your workflow
Flexibility — one method, four workflows
loop-flexibility
Loop
The method
4
The same collect–analyze–improve cycle, shaped to four kinds of impact work — case, grant, portfolio, and feedback — each shown end to end.
Anyone deciding where the Loop fits their work, who wants to see the full path from messy input to a report they can defend.
How to Collect Feedback Offline and Keep Records Connected
Collect offline and reconcile the batch
collect-feedback-offline
Feedback
Connect
4
Build a field protocol and reconcile a test batch across devices, visits and delayed uploads.
Field & multi-site programs · Low-connectivity contexts · Nonprofits collecting in person
How Do You Design an Intake Form for a Baseline?
Design an Intake Form That Captures a Usable Baseline
intake-form-usable-baseline
Case
Nonprofit Track
5
Turn a proposed outcome into a reporting definition
Outcomes vs Outputs
frame-outcomes-over-outputs
Grant
Foundation
5
Impact Due Diligence: Review Evidence Before Investment
Pre-Investment Due Diligence & Screening
pre-investment-due-diligence-screening
Portfolio
Chapters
5
Plan and review your first workflow pilot
The Guarantee — first workflow in 2 months
loop-guarantee
Loop
The method
5
How to Build an Organization Evidence Model
Build the Organization Evidence Model
build-organization-evidence-model
Reporting
Align
5
How to Analyze Documents as Evidence: Sources, Context and Review
Read documents as traceable evidence
read-documents-as-evidence
Feedback
Connect
5
Create a document register and reviewed findings with source locations, context and explicit exceptions.
How to Clean Open-Ended Survey Responses Without Losing Meaning
Clean responses and define the denominator
clean-open-ended-survey-responses
Feedback
Clean
6
Create a cleaning log, response-status table and reproducible report statement.
How to Review Participant Support Needs Mid-Program
Spot At-Risk Participants Mid-Program
spot-at-risk-participants-mid-program
Case
Nonprofit Track
6
How to Write a Nonprofit Grant Application: Template and Example
Grant Application for Nonprofits
grant-application-for-nonprofit-organizations
Grant
Foundation
6
Design quarterly portfolio reporting that investees can complete
Collect Investee Reporting Without Repeated Rework
collect-investee-reporting-without-burden
Portfolio
Chapters
6
How to Build a Funder Context Profile: Research to Reporting
Build a Sourced Funder Context Profile
build-funder-context-profile
Reporting
Align
6
How Do You Measure Change at Exit?
Measure Change at Exit (Not Just Completion)
measure-change-at-exit
Case
Nonprofit Track
7
How Do You Collect Applications Clean at the Source?
Collect Applications Clean at the Source
collect-applications-clean-at-source
Grant
Collect
7
How to Follow Up on Missing Investee Data
How to Follow Up on Missing Investee Data
chase-missing-investee-data
Portfolio
Chapters
7
How to Analyze Multilingual Feedback and Evaluate Software
Analyze and review multilingual feedback
analyze-multilingual-feedback
Feedback
Clean
7
Build a language review sheet and test software on original responses, translations, codes and reporting bases.
Multi-country programs · Multilingual survey data · Global networks & chapters
How to Define Impact Metrics Your Team and Funder Can Use
Define Measures the Organization and Funder Can Both Use
define-impact-metrics-funders-want
Reporting
Align
7
Survey Attrition in Longitudinal Studies: Track Missing Waves
Track missing waves and matched outcomes
survey-attrition-longitudinal-studies
Feedback
Read
8
Build a wave-status register, compare response groups and report paired change with coverage and limitations.
How to Use Mentor Notes to Review Participant Support
Use mentor notes for support review
mentor-notes-early-warning
Case
Nonprofit Track
8
How Do You Reduce Applicant Burden?
Reduce Applicant Burden
reduce-applicant-burden-auto-clarification
Grant
Collect
8
Find inconsistencies in portfolio returns before reporting
Analyze Investee Reports Across Sources
read-investee-reports-multi-signal
Portfolio
Chapters
8
Impact Metric Definitions: A Practical Worksheet and Example
Give Every Number One Definition
one-definition-for-every-number
Reporting
Define
8
How to Connect Quantitative and Qualitative Survey Data
Connect scores and comments
connect-quantitative-qualitative-survey-data
Feedback
Read
9
Build a linked analysis view and joint display, with clear groups, reporting bases and evidence limits.
How to Calculate SROI as New Evidence Arrives
Calculate SROI — Live, Sourced, and Honest
calculate-sroi-live
Case
Nonprofit Track
9
How to Collect Grantee Reports with Less Burden
Collect Grantee Reports Without Burden
collect-grantee-reporting-without-burden
Grant
Collect
9
Keep company, investment and reporting history connected
Track Results Against the Impact Agreement
track-investees-impact-agreement-variance
Portfolio
Chapters
9
Turn Reporting Requirements into Evidence: A Practical Mapping Guide
Turn Requirements Into Collectable Evidence
turn-reporting-requirements-into-evidence
Reporting
Define
9
Connect baseline, follow-up and different rater perspectives
Analyze pre, mid and post surveys
analyze-pre-mid-post-survey-data
Feedback
Read
10
Build a matched pre/mid/post analysis, interpret score movement and retain clear rules for missing waves.
How to Report a Job-Training Program to Grant Funders
Turn a Cohort into a Funder Impact Report
job-training-grant-impact-report
Case
Nonprofit Track
10
How to Follow Up on Missing Grantee Data
Chase Missing Grantee Data
chase-missing-grantee-data
Grant
Collect
10
How to Build Useful Portfolio Impact Monitoring Alerts
Build Useful Portfolio Impact Alerts
portfolio-risk-monitoring-alerts
Portfolio
Chapters
10
How to Collect Clean Data Inside Your Workflow
Collect Clean Evidence Inside the Workflow
collect-clean-data-at-the-source
Reporting
Embed
10
How to Analyze Longitudinal Survey Data
Analyze longitudinal survey data
analyze-longitudinal-survey-data
Feedback
Read
11
Build a continuing analysis record with clear time scales, observed trajectories and limits.
How to Turn a Job Description into a Requirements Checklist
Clarify employer requirements
job-description-requirements-checklist
Case
Social Enterprise Track
11
Review applications with evidence, clear criteria and human judgment
Review Without Reviewer Bias
review-applications-without-reviewer-bias
Grant
Analyze
11
How to Ask AI Questions About Your Portfolio Data
Ask AI Questions About Portfolio Data
ask-your-portfolio-anything
Portfolio
Chapters
11
How to Keep Impact Reporting Numbers Consistent
Get Stable Results From Governed Data
same-numbers-every-time
Reporting
Read
11
How Do You Analyze a Batch of Grant Applications?
Analyze a Whole Round
how-to-analyze-a-batch-of-grant-applications
Grant
Analyze
12
How to Measure Outcome Duration and Drop-Off
Measure outcome duration and drop-off
measure-outcome-duration-drop-off
Feedback
Read
12
Build a dated outcome claim, distinguish missingness from outcome loss and test forecast assumptions.
How to Score Candidate–Role Matches with a Clear Rubric
Review candidate–role evidence
score-candidate-role-matches-without-bias
Case
Social Enterprise Track
12
Evidence Traceability: Link Every Report Claim to Its Source
Trace Every Result Back to Its Evidence
where-every-number-came-from
Reporting
Read
12
How Do You Roll Up a Grant Portfolio?
Aggregate Outcomes Across a Grant Portfolio
how-to-roll-up-a-grant-portfolio
Portfolio
Chapters
13
How to Report Job Placements to Impact Investors
Turn a Cohort into a Social-Enterprise Investor Report
job-placement-investor-impact-report
Case
Social Enterprise Track
13
How Do You Track Reviewer Conflicts of Interest?
Track Reviewer Conflicts of Interest
track-conflicts-of-interest-audit
Grant
Analyze
13
How to Write a Donor Report: Format, Evidence and Example
Design a Report for a Real Funding Decision
donor-report-funders-trust
Reporting
Decide
13
Build a report brief and claim-and-evidence table before drafting. Explain delivery, outcomes, spending, limitations and next actions.
Program managers, grant leads and reporting teams
AI Data Access Controls: What Your Assistant May See
Control what the assistant can access
what-the-assistant-may-see
Feedback
Prove
13
Define task-specific access, test synthetic records and verify report-sharing boundaries.
How to Write an Evidence-Based Impact Narrative
Write a cited impact narrative
impact-narrative-funder-report-cited
Feedback
Prove
14
Build and check a report paragraph using a claim-and-source table, appropriate quotations and clear limitations.
How Do You Read a Grantee Report?
Read a Grantee Report
read-grantee-report-multi-signal
Grant
Analyze
14
How to Use SROI Across a Portfolio Without Double Counting
Use SROI Across a Portfolio
monetize-impact-sroi-across-levels
Portfolio
Chapters
14
How to Write a Funder Report with AI—and Check It
Generate the Audience-Specific Report From Evidence
assistant-writes-the-funder-report
Reporting
Decide
14
Draft from approved sources, check the claims, and save an accountable report version. Bring the brief from the previous lesson.
Program managers, grant leads and reporting teams
How Do You Compute Grantee Variance?
Compute Grantee Variance
how-to-compute-grantee-variance
Grant
Analyze
15
When Is a Monetary Value on Social Impact Credible?
Add a Credible Dollar Value With SROI
credible-dollar-value-on-impact
Reporting
Optional method
15
Prepare a valuation brief. Decide what the evidence supports, what needs more work, and when an outcome account is enough.
Program, evaluation and investment teams considering social-value estimates
Keep a person’s history connected across programs and staff changes
Follow one person over time
one-person-followed-for-years
Feedback
Shapes
15
Build a participant record that preserves episodes, dates, versions and missingness across repeated collection.
How Do You Build an SROI Value Map?
Build an SROI Value Map
how-to-build-an-sroi-value-map
Reporting
Optional method
16
Build a first value map, keep missing evidence visible, and give each unresolved outcome a next action.
Evaluation, program and investment teams preparing an SROI analysis
How Do You Track Budget and Actual Spend?
Track Budget vs Actual Spend
how-to-track-budget-invoices-actual-spend
Grant
Analyze
16
Multi-Rater Feedback: Connect Perspectives and Protect Context
Connect several perspectives on one person
several-people-describing-one-person
Feedback
Shapes
16
Design subject-rater relationships, reporting rules and a tested multi-perspective feedback record.
How Do You Pick a Financial Proxy for SROI?
Pick a Defensible Financial Proxy
how-to-pick-a-financial-proxy-for-sroi
Reporting
Optional method
17
Compare candidate valuation sources and document why one fits your outcome, stakeholder and reporting period.
Evaluation and reporting teams selecting financial proxies
How Do You Analyze Grantee Reporting Longitudinally?
Analyze Grantee Reporting Over Time
analyze-grantee-reporting-longitudinal
Grant
Analyze
17
How Do You Compare Investees When Each One Defines Its Metrics Differently?
Compare & Benchmark Investees
compare-benchmark-investees
Portfolio
Chapters
17
Cross-Program Reporting: Combine Results Without Losing Meaning
Combine evidence across programs
many-programs-one-picture
Feedback
Shapes
17
Build a defensible cross-program result with comparable measures, correct denominators and documented exclusions.
How Do You Calculate the SROI Ratio?
Calculate the SROI Ratio With a Range
how-to-calculate-the-sroi-ratio
Reporting
Optional method
18
Build a reproducible SROI calculation, test its assumptions and explain the result in a reviewed report.
Evaluation and reporting teams reviewing an SROI calculation
How to Read Form 990 for a Grant Review
Read a 990 for Compliance
how-to-read-a-990-for-compliance
Grant
Analyze
18
How Do You Build Dashboards and Compliance Reports?
Build Dashboards and Reviewed Reports
dashboards-sroi-compliance-reports
Portfolio
Chapters
18
Plan evidence collection across your network
Run a member-network survey
member-network-survey
Feedback
Shapes
18
Design and test a member reporting cycle with continuing records, coverage checks and authorized results.
Ask Your Whole Grant Round Anything (Assistant + MCP)
Ask Your Whole Grant Round Anything
ask-your-grant-round-anything
Grant
Analyze
19
Produce portfolio reports that trace back to approved evidence
Produce the LP and Board Impact Report
portfolio-lp-board-impact-report
Portfolio
Chapters
19
How Do You Build a Grant Audit Trail?
Build a Grant Audit Trail
grant-audit-compliance-trail
Grant
Communicate
20
How Do You Connect Your Stack Without Lock-In?
Connect Systems and Test Data Portability
portfolio-connect-your-stack
Portfolio
Chapters
20
How Do You Produce Grant Compliance Reports?
Produce Compliance Reports
grant-compliance-regulatory-reports
Grant
Communicate
21
How Do You Roll Grantees Into a Board Report?
Roll Grantees Into a Board Report
roll-grantees-funder-board-report
Grant
Communicate
22
How Do You Build Grant Dashboards and Maps?
Grant Dashboards & Maps
grant-dashboards-geographic-mapping
Grant
Communicate
23