── SKILL
attribution-model✓ APPROVED

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.

01 / HOW TO USE

Install it in one line, or paste it in.

1
In Claude Code (one command)
Copy the install line, paste it into your terminal, and restart Claude Code. The skill installs itself to ~/.claude/skills/ and runs automatically when it is relevant.
2
In Claude, ChatGPT, or a Project (no terminal)
Open the file, then upload it to your chat or paste its contents in. A skill is just a markdown file of instructions, so any capable AI can follow it.
New to skills? A skill is a plain-text file that teaches your AI a workflow. Point any capable assistant at it and it follows the steps, on your data.
02 / MAKE IT YOURS

Connect your context. Set it to your motion.

CONNECT YOUR CONTEXT · AND WHY IT HELPS
a CRM

it reads campaign membership, lead source, and opportunity touches automatically across the whole funnel.

a data warehouse

it can stitch web, ad, and CRM touches into one journey and run true multi-touch instead of a single-field proxy.

a BI tool

pushes the channel-contribution read into a dashboard the whole team reads the same way.

SET IT TO YOUR MOTION

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 thisWhat it isDefault / Example
CRMyour CRM connectora CRM (SalesforceHubSpotPipedrive)
WAREHOUSEoptional journey sourcea data warehouse (SnowflakeBigQuery)
MODELthe attribution modelfirst touchlast touchlinear multi-touch
CHANNEL taxonomyhow you group touchespaidorganicoutboundeventsreferral
TOUCH sourcewhere touches livecampaign membershiplead sourcetasks
CREDIT basiswhat you attributepipeline createdor closed-won revenue
WINDOWthe lookback for a journeytouches within 90 days before the deal
03 / THE FULL SKILL

Everything the skill does, in full.

── WHAT THIS DOES

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.

── THE METHOD
  1. 1
    Model 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.

  2. 2
    Credit 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.

  3. 3
    Blind-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.

  4. 4
    Channel-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."

  5. 5
    Cross-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.

── QUALITY GATES
  • 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.
── OUTPUT (EXAMPLE)
EXAMPLE OUTPUT
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.
── WHERE THE NUMBERS COME FROM

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.

── EXAMPLE CHAT
EXAMPLE CHAT
You
Which channels are actually driving our pipeline? Here's our touch export for the last two quarters. [pastes CSV]
CLAUDE
Built it under last touch, credited on closed-won revenue, since that's the question you asked (what closes deals, not what starts them). Channel Credited revenue Share Note Outbound $1.20M 38% closes deals, first-touch share is lower Events $0.55M 17% under-credited here, strong on first touch Referral $0.48M 15% Blind spot to know before you present this: under first touch, Events jumps to 26%. That's not a contradiction, it means Events starts deals that outbound closes, and last touch alone would make you cut a channel that's actually doing real top-of-funnel work.
You
So which model do I actually report to the board?
CLAUDE
Report both lines, not one. "Last touch says outbound closes 38%, first touch says events starts 26% of that same pipeline" is a more honest sentence than picking the flattering model. One sharpener: connect your CRM so the touches come from campaign membership directly, this run leaned on your CSV so anything you didn't export (like a webinar touch nobody logged) is invisible to both models.
04 / GO FURTHER

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.

01
Automate the dual-model refresh

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.

02
Stitch the full journey

Pull web, ad, and CRM touches into Snowflake or your warehouse so multi-touch stops being a proxy and becomes a real stitched journey.

03
Push it to a dashboard everyone reads the same way

Send the channel-contribution read into your BI tool so marketing and sales stop arguing over two different spreadsheets.

05 / PART OF A BIGGER PLAY

One skill is the on-ramp.

── GET NEW SKILLS IN YOUR INBOX

One operator-built skill a week. Free.