What this dashboard measures
This dashboard answers a single question, four different ways: of the activity that happened in a given window, what fraction converted into funded investments? Three single-axis sections covering the funnel stages — Setter Funnel (booked discovery → funded), Closer Discovery (completed discovery → funded), Closer Decision (completed decision → funded) — plus a fourth view, the Pairing Matrix, which shows the same completed-discovery conversion broken out by setter × closer combination.
Each section measures conversion front-anchored — the date range filters the source records (when the booking/completion happened), and the conversion is "did this contact later fund?" The funding event can be outside the date range; what matters is that it happened after the source record.
Setters shown: Kayla Daughtrey, Cierra Milao, Alex White, Aidan Conner. Closers shown: Kelvin Evans, Bronson Picket, Jonny Cattani. Daniel Ackerman and Alex Zahn are AMs and live on a different dashboard.
The four sections
Setter Funnel — Booked Discovery → Funded
Of discoveries the setter caused to be booked in the date range, what fraction resulted in the contact funding their first investment? Setter attribution follows the cascade — deal.setter_owner first, contact.setter_owner as fallback. Closers usually own the meeting record; the setter gets credit through cascade.
Anchored on booking creation date. The date range filter and maturity / cycle-time math both measure from when the booking was made (not when the discovery is scheduled). Cycle time = days from booking to fund. A booking made on day 1 that funds on day 10 has a 10-day cycle, regardless of when the actual discovery call happened.
This is the broadest setter-side conversion measure: it captures all the post-booking risk (the discovery might no-show, get rescheduled, or just not close). A setter whose bookings convert poorly may be booking lower-quality leads, even if their volume looks good.
Closer Funnel — Completed Discovery → Funded
Of discoveries the closer ran (i.e., COMPLETED, not no-shows or reschedules) in the date range, what fraction resulted in funding? Closer attribution is direct — meeting.hubspot_owner_id. This filters out what didn't happen and measures what the closer did with the discoveries that actually took place.
Anchored on scheduled meeting date. The date range filter is "discoveries that completed in this window," which uses the scheduled meeting time — that's when the meeting actually happened. Cycle time = days from completion to fund.
Closer Funnel — Completed Decision → Funded
Of decision calls the closer ran in the date range, what fraction funded? This is the most concentrated read on closer skill: the prospect made it through discovery, agreed to a decision call, sat through it, and either funded or didn't. Decision-to-fund is the closing-conversation conversion rate.
Like Closer Discovery, anchored on scheduled meeting date — "decisions that happened in this window."
Pairing Matrix — Setter × Closer
Setter × closer cross-tab grid: 5 setter rows × 5 closer columns, with totals in the right column and bottom row. Each cell shows one metric for the (setter, closer) combination, selected from the Metric dropdown in the section header.
Contact-cohort, not meeting-cohort. Each contact appears in exactly one cell, attributed to their anchor pair: the (setter, closer) of their most recent past discovery before funding (or before now for unfunded), with past decision as fallback. Decisions are nearly always preceded by discoveries — the discovery is where setter handoff and closer engagement actually happen, so the discovery's owners get the pair credit. The decision call is mostly closer talent and doesn't move attribution unless no discovery exists. A meeting counts as "past" if its scheduled time has passed and it isn't explicitly tagged NO_SHOW / RESCHEDULED / CANCELED / DISQUALIFIED — closers often skip dispositioning, so we treat unflagged past meetings as having happened.
Use the matrix to spot pairing-specific patterns invisible in the single-axis funnels — e.g. a setter whose overall conversion looks weak might actually convert well with one closer and poorly with another, suggesting the issue is fit, not the setter.
Maturity threshold and "in flight"
Live cycle-time data: median 16 days from booking to funds received, p75 30 days, max around 230 days (138 cycles measured). The maturity threshold here is 90 days — comfortably past p75, but not so long that recent quarters become unmeasurable.
Records within the last 90 days that haven't yet funded are in flight — they show in the Booked count subtext ("X in flight (within 90d)") but are excluded from the conversion-rate denominator. We don't know yet whether they'll fund, so calling them "didn't convert" would be unfair. The rate uses the matured cohort only: records older than 90 days, plus any in-flight records that already funded fast.
Cycle-time metrics
Each section reports median days to fund and p75 days to fund — measured from the source record date (booking or completion) to the funds-received timestamp. These help diagnose where the funnel slows down. A high median in the Setter Funnel section combined with a normal median in the Closer Discovery section means delays are happening between booking and discovery completion (no-shows, reschedules, lag).
Cycle-time metrics are derived from the funded subset only — they describe the contacts who did fund. Records still in flight or matured-but-not-funded don't contribute to median/p75.
How attribution works
- Setter Funnel: discoveries booked, attribution via the cascade (
deal.setter_owner with contact.setter_owner fallback). Closers usually own the meeting; the setter gets cascade credit.
- Closer Discovery: discoveries completed, attribution direct via
meeting.hubspot_owner_id. 99% of discoveries are owned by the three current closers — no cascade needed.
- Closer Decision: decisions completed, attribution direct via
meeting.hubspot_owner_id. 99% direct ownership, same as discoveries.
The Unattributed column captures records owned by someone outside the section's roster — for setter sections, that's mostly historical Jamie Wright records or unset cascade; for closer sections, that's Daniel Ackerman / Alex Zahn (AMs) and historical owners.
Reading the Pairing Matrix
The matrix layout: 4 setter rows + Unattributed Setter row + Total — All Setters row, by 3 closer columns + Unattributed Closer column + Total — All Closers column. The inner 4×3 = 12 cells are the active-team pairings. The Unattributed row/column captures any contact whose anchor meeting was owned by someone outside the current roster (historical Jamie Wright records, AM-owned discoveries, unset cascade). The Total row/column genuinely sum: each setter's row total = the sum of their 4 cells (3 named closers + Unattributed Closer), and the grand total cell is every attributed contact in the date range.
Anchor pair resolution. For each contact in MEETINGS, walk their meeting history:
- If they have a funding event, find their most recent past discovery before the funding date. That discovery's owners (closer = meeting owner, setter = cascade) become the contact's anchor pair.
- If they have no funding event but have past discoveries, use the most recent past discovery overall.
- If no past discovery exists, fall back to the most recent past decision under the same logic.
- If neither exists, the contact is excluded from the matrix.
"Past" = scheduled time has passed AND outcome is not explicitly NO_SHOW, RESCHEDULED, CANCELED, or DISQUALIFIED. A meeting tagged COMPLETED qualifies, and a meeting with no outcome tag at all also qualifies. This deliberately differs from the Closer Discovery and Closer Decision sections, which require outcome === 'COMPLETED' and therefore drop un-dispositioned meetings. Those single-axis sections are precise about completion semantics; the matrix prioritizes attribution coverage over completion precision, since dropping un-dispositioned meetings would collapse the matrix to a small fraction of true contact volume (closers don't always disposition).
The contact then lands in exactly one cell: the cell whose row matches the anchor's setter and whose column matches the anchor's closer. Their date-range membership is determined by the anchor meeting's date, not the funding date.
The Metric dropdown in the section header switches what each cell displays. Five options:
- Conversion Rate (default) — funded ÷ matured contacts. The fraction of attributed contacts for this pairing that resulted in a first investment, computed against the matured cohort (anchor meeting older than 90 days, plus any in-flight contacts that already funded fast).
- New Money — sum of first-investment amounts for this pairing's funded contacts.
- Median Days to Fund — median cycle time from anchor meeting to funds received, for the funded subset.
- Contacts w/ Discoveries Run — count of attributed contacts for this pairing in the date range (matured + in-flight + funded combined).
- Contacts w/ Discoveries Funded — count of attributed contacts in this pairing that funded.
Heatmap shading. The legend strip above the table shows the encoding: cell background is tinted green at varying opacity, with the darkest cell representing the strongest performance for the selected metric and the lightest cell (no tint) representing the weakest. The shading is relative to the visible matrix, not absolute — a 25% conversion cell could be the darkest green in one quarter and the lightest in another, depending on how its peers performed. Use the heatmap to spot who's standing out within this view, not to grade against any absolute benchmark.
For "Median Days to Fund" the scale flips: faster = darker = better. So darker green always means stronger performance regardless of metric direction.
The Unattributed row and column are excluded from the heatmap scale — they get a flat gray tint instead. This prevents a strong (or weak) Unattributed cell from compressing the visual spread of the active-team pairings, which is what you actually want to compare. The Totals row/column are tinted in the dashboard's green to mark them visually distinct from inner cells.
Empty cells show "—" with a "no data" or "no matured" subtitle. They occur when no contacts are attributed to that pairing in the date range, when the metric requires a funded subset that's empty, or when conversion rate has no matured cohort to compute against.
Click any cell — the drill-down panel opens with the contacts attributed to that (setter, closer) pairing. Each row shows the contact name, the anchor meeting date and owner, and a funding-state tag. If the contact also had completed discoveries with other closers, that's surfaced in the row meta — which explains why the contact landed in this cell rather than another.
"New money" — first-investment attribution
The funding event used here is each contact's first funded investment — the same new-money model the setter and closer dashboards use. Once a contact is acquired, follow-on and repeat investments are owned by Account Managers and live on the AM dashboard. So a contact's second fund won't trigger a "conversion" on this dashboard; only their first does.
This means New Money Raised totals here are a subset of the main Investment Dashboard total. The reconciliation gap between the two is the AM-owned repeat-funding volume.
Date ranges and comparison
Each section has its own independent date range. All three default to Last Quarter — long enough that most records are matured and the conversion rate is meaningful. Shortening to the most recent quarter or month is fine but expect more in-flight records and a less stable rate.
Each section has its own compare dropdown:
- Previous Period — the period immediately before the base range.
- Same period previous year — shifts the base range back one calendar year. Apples-to-apples seasonal comparison.
- None — drop the comparison entirely.
- Specific period / Custom dates — pick named or arbitrary windows.
Drill-down — clicking the numbers
Almost every number is clickable. Two click targets per cell:
- Click the headline number → panel opens with the underlying records for the current period.
- Click the delta line ("↓ 18% prev: 25%") → same panel for the comparison period.
Each row shows the contact name (clickable, opens HubSpot), the meeting date and owner, and a funding-state tag: Funded $X with the cycle time in days, Not funded · matured for records past 90 days that didn't convert, or In flight (Nd old) for recent records still within the maturity window.
Booked vs Scheduled dates. When a booking's creation date and its scheduled meeting time differ, drill-down rows show both: "Booked Apr 23 · Scheduled Apr 27." Especially relevant for the Setter Funnel section, where the cohort is anchored on booking date but the meeting may be scheduled days or weeks later. Closer sections (Discovery, Decision) typically show single dates because their cohort is the meeting itself.
Drilling into the conversion rate cell shows the matured cohort (the rate's denominator) — funded and not-funded mixed — so you can see who didn't convert and why. Drilling into the Funded count or New Money cell shows just the funded subset.
Reading caveats
Pre-2026 dispositions are sparse. Disposition tracking (COMPLETED / NO_SHOW) wasn't enforced until 2026. Sections that filter on outcome === 'COMPLETED' (Closer Discovery, Closer Decision) will show suppressed counts for any pre-2026 period because many records lack the outcome field. The Setter Funnel section, which counts all bookings regardless of outcome, is unaffected. A warning pill appears on the affected sections when the date range crosses Jan 1, 2026.
Recent ranges have many in-flight records. If you set a section to "This Month" or "Last Month," a substantial fraction of the records will be inside the 90-day maturity window and excluded from the rate. The "X in flight" subtext shows how many. The conversion rate stays honest but may be based on a small denominator. Last Quarter or longer is the comfort zone.
Setter attribution gap on historical data. Many older deals (2023-2024) have a null setter_owner. Discoveries booked from those deals land in the Unattributed setter-funnel column.
Cycle time is funded-subset only. Median and p75 days describe the contacts who did fund. They're silent on the contacts who didn't — those are summarized in the conversion rate.
Glossary
Front-anchored conversion — measures conversion by anchoring on when the source record happened (booking, completion), not when the funding happened. Answers "of the work I did in this window, what converted?" rather than "of the dollars I raised in this window, what work did they trace back to?"
Booking date — when the meeting record was created in HubSpot. Anchor for the Setter Funnel section.
Scheduled date — when the meeting was/is supposed to happen. Anchor for the Closer Discovery and Closer Decision sections.
Maturity threshold (90 days) — the cutoff after which a non-funded record is fairly counted as "didn't convert." Records within the last 90 days are in flight; older ones are matured.
In flight — within the maturity window, not yet funded. Counted in Booked but excluded from the conversion-rate denominator.
Matured cohort — records older than 90 days, plus any within-90-day records that already funded. The conversion rate's denominator.
Cascade attribution — when the meeting owner isn't the setter (typical for discoveries), credit falls back to deal.setter_owner, then contact.setter_owner.
New money — first-time investor fundings only. Repeat fundings owned by AMs are out of scope here.