Get an honest read on which channels drove pipeline.
Picks first, last, or multi-touch to fit the question, names each model's blind spots, and produces a caveated channel read.
Inside: The model choice, the blind-spot ledger, and a channel-contribution read.
Install it in one line, or paste it in.
~/.claude/skills/ and runs automatically when it is relevant.Connect your context. Set it to your motion.
it reads campaign membership, lead source, and opportunity touches automatically across the whole funnel.
it can stitch web, ad, and CRM touches into one journey and run true multi-touch instead of a single-field proxy.
pushes the channel-contribution read into a dashboard the whole team reads the same way.
This was built for a B2B SaaS org attributing pipeline across marketing and sales touches. Set these to your stack:
Pick the model to fit the question, not the other way around. If you want to know what fills the top of the funnel, first touch. What tips the close, last touch. How the whole journey contributes, multi-touch. Each answers a different question and lies about the others.
| Set this | What it is | Default / Example |
|---|---|---|
| CRM | your CRM connector | a CRM (Salesforce |
| WAREHOUSE | optional journey source | a data warehouse (SnowflakeBigQuery) |
| MODEL | the attribution model | first touchlast touchlinear multi-touch |
| CHANNEL taxonomy | how you group touches | paidorganicoutboundeventsreferral |
| TOUCH source | where touches live | campaign membershiplead sourcetasks |
| CREDIT basis | what you attribute | pipeline createdor closed-won revenue |
| WINDOW | the lookback for a journey | touches within 90 days before the deal |
Everything the skill does, in full.
Helps you choose an attribution model that answers the question you actually have, then builds it from your touch data. First touch to see what starts deals, last touch to see what closes them, multi-touch to spread credit across the journey. Whichever you pick, it names the model's blind spots up front and turns the result into a channel-contribution read that says where pipeline comes from without pretending to a precision the data does not support.
- 1Model selection
State the question, then pick the model, then name what it will hide. First touch over-credits the top and ignores everything that closed the deal. Last touch does the reverse. Multi-touch spreads credit but leans on complete journey data you may not fully have. Choose deliberately and print the tradeoff, so nobody reads the output as the whole truth.
- 2Credit assignment
Assign credit by the chosen model. First and last touch give one channel the whole deal. Linear multi-touch splits it evenly across touches in the window. Always state the credit basis, pipeline created or closed revenue, because a channel that sources cheap pipeline and a channel that sources deals that close are not the same channel.
- 3Blind-spot ledger
Every model ships with its blind spots listed beside the result. Single-touch models cannot see assists. Multi-touch cannot tell a decisive touch from a passing one. Offline and word-of-mouth touches are invisible to all of them. Naming the blind spots is what makes the read trustworthy instead of a story.
- 4Channel-contribution read
Roll credit up to the channel taxonomy and report each channel's share, alongside its cost where you have it. The honest output is not "this channel drives X percent of revenue" full stop. It is "under last touch, credited on closed revenue, this channel takes X percent, and here is what that model cannot see."
- 5Cross-check
Where you can, run the same deals under a second model and show where the two disagree. A channel that looks huge on first touch and tiny on last touch is doing top-of-funnel work. The gap between models is itself a finding.
- The model is named, and its blind spots are printed beside every result.
- Credit basis (pipeline vs closed revenue) is stated. No ambiguous "contribution."
- Offline and untracked touches are acknowledged as invisible, never silently zeroed into someone else's credit.
- No single model is presented as the truth. The read carries its own caveats.
ATTRIBUTION · last touch · credited on closed-won revenue · trailing 2Q Channel Credited revenue Share Note Outbound $1.20M 38% closes deals, first-touch share is lower Paid search $0.70M 22% Events $0.55M 17% under-credited here, strong on first touch Referral $0.48M 15% Organic $0.26M 8% Blind spots of this model: assists get no credit, offline touches invisible, one touch takes the whole deal. Cross-check: under first touch, Events jumps to 26%. Events start deals that outbound closes.
The lookback window (90 days) and the linear split for multi-touch are defaults, not laws. They suited a mid-market SaaS journey. If your cycle is longer or your touches sparser, widen the window or simplify the model. The model choice and credit basis are yours, and they decide what the numbers mean.
Where an operator takes this next.
Running one model by hand shows the shape. Here's the version that keeps both reads current.
The model choice stays a decision you make. The refresh doesn't have to be.
Connect Salesforce or HubSpot campaign data to a scheduled Claude task that recomputes first touch and last touch every week and flags any channel where the two models disagree by more than 10 points.
Pull web, ad, and CRM touches into Snowflake or your warehouse so multi-touch stops being a proxy and becomes a real stitched journey.
Send the channel-contribution read into your BI tool so marketing and sales stop arguing over two different spreadsheets.
One skill is the on-ramp.
A single skill does one job. Chained into a playbook, or run as a full build, it becomes a system. Here is where this one plugs in.