SuperAPI AI Directory

pipeline-yield-analytics-skill

Data & analytics

View repository

Updated 10-16 08:45

About this skill

Pipeline Yield Analytics — v1.0.0

This is read-only analytics. It does not touch records. Its job is to make the team smarter about where effort converts.

<the_funnel> The canonical stages and the data behind each. Conversion rate = stage N+1 / stage N. The two most-ignored, most-diagnostic transitions are booked → held (no-show leakage) and held → SQL-accepted (qualification quality).

Stage Definition Source
Leads New contacts created in period, with lead source + lifecycle query_dataset: contacts_created (group by source, lifecycle)
Qualified (MQL/SAL) Passed ICP / power-level qualification lifecycle normalization in contacts_created; qualify_lead history
Demo booked Handed to an AE / meeting set ae_handoff records; get_upcoming_meetings; deal created
Demo HELD The meeting actually happened clari_list_calls / clari_get_call_summary (demo-type calls)
SQL-accepted AE accepted it as a real opportunity pipeline_open (entered a real stage) / hubspot_search_deals
Closed-won Revenue query_dataset: deals_closed (outcome = won) + revenue
</the_funnel>

<technical_accuracy> The numbers are data, but any product/spec claim in the recommendations (e.g. "lean into Higher Ed lecture-capture") must be spec-checked via search_product_catalog if it becomes customer-facing. For the analysis itself, accuracy means SOUND METHOD: state attribution assumptions, show denominators, flag small samples. QA the output with the data:validate-data skill before sharing. </technical_accuracy>

<quick_start> Trigger: "Run yield analysis", "What's converting?", "Where am I leaking?", "Win rate by source". Default cadence: end of quarter, plus monthly pulse.

Inputs:

  • Period — default last full quarter; compare to prior quarter. Accepts any range.
  • Scope — Tim 87486452 by default; pass owner_ids for a rep or the team pool.
  • Slice — default all four (source, vertical, title/power, rep); narrow on request.
  • Fiscal year start — FY2026 default (matches weekly_brief).

Outputs:

  • Excel workbook: Funnel Summary · Yield by Source · Yield by Vertical · Yield by Buyer/Power · Yield by Rep · Leak Map · Reallocation.
  • A written reallocation recommendation: top 2 sources/verticals to double down, bottom 2 to cut, the single biggest leak to fix.
  • Optional live dashboard via Cowork create_artifact (or the Artifact tool in Claude Code), re-pullable each quarter — offer it after the workbook.
  • Sidecar: ~/.claude/skill-analytics/last-outcome-pipeline-yield-analytics-skill.json (see Outcome Sidecar below)

Dependencies (Epiphan-native — Gate D):

  • mcp__Epiphan_Ai__query_dataset — contacts_created, deals_closed, pipeline_open, rep_activity, revenue (the backbone; deterministic SQL).
  • mcp__Epiphan_Ai__export_query_csv — the source→outcome join when curated datasets can't express it.
  • mcp__Epiphan_Ai__clari_list_calls / clari_get_call_summary — demo-HELD confirmation.
  • mcp__Epiphan_Ai__hubspot_search_deals / ae_drift_detect — opportunity acceptance + ownership.
  • xlsx skill — workbook. data:validate-data — QA pass. data:create-viz / Cowork create_artifact (Artifact tool in Claude Code) — charts / live dashboard. </quick_start>

<lead_sources> Map every lead to its origin so yield is comparable across the team's motions. These match the lead-source router: Greenfield (greenfield-pearl-tracker-skill) · Vertical list (vertical-list-builder) · Inbound (inbound-speed-to-lead-skill) · Paid social (paid-marketing-lead-enrichment — not in this library; map by HubSpot source/campaign) · Displacement (competitive-displacement-finder-skill) · Expansion (install-base-expansion-engine-skill) · Other/unknown. If the HubSpot source field is dirty, infer from the list/campaign membership and FLAG the inference rate in the Summary — attribution quality caps how hard you can lean on the conclusions. </lead_sources>

1. Pull the cohort

query_dataset: contacts_created for the period, grouped by source and lifecycle. This is the denominator (Leads). Pull the prior period too for the comparison column.

2. Walk the funnel

For the same cohort, assemble each downstream stage:

  • Qualified — lifecycle normalization (MQL/SAL/SQL labels are already normalized by query_dataset).
  • Demo booked — ae_handoff records + deals created in period.
  • Demo HELD — clari_list_calls for demo-type calls tied to the cohort domains (booked minus held = no-show leak).
  • SQL-accepted — pipeline_open entries / hubspot_search_deals that reached a real stage.
  • Closed-won — deals_closed (won) and revenue for $ yield.

Where a single curated dataset can't join source→outcome, use export_query_csv with a read-only SELECT and assemble the cohort join yourself.

3. Compute yield

