play icon for videos
← Academy
Strategy · Theory of Change

How to Build Advance TOC (Theory of Change)

Describe your program and Sopact Sense draws the causal chain inline — inputs through impact — and grades every link by how much evidence backs it. For when you know what you do but have never shown why it works.

<!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">&#128279;</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 · Build & grade the chain", "headline": "Six stages, three of them graded", "lede": "Every arrow gets a named assumption and a grade — <strong style=\"color:#15884F\">green</strong>, <strong style=\"color:#C9820A\">amber</strong>, <strong style=\"color:#C63E2B\">red</strong>.", "prompt": "Build a Theory of Change for Vista Workforce Collaborative as a causal chain: inputs → activities → outputs → short/medium/long-term outcomes → impact. Name the assumption under each arrow and grade every element green/amber/red."}, {"eyebrow": "Step 3 · Turn the weak link green", "headline": "The same chain, 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": "Lead with the decision it informs", "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\">&#128279;</span><div class=\"rt\"><div class=\"n\">Causal chain</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 adults complete the bootcamp each cohort; portfolios built</div></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 the confidence that drives persistence — claimed, never 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% placed, verified by employer letters</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 class=\"cnote\" style=\"color:#C63E2B\"><strong>Assumption:</strong> first placement persists — no follow-up data exists.</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 adults complete the bootcamp each cohort; portfolios built</div></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% placed, verified by employer letters</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 class=\"cnote\" style=\"color:#C63E2B\"><strong>Assumption:</strong> first placement persists — no follow-up data exists.</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, never 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 — no follow-up data exists past first placement. Needs a 12-month tracking wave.</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. One weak link to fix.", 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>

Academy / Measurement & reporting / Deep dive

How to Build Advance TOC (Theory of Change)

Describe your program and Sopact Sense draws the causal chain inline — inputs through impact — and grades every link by how much evidence backs it. For when you know what you do but have never shown why it works.

How to Build an Advanced Theory of Change

This guide is for teams ready to take a Theory of Change past a first diagram — to name the assumption under every causal link, attach one measurable indicator to each, rank the weak links by what collapses downstream, and wire the whole thing to live data so the picture updates as evidence arrives. Where the beginner guide draws one clean, graded diagram in an afternoon, this one turns that diagram into a working measurement system a funder can audit end to end.

Who this is for. Program evaluators, MEL and impact leads, fund and portfolio managers, and directors at established nonprofits, foundations, and accelerators — teams running more than one program, sitting on some outcome data already, or facing a funder who wants evidence rather than intentions. Building your first Theory of Change, or want the fast version? Start with How to build a Theory of Change.

The process. It builds on the same graded chain, then goes deeper. First, an assumption-and-indicator table — one row per arrow, each with the single indicator that would test it (who is measured, what changes, by when). Second, a weak-link diagnosis that ranks every amber and red by how much the chain depends on it, and separates a measurement gap from a design flaw. Third, an improvement plan — the highest-value fixes, each with a before/after rewrite and one data-collection step. Fourth, alignment to a shared framework (IRIS+ or the Five Dimensions) and a plan to track outcomes longitudinally on persistent participant IDs.

Time and outcome. Plan on a focused day or two, plus the cadence of real data collection. You end with an audit-ready Theory of Change: a graded diagram, an evidence trail behind every color, a prioritized measurement plan, and a way to keep it current as data arrives — not a poster on the wall, but the backbone of how you report impact.

Do you need a theory of change to measure social impact?

Yes — and the version a funder trusts is built from evidence, not aspiration. A theory of change maps your program as a causal chain — inputs → activities → outputs → outcomes → impact — and the real work lives in the assumptions under the arrows, not the boxes. Most theories of change fail there: the outcomes sound right, but nobody can say what evidence holds each link up.

The advanced prompt below turns that principle into a complete audit. It reads only what your program states publicly, grades every node and arrow Green, Amber, or Red, and tells you exactly which fix to make this quarter. We ran it on The Lantern Network's public mentoring-program page — the sections that follow show the prompt for each part, then what came back.

Pre-Section Instructional Text for Theory of Change

Two Ways to Build Your Theory of Change

Building a Theory of Change is foundational impact work—it clarifies how your program creates change. You have two paths:

Option 1: Use the Prompt Pack (Self-Service)

Download the prompt pack below and paste it into Claude, ChatGPT, or Sopact Sense. No setup needed. You get:

  • A visual left-to-right flow diagram (Inputs → Activities → Outputs → Short-Term Outcomes → Long-Term Outcomes → Impact)
  • An Assumption & Indicator table that maps every causal arrow to a testable assumption
  • A Weak-Link Diagnosis that flags what's missing or overstated
  • An Improvement Plan with specific data-collection fixes ranked by priority
  • A bonus rewrite of your program page to match your evidence

Option 2: Use the Impact Framework Builder Skill (Guided & Interactive)

If you have interview transcripts or prefer Claude to walk you through it interactively, use the impact-framework-builder skill. It will extract your theory from stakeholder conversations, check for logic gaps, and convert your framework into a survey.

Download the Prompt Pack

Download the Theory of Change Prompt Pack

Works in Sopact Sense, Claude, or ChatGPT. Includes the master prompt, all four parts as standalone prompts, and a bonus page-tightening prompt.

1 · Name the decision, then run one prompt

Every grade depends on who is reading. A board sees "87% placed" as a headline; a renewing funder asks what evidence sits behind it. So the prompt's first instruction is a decision frame: before building anything, state in one line who would use this theory of change and for what decision. For Lantern, that came back as a corporate sponsor deciding whether to renew its grant — asking not "did placements happen?" but "does this mentorship dollar produce durable change in people?" Every judgment below is made from that reader's chair.

Here is the full prompt. Paste it whole, swap in your program name and source, and Sense produces all four parts in one pass:

Build a Theory of Change for [PROGRAM NAME] using only what the program publicly states at [SOURCE — URL or pasted program description]. Before building, state in one line who would use this theory of change and for what decision — then make every judgment from that reader's perspective. PART 1 — Render the full causal chain as an interactive left-to-right flow diagram: Inputs → Activities → Outputs → Short-Term Outcomes → Medium-Term Outcomes → Long-Term Outcomes → Impact. One node per element; write every outcome as a change in people, never as an activity. On each arrow, label the causal assumption that must hold for the left node to produce the right one. Color every node and arrow: GREEN = specific AND evidenced; AMBER = stated but vague, or specific but unevidenced; RED = missing, or exists only as [INFERRED]. Hovering any node shows the exact source language that supports it; hovering any arrow shows the assumption and its proposed indicator. Tag anything not explicitly stated as [INFERRED]. Include a legend, program name, source URL, and date. PART 2 — One row per arrow: Assumption | Grade | Evidence (quoted, paraphrased, or "none") | one measurable indicator that would test it, phrased so the program could actually collect it (who is measured, what changes, by when). PART 3 — List every AMBER and RED element, ranked by how much the causal chain depends on it. For each: why it is weak in one sentence, what claim collapses downstream if the assumption fails, and whether the fix is a program-design problem or a measurement gap. PART 4 — The top 3–5 fixes, in priority order for the decision named above. For each: current language (or "missing") → proposed rewrite, plus the single data collection step that would move it toward green. CLOSING SUMMARY — 3–4 sentences: overall strength of the causal logic, the single weakest link a skeptical funder would attack first, and the one action to take this quarter. RULES — Source fidelity is absolute: never invent program content; if the source does not say it, mark it RED or [INFERRED]. Every green grade must be traceable to specific source language. Diagram and text must agree.

Example source: https://www.lanternnetwork.org/mentoring-program. The rules at the end do the heavy lifting — no invented content, every green traceable to a quote, and the diagram and tables must agree. That last rule is what makes the output defensible: the visual is the claim, the tables are the evidence trail.

2 · Part 1 — the visual theory of change

Render the full causal chain as a left-to-right flow diagram: Inputs → Activities → Outputs → Short-Term Outcomes → Medium-Term Outcomes → Long-Term Outcomes → Impact. One node per element; write every outcome as a change in people, never as an activity. On each arrow, label the causal assumption that must hold. Color every node and arrow green, amber, or red. Hovering any node shows the exact source language that supports it; hovering any arrow shows the assumption and its proposed indicator. Tag anything not explicitly stated as [INFERRED]. Include a legend, program name, source URL, and date.

Two disciplines make this diagram different from the boxes-and-arrows version on most websites. First, every outcome is written as a change in people — "mentees gain career clarity," never "we run workshops." Second, the arrows carry the argument: each one is labeled with the assumption that must hold for the left node to produce the right one, and the arrow gets its own grade. Hover any node and you see the exact source quote behind it; hover any arrow and you see the assumption plus the indicator that would test it.

The rubric is strict on purpose. Green means specific and evidenced — the program names it concretely and shows data ("87% secured internships, jobs, or promotions"). Amber means stated but vague, or specific but unevidenced — no number, no timeframe, or a claim with no data behind it. Red means missing entirely, or existing only as [INFERRED]. For Lantern, the pattern was immediate: the left half of the chain is concrete — 288 mentees served, 251 internships delivered, named sponsors — while everything past placement rests on three testimonials.

GRADE: green | 87% placed | 288 mentees, 251 internships — stated, specific; amber | confidence & clarity | claimed in three stories, never measured; red | mentoring dosage | no sessions, hours, or follow-up recorded

Part 1 · Output
The graded causal chain — Lantern Network
Built only from the program's public page · graded for a renewing funder
Green · specific + evidenced Amber · vague / unevidenced Red · missing / inferred
Hover any node for its source language · hover any link for the assumption + indicator

3 · Part 2 — the assumption & indicator table

For every arrow, produce one row: Assumption | Grade | Evidence (quoted, paraphrased, or "none") | one measurable indicator that would test it, phrased so the program could actually collect it — who is measured, what changes, by when.

This table is the evidence trail behind the diagram — one row per arrow, so nothing in the visual floats free of a citation. The indicator column is the practical payoff: each one is phrased so the program could actually collect it, naming who is measured, what changes, and by when. For Lantern's weakest arrow — Outputs → Short-Term Outcomes — the evidence column reads "none: no dosage captured, no before/after measure of any soft outcome," and the indicator that would test it is "change in self-reported confidence and clarity, baseline versus program exit, same mentees tracked by ID." That's not a critique; it's a work order.

Part 2 · Output
Every arrow, its evidence, and the indicator that tests it

4 · Part 3 — the weak-link diagnosis

List every amber and red element, ranked by how much the causal chain depends on it. For each: (a) why it is weak in one sentence, (b) what claim collapses downstream if the assumption fails, (c) whether the fix is a program-design problem or a measurement gap — these require different responses.

The ranking is by dependence, not chain order — the question is which weakness takes the most down with it. Lantern's number one wasn't its red impact claims; it was Outputs → Short-Term Outcomes: no dosage is recorded and no before/after measure exists, so there is no evidence that being matched actually changes a mentee. If that assumption fails, confidence, clarity, and every long-term claim above it collapse — the whole ladder floats on the 87% placement number alone.

The design-versus-measurement tag matters just as much. A measurement gap means the program plausibly works but has never measured it — the fix is data collection. A design problem means the causal logic itself is unstated or untested — the fix is program thinking. Lantern's diagnosis came back mostly measurement gaps, which is the encouraging read: nothing needs redesigning, but almost everything needs measuring.

Part 3 · Output
Weak links, ranked by how much the chain depends on them
Measurement gap → collect data Design problem → change the program

5 · Part 4 — the improvement plan

Give the top 3–5 fixes, in priority order for the decision named above. For each: show the current language (or "missing") → a proposed rewrite, plus the single data collection step that would move it toward green.

Each fix is a before-and-after pair, so the path from claim to evidence is concrete. Lantern's first fix: current language "TLN mentees consistently report increased self-confidence" — stated, never measured — rewritten as "X% of mentees show a measurable rise in job-search confidence and career clarity from intake to program exit." The single data step: a short baseline/endline scale with a persistent participant ID, so the same mentees are compared over time rather than two unrelated snapshots. Fixes two through five follow the same shape: capture mentoring dosage, follow placed mentees at 12 and 24 months, publish the denominator behind the 87%, and test which mechanism actually drives placement.

Part 4 · Output
Five fixes, each a claim rewritten and one data step
★
Closing summary · one action this quarter

The chain is strong on its left half and unproven on its right. Inputs, activities, and outputs are concrete and evidenced — 288 mentees, 251 internships, named sponsors — and the 87% placement rate is a real, specific result. But every claim past placement rests on three testimonials, not cohort data. The link a skeptical funder attacks first is Outputs → Short-Term Outcomes — no evidence that being matched changes a mentee — which leaves the whole outcome ladder floating on the 87% number alone. This quarter: attach a persistent participant ID and a baseline/endline confidence-and-clarity measure to the next cohort, so next year's renewal case rests on tracked change in people rather than three stories.

Part 4 · Output
Five fixes, each a claim rewritten and one data step
★
Closing summary · one action this quarter

The chain is strong on its left half and unproven on its right. Inputs, activities, and outputs are concrete and evidenced — 288 mentees, 251 internships, named sponsors — and the 87% placement rate is a real, specific result. But every claim past placement rests on three testimonials, not cohort data. The link a skeptical funder attacks first is Outputs → Short-Term Outcomes — no evidence that being matched changes a mentee — which leaves the whole outcome ladder floating on the 87% number alone. This quarter: attach a persistent participant ID and a baseline/endline confidence-and-clarity measure to the next cohort, so next year's renewal case rests on tracked change in people rather than three stories.

6 · The closing summary — one action this quarter

Close with 3–4 sentences: the overall strength of the causal logic, the single weakest link a skeptical funder would attack first, and the one action to take this quarter.

The summary is the executive read. Lantern's verdict: the chain is strong on its left half and unproven on its right — inputs, activities, and outputs are concrete and evidenced, but everything past placement rests on three testimonials, and the soft outcomes the program says drive its results are asserted, never measured. The one action this quarter: attach a persistent participant ID and a baseline/endline confidence-and-clarity measure to the next cohort, so next year's renewal case rests on tracked change in people rather than three stories.

Tricks, tips, and troubleshooting

Name the decision before you grade. The same chain earns different grades for different readers — a board celebrating placements and a funder testing durability are not asking the same question. If the grades feel too generous, the decision frame is usually too soft.

Point it at a URL and keep the receipts. Running the prompt against a public page is the honest test: it can only grade what the page says, which shows you your program exactly as a stranger reads it. Every green must trace to a quote — if you can't find the source language, the grade is wrong.

Separate design problems from measurement gaps. They demand different responses. Most ambers and reds in a real program are measurement gaps — the logic is fine, the data was never collected — and each one is fixable with a single indicator, not a program redesign.

Tighten your program page while you're here. Once the chain is graded, ask Sense to bring your public claims in line with your evidence:

Based on the grades above, suggest edits to my program page so its claims match the evidence. Flag every sentence that overstates what we can show, and rewrite it to be accurate and specific.

The same prompt works for a Logic Model, Logframe, or Results Framework — swap the framework name and keep the parts, rubric, and rules unchanged.

Frequently asked questions

What is a theory of change?

A theory of change is a causal map of how a program creates impact — inputs → activities → outputs → short, medium and long-term outcomes → impact — with the assumption behind each link made explicit. It explains not just what you do, but why you believe it works.

How do you build a theory of change with AI?

Describe your program in a few sentences (or paste its web page) and ask the AI to draw the causal chain, name the assumption under each arrow, flag the weak links, and grade every element green, amber or red by how much evidence supports it. In Sopact Sense this takes minutes and stays grounded only in what your program actually states — it marks anything inferred so it never invents outcomes.

What makes a theory of change weak?

Weak theories of change fail at the assumptions, not the outcomes. The weakest links are the ones stated as beliefs — "we believe mentoring builds confidence" — with no indicator, or long leaps to long-term impact with no follow-up data. Naming and measuring those assumptions is what makes the logic credible to a funder.

Interactive explanation
Visual walkthrough

Put this guide into practice.

Start with a decision your team needs to make. Decide what information belongs together, how you will check it, and who is responsible for acting.

See context in action →
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.
How to Turn Findings into Action and Check What Changes
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.
For growing data collection, connected analysis and recurring reporting
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
Connected Data Intelligence
Understand the approach
connected-data-intelligence
Feedback
Foundation
1
Connect recurring collection, relevant history, AI analysis, and governance in a workflow your team can maintain.
Growing organizations managing recurring data collection without a dedicated data team.
Measurement and Reporting: From Agreement to Evidence-Based Report
Measurement and reporting: from agreement to report
embedded-impact-measurement
Reporting
Start here
1
Turn the onboarding call into a reporting agreement, share one data dictionary, and write reports funders can compare and check.
For funders and the organizations they fund
Connect company context before collecting another return
Connect context
track-investees-impact-agreement-variance
Portfolio
Portfolio intelligence tools
1
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.
Agree the theory of change and core metrics on the onboarding call
Agree measures
onboard-portfolio-lock-impact-agreement-track-results
Portfolio
Portfolio intelligence tools
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 an application process around the decision, not the form
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.
Turn the onboarding call into a reporting agreement
Turn the onboarding call into a reporting agreement
onboarding-call-to-reporting-agreement
Reporting
Agree together
2
How to build a theory of change, then show it as a logic model, logframe or results framework
How to build a theory of change, then show it as a logic model, logframe or results framework
how-to-build-a-theory-of-change
Reporting
Agree together
3
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
Run quarterly collection around each company's dictionary
Collect quarterly
collect-investee-reporting-without-burden
Portfolio
Portfolio intelligence tools
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.
Build Context: What Your AI Needs to Know
Build context
build-organization-evidence-model
Feedback
Foundation
3
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
Review impact and financial evidence before it reaches the dashboard
Review and approve
read-investee-reports-multi-signal
Portfolio
Portfolio intelligence tools
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
Plan and review your first workflow pilot
The Guarantee — first workflow in 2 months
loop-guarantee
Loop
The method
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.
Check each partner report against the agreement
Check each partner report against the agreement
check-partner-reports-against-agreement
Reporting
Funder road
5
Combine compatible metrics and explain every portfolio total
Build rollups
portfolio-impact-rollups
Portfolio
Portfolio intelligence tools
5
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
Personalize quarterly donor and annual LP reports
Report with evidence
portfolio-lp-board-impact-report
Portfolio
Portfolio intelligence tools
6
How to Build a Funder Context Profile: Research to Reporting
Build a Sourced Funder Context Profile
build-funder-context-profile
Reporting
Align
6
Roll up and benchmark portfolio results
Roll up and benchmark portfolio results
roll-up-and-benchmark-portfolio-results
Reporting
Funder road
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
Turn portfolio findings into action and test the next cycle
Act and improve
portfolio-risk-monitoring-alerts
Portfolio
Portfolio intelligence tools
7
How to Analyze Multilingual Feedback Without Losing Meaning
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
Write the portfolio report for your board or donors
Write the portfolio report for your board or donors
write-the-portfolio-report
Reporting
Funder road
7
Survey Attrition: How to Track Missing Waves in Longitudinal Studies
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
Impact Metric Definitions: A Practical Worksheet and Example
Give Every Number One Definition
one-definition-for-every-number
Reporting
Define
8
Map every funder's ask to one evidence base
Map every funder's ask to one evidence base
turn-reporting-requirements-into-evidence
Reporting
Funded partner road
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
Capture each funder's taste, and your own
Capture each funder's taste, and your own
capture-funder-taste
Reporting
Funded partner road
9
How to Analyze Pre, Mid and Post Survey Data
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 Collect Clean Data Inside Your Workflow
Collect Clean Evidence Inside the Workflow
collect-clean-data-at-the-source
Reporting
Embed
10
Write each funder's report with AI, then check it
Write each funder's report with AI, then check it
assistant-writes-the-funder-report
Reporting
Funded partner road
10
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 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 without reviewer bias: one rubric, read on arrival, people decide
Review Without Reviewer Bias
review-applications-without-reviewer-bias
Grant
Analyze
11
How to Keep Impact Reporting Numbers Consistent
Get Stable Results From Governed Data
same-numbers-every-time
Reporting
Read
11
Compare your results with outside data: live queries and public datasets
Compare your results with outside data: live queries and public datasets
compare-with-outside-data
Reporting
Toolkit
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
Make every number in your report match its source
Make every number in your report match its source
where-every-number-came-from
Reporting
Toolkit
12
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
How to put a credible dollar value on your results
How to put a credible dollar value on your results
credible-dollar-value-on-impact
Reporting
Toolkit
13
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
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 calculate the SROI ratio, step by step: value map, financial proxies and adjustments
How to calculate the SROI ratio, step by step: value map, financial proxies and adjustments
how-to-calculate-the-sroi-ratio
Reporting
Toolkit
14
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 Write an Evidence-Based Impact Narrative for a Funder Report
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 Do You Compute Grantee Variance?
Compute Grantee Variance
how-to-compute-grantee-variance
Grant
Analyze
15
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, invoices and actual spend for a grant?
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
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 to read Form 990 for a grant review
Read a 990 for Compliance
how-to-read-a-990-for-compliance
Grant
Analyze
18
Pick One Question. Keep Every System You Have.
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
How do you build a grant audit trail?
Build a Grant Audit Trail
grant-audit-compliance-trail
Grant
Communicate
20
How do you produce grant compliance and regulatory 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