Implementation Guide April 2026

How to Build a Custom Attribution Model (Without a Data Team)

Ayoub Kaddouri
By Ayoub Kaddouri
Growth Hacker for B2B SaaS · €1M+ revenue tracked · LinkedIn
Updated Apr 2026

For B2B SaaS under $1M ARR, off-the-shelf attribution tools cost more than they return. Here is the scrappy stack I have built for clients: GA4, your CRM, a free SQL layer, and Looker Studio. No data team required.


In This Guide

  1. 1. Why Custom Beats Off-the-Shelf (Under $1M ARR)
  2. 2. The Free Stack
  3. 3. Define Your Touchpoints
  4. 4. Choose Your Weighting
  5. 5. Implementation (Step by Step)
  6. 6. Monthly Reporting Template

Why Custom Beats Off-the-Shelf (Under $1M ARR)

Off-the-shelf attribution tools. HockeyStack, Dreamdata, Bizible, Hyros. all cost $12k–$40k/year fully loaded. For a B2B SaaS under $1M ARR, that is 1–4% of your entire revenue, which is absurd for an analytics tool.

Worse: at that scale, your data volume is too small for "data-driven" attribution models to mean much. You do not have enough closed deals per month for a Markov chain or Shapley value model to produce statistically meaningful results. You have 5–30 closed deals per quarter. The algorithmic sophistication is wasted.

What you actually need at this stage:

That is a spreadsheet plus a few integrations. not a $2k/month SaaS.

The Free Stack

  1. GA4. free, required anyway. Handles session stitching and anonymous traffic.
  2. Your CRM. HubSpot free, Pipedrive, Salesforce. Holds deal records, close dates, revenue.
  3. Google Sheets + a scheduled export. alternatively, BigQuery free tier if you want SQL.
  4. Looker Studio. free. Connects to GA4 and Sheets/BigQuery. Builds the monthly report.

Total monthly cost: $0. Time cost: 8–16 hours to set up, 1 hour/week to maintain.

Define Your Touchpoints

You need to decide which touchpoints count as "attribution moments" for your business. For most B2B SaaS, these four cover 90% of what matters:

Each deal has exactly one of each of these touchpoints. this is what makes the model tractable without specialized tools.

Choose Your Weighting

Now pick how to distribute credit across the four touchpoints. There is no one right answer. pick based on your funnel shape.

Your funnel Weighting (FT / LC / SAL / CD) Why
Long research cycle, cold audiences matter most 50% / 20% / 15% / 15% First touch gets heavy credit. You rarely buy yourself into a deal at the last mile.
Sales-led, outbound matters more than inbound 20% / 20% / 40% / 20% SAL stage (SDR qualified) gets heavy credit because sales creates the deal.
PLG-assisted, short cycle 40% / 40% / 10% / 10% Product and demand gen carry the deal. Sales confirms, doesn t create.
Balanced / unsure (default) 30% / 30% / 20% / 20% Reasonable starting point if you do not have a strong prior.

You can revisit this each quarter. The goal is not mathematical perfection. it is directional clarity for budget decisions.

Implementation (Step by Step)

Step 1: UTM discipline

Every link you publish. paid ads, LinkedIn posts, newsletter content, email sequences, Reddit comments. must have UTM parameters. Use GA4 URL builder or build a spreadsheet template. No UTM = no attribution.

Step 2: Capture First Touch in your CRM

When a visitor fills out a form, push the first-touch UTM values into custom fields on their contact record. HubSpot does this automatically if you use HubSpot forms. Otherwise, set a cookie on first visit and read it on form submit. Total dev time: 2–4 hours for a junior.

Step 3: Weekly CRM export

Once a week, export closed-won deals from your CRM with: deal amount, close date, first touch UTMs, lead capture date, SAL date. This is 20–50 rows for most B2B SaaS under $1M ARR. Dump into a Google Sheet.

Step 4: Apply weighting in Sheets

In the sheet, create columns for each of the 4 touchpoints. For each deal, split the revenue per your chosen weighting. A $20k deal with a 30/30/20/20 weighting gives $6k credit to First Touch channel, $6k to Lead Capture, etc.