For each slice (source, vertical, buyer power, rep) compute: stage-to-stage conversion %, end-to-end yield (won / leads), $ per lead, and average cycle time where available. Always show the denominator next to the rate — a 50% win rate on 2 deals is noise, not a signal. Compare to prior period.

4. Find the leak

The Leak Map ranks stage transitions by lost volume × value. Typical culprits: booked→held (no-shows — pair the fix with the epiphan-sdr-toolkit:demo-confirm-and-handoff plugin skill), held→SQL-accepted (qualification quality — pair with MEDDIC discipline and orlob-discovery-framework-skill), qualified→booked (speed-to-lead — pair with inbound-speed-to-lead-skill).

5. Recommend reallocation

Translate the math into a decision. Name the top 2 sources/verticals by yield (double down), the bottom 2 (cut or rework), and the single highest-value leak to fix next. End with specific actions, owners, and a timeline. This is the deliverable that matters — the tables support it, they are not the point.

6. QA + output

Run data:validate-data over the numbers (denominators, double-counting, attribution). Build the workbook (xlsx). Offer the live create_artifact dashboard for re-pulling each quarter. Present with present_files (Cowork) or as a file path in Claude Code. Write the sidecar.

<success_criteria>

  • Cohort = contacts created in the period (query_dataset: contacts_created), with the prior period pulled for comparison
  • All six funnel stages assembled for the cohort; booked→held confirmed via Clari, SQL-accepted via a real pipeline stage, won via deals_closed + revenue
  • Every yield table shows the denominator (n) beside each rate; cohorts with n < ~20 labeled directional
  • Four slices delivered (source, vertical, buyer power, rep) unless narrowed on request
  • Leak Map ranks stage transitions by lost volume × value and names the paired fix skill
  • Reallocation section names top 2 double-down, bottom 2 cut/rework, and the single leak to fix, with owners + timeline
  • Method guardrails stated in the Summary (attribution model, inferred-source %, Clari coverage %)
  • data:validate-data QA pass run before sharing; no records written anywhere (read-only)
  • Outcome sidecar written (see below) </success_criteria>

Output contract

Workbook tabs: Funnel Summary (full funnel + prior-period delta) · Yield by Source · Yield by Vertical · Yield by Buyer/Power · Yield by Rep · Leak Map (ranked) · Reallocation (the recommendation).

Every yield table shows, per slice: Leads | Qualified | Booked | Held | SQL-Acc | Won | Held% | SQL% | Win% | End-to-end Yield% | $ / Lead | n (denominator).

Method guardrails (state these in the Summary)

  • Attribution = lead source at contact creation; multi-touch is not modeled. Flag the % of leads with inferred (dirty) source.
  • Demo-held depends on Clari coverage; if a call has no recording, it may undercount held — note coverage %.
  • Small cohorts (n < ~20) are directional only; label them.

Cadence

End of each quarter (full retro vs prior quarter) + a lighter monthly pulse on the leak map. Consistent tabs so trends are comparable quarter over quarter.

GTME lens

  • GTM motion: shifts the team from activity management to yield management — funding the motions and verticals that actually produce revenue and starving the ones that don't.
  • Operational leverage: replaces gut-feel territory effort and manual spreadsheet funnel math with a repeatable, QA'd model; every quarter it redirects finite dials toward the highest-converting source×vertical cells, compounding output without adding headcount.

Roadmap (v1.1+)

  • Live create_artifact dashboard pulling query_dataset on open, with source/vertical filters.
  • Cohort retention: re-pull each cohort at +30/+60/+90d to capture late-closing deals.
  • Feed yield weights back into vertical-list-builder and install-base-expansion-engine-skill ranking.
  • Per-rep coaching tie-in with sdr-call-coaching where a rep's held→SQL rate lags the team.

Outcome Sidecar

Write to ~/.claude/skill-analytics/last-outcome-pipeline-yield-analytics-skill.json (path MUST be outside the repo). The PostToolUse sweep hook ingests it into outcomes.jsonl.

{
  "ts": "{ISO-8601 UTC now}",
  "skill": "pipeline-yield-analytics-skill",
  "version": "1.0.0",
  "variant": "default",
  "status": "success | partial | error",
  "runtime_ms": 0,
  "metrics": {
    "period": "YYYY-Qn",
    "leads": 0,
    "qualified": 0,
    "booked": 0,
    "held": 0,
    "sql_accepted": 0,
    "won": 0,
    "end_to_end_yield_pct": 0,
    "inferred_source_pct": 0,
    "clari_coverage_pct": 0,
    "biggest_leak": "booked_to_held | held_to_sql | qualified_to_booked | ...",
    "slices_delivered": 4
  },
  "error": null,
  "session_id": "{session id or null}"
}
  • status = "success" when all six stages were populated from live data; "partial" if a stage had to be estimated (e.g. no Clari coverage for demo-held) — fill error with which stage; "error" only if no funnel could be built.