Step 5: Build Looker Studio dashboard

Connect Looker Studio to your Google Sheet. Build two views:

Share the dashboard with sales, marketing, and leadership. Review monthly.

Monthly Reporting Template

Once a month, in 30 minutes, you should be able to answer:

  1. What was our attributed pipeline and revenue by channel, last 90 days?
  2. What is our CAC by channel, applying this attribution model?
  3. Which channel is most under-invested relative to its attributed revenue?
  4. Which channel is most over-invested?
  5. What are we changing in the next 30 days based on this?

That is the whole game. No $2k/month tool. No data team. No attribution-science PhD. Just UTM discipline + one spreadsheet + a Looker view + a monthly review.

When you outgrow this. usually around $2M ARR or when you hire a real marketing ops person. you graduate to HockeyStack or Dreamdata. But not before. The tools pay back at scale, not at scrappy.

More attribution reads

From the field

I've built this exact stack for three early-stage SaaS clients. The one that got it right also enforced UTM discipline from day one. their attribution picture became actionable within 6 weeks. The two that didn't had 6 months of messy cross-channel data we had to clean up before any model produced trustworthy output. UTM hygiene is 80% of attribution in a world where nobody is buying you a tool.

Frequently Asked Questions

What is a custom attribution model?

A custom attribution model is one you design yourself instead of using a vendor default. It assigns specific credit weights to touchpoints based on your actual funnel. for example, 40% to first-touch, 20% to demo request, 40% to opportunity creation. Custom models exist because off-the-shelf options misrepresent long B2B cycles, hybrid online/offline journeys, or product-led growth where in-product events matter as much as marketing touches. They're typically built in BigQuery, dbt, or a dedicated attribution tool.

When do I need a custom attribution model instead of GA4 defaults?

When GA4 systematically misprices your channels. Common triggers: sales cycles longer than 30 days (GA4 lookback windows lose touches), offline conversions GA4 can't see, product-led signals that matter more than marketing touches, or sales teams manually flagging influence. If executives keep arguing about which channel deserves credit and you can't reconcile GA4 with your CRM, that's the signal. Stick with GA4 defaults if your cycle is short, your funnel is fully online, and conversions exceed 600/month per channel.

How do I build a custom attribution model in GA4?

GA4's UI doesn't expose model customization beyond the Model Comparison report. To build a true custom model, link GA4 to BigQuery (free tier), then write SQL against the events_* tables. Stitch user_pseudo_id sessions into journeys, assign credit per your rules, write to a reporting table, then visualize in Looker Studio. For Markov or Shapley models, use Python with the ChannelAttribution package against the BigQuery export. Most teams underestimate the data-modeling work. budget 2-4 weeks for a v1.

What's the difference between custom and data-driven attribution?

Data-driven attribution uses ML to assign credit based on which touch sequences statistically lift conversion probability. Custom attribution uses rules you define manually, based on business logic. DDA is objective but a black box and needs high data volume. Custom is transparent and explainable but reflects your assumptions. The best stacks combine both: DDA for high-volume channels, custom rules for low-volume or offline channels DDA can't see. Use custom when qualitative factors (sales rep input, account tier) need to be encoded.

How much data do I need before building a custom attribution model?

Minimum viable volume is around 50-100 conversions per month with stable journey patterns. Below that, every model is just noise. For data-driven approaches like Markov chains, the realistic floor is 600+ conversions/month per channel and 90+ days of history. For rule-based custom models, you can start lower because you're encoding business logic, not learning from data. The bigger constraint is touchpoint tracking maturity: if your UTMs are inconsistent or your CRM-to-GA4 stitching is broken, fix that before building any model.

Can I build a custom attribution model without code?

Partially. Tools like Dreamdata, HockeyStack, and Adobe Marketo Measure offer no-code custom attribution with rule builders and pre-built models. They cost $1k-$10k/month and assume your tracking is clean. For lighter setups, Looker Studio with calculated fields can implement simple custom models. But truly custom logic. multi-stage credit, account-based scoring, blending CRM and product data. eventually requires SQL or Python. No-code gets you 80% of the way; the last 20% always needs engineering.