Contract value, not inquiries
Rank channels by signed recurring revenue rather than by how many people filled in a form.
Marketing attribution for MSPs and IT service providers
Match signed managed-services agreements and their recurring value to the campaigns that produced the first conversation.
$732,000 61% of $1,200,000 paid
The blind spot
An MSP contract is worth tens of thousands a year and takes months to sign. Judging demand generation on inquiry count in that market means optimizing for people shopping for a one-off fix.
What you get
Rank channels by signed recurring revenue rather than by how many people filled in a form.
An inquiry in March signed in September still traces to the campaign that produced it.
The people who generate demand and the people who close it read one report.
A worked example
Not impressions, not leads, not cost per click. Closed revenue, by the channel that produced it, for a period you choose — with the portion we could not trace shown rather than quietly shared out across your paid channels.
| Channel | Sales | Revenue | Share | % |
|---|---|---|---|---|
| Google Ads | 9 | $312,000 | 26% | |
| LinkedIn Ads | 7 | $264,000 | 22% | |
| Email marketing | 5 | $156,000 | 13% | |
| Direct / Unknown | 13 | $468,000 | 39% |
The searches that produce urgent break-fix inquiries are cheap, plentiful and almost never turn into a managed agreement. The searches and campaigns that produce managed contracts are quieter, more expensive per inquiry, and produce nearly all the recurring revenue.
Measured on inquiry volume the first looks like the winner every month. Measured on signed annual contract value the ranking usually inverts entirely, which is the single most useful thing an MSP can learn about its marketing.
Most MSPs get a substantial share of new contracts from existing clients, vendor partners and personal networks. That revenue is real and it is not produced by advertising, so crediting it to whichever campaign ran that quarter makes the paid figures worthless.
It lands in Direct / Unknown, shown rather than redistributed. Quantifying it is often the finding that changes the plan — a firm discovering that 39% of contract value is referral usually decides to invest in that deliberately rather than accidentally.
A managed agreement priced at forty seats rarely stays at forty seats. Clients hire, buy a competitor, add a second site, move a line of business onto your stack, and every one of those events raises the monthly invoice without any new marketing being involved. The signature value is what gets recorded in the pipeline report, and it is the smallest figure that agreement will ever produce. Judging the campaign that won the client on it is the same mistake as valuing a maintenance customer at the first visit.
Exporting billed revenue rather than contracted value changes the ranking. Pull invoices by client and month from the billing side of your professional services platform, upload them, and every month of billing credits the channel that produced the client in the first place. A source that signed three small clients who each tripled in two years moves above one that signed a single large account which has not grown since. That is the comparison an owner already makes informally, usually from memory and without any of the numbers.
It also makes churn visible in the only place that matters. A channel whose clients stop billing after fourteen months and a channel whose clients are still billing at year four look identical on signed contract value and completely different on revenue earned. Nothing has to be flagged or categorized for this to appear. Billing simply stops in the export and the cumulative figure against that channel stops growing with it, which is a finding the report never had to be told how to look for.
Recurring management pays the bills and project work pays for growth. A cloud migration, a hardware refresh, an office move, a remediation after a security assessment: these are billed separately, often at several times a month's recurring fee, and they arrive because a technology roadmap conversation went well rather than because anybody clicked an advertisement. Marketing is credited for none of it, and in many firms is not even shown the figures, so the demand budget is argued over on the slowest-moving part of the revenue.
Because every project invoice carries the same client contact as the managed agreement, it credits the channel that produced that client. Map a revenue-type column as Product / service and the report shows agreement revenue and project revenue as separate lines, with how much of each traces to a channel. The channel ranking itself covers both, so project revenue raises the channels that produced clients who later buy projects, which can change what the firm advertises and which service pages it bothers to maintain.
This is also the honest answer to the objection that project work is sold by the account team rather than won by marketing. It is, and the report does not claim otherwise. It credits the channel that produced the relationship the account team then sold into, and the revenue-type column separates the two effects for anyone who wants them separated. What you should not do is leave project revenue out of the file entirely, because that is the version of the numbers that makes marketing look like pure cost.
The revenue side is straightforward. The platform that raises your invoices holds a client identifier, an amount and a date for every agreement and every project, which is the same report the office already runs to reconcile the month. That is the whole revenue file. Nothing connects to your monitoring or management tooling, nothing reads ticket content, and no agent goes anywhere near a client network, which matters because your own clients audit you on precisely that point. Everything the report needs was produced in order to get an invoice paid.
The demand side is where most firms have less than they think. There is usually a website form, perhaps an advertising account, and then a long tail that lives in somebody's head: the vendor who passes leads, the accountant who recommends you, the chamber breakfast, the client who left and came back. Each of those is a list of people with contact details; combined into the one lead file, each row tagged with its source, each ranks on billed revenue beside the paid campaigns.
Assembling that second file is usually a morning's work and it decides how useful the first report will be. Every source you can supply moves revenue out of Direct / Unknown and into something you can act on, and everything you cannot supply stays honestly unattributed. The bucket is never redistributed to make the paid channels look healthier, which is the entire reason the paid figures can be trusted when somebody on the leadership team starts asking where they came from.
Why it matters
"We generated 400 leads" invites an argument. "This channel closed $186,400 last quarter, here is the reconciliation" ends one. The teams that can show closed revenue by channel are the teams that get the next increase approved, because they are asking with evidence rather than with conviction.
Killing spend is politically harder than adding it, because someone always owns the channel being cut. A number that reconciles to the sales export takes the argument out of the room — you are not overruling a colleague's judgment, you are reading the same ledger they are.
Platform-reported conversions do not reconcile to revenue, and eventually someone in finance notices. Reporting built from your own closed-sales export starts from the number finance already trusts, which is why it holds up when it is checked.
Because this reconciles exports rather than tracking visitors, it works on months that have already closed. You are not instrumenting now to learn something in ninety days — you can answer for last quarter today, which is usually when the question is being asked.
Honest answers
That is why the analysis is retroactive. Upload last year's signed contracts and last year's lead exports on your first afternoon — nothing had to be installed at the time, so a completed cycle can be measured immediately.
Then the most valuable output is the size and composition of Direct / Unknown, and whether the little you do spend produces anything. Several firms have used exactly this to justify starting or stopping.
Only a contact detail, a contract value and a date are needed. No client names required, no systems connected, and the data is isolated per workspace, encrypted and deletable.
Pricing
The price here is the price on the invoice, plus any sales tax that applies — no per-call, per-minute or per-form fees. Enterprise usually fits managed service providers and IT consultancies — ten seats for the team and the highest monthly record allowance, since a year of closed deals is a lot of rows.
One business closing at volume
$499/mo
billed monthly
Questions
Anything else? Talk to us — a person answers, usually the same day.
Signed agreements: a primary contact email or phone, the annual or monthly contract value, and the signature date.
Whichever your team plans on — just keep it consistent across periods.
Yes, with a service or product column mapped as Product / service. The report shows revenue for managed security and general managed IT separately, with how much of each traces to a channel.
Export the value at the point you want to measure, or run the report over a longer range so expansions appear against the original channel.
Add the clients each partner referred to the lead file, tagged with the partner as their source, and they attribute like any other channel rather than disappearing into Direct / Unknown.
As long as your data covers. There is no attribution window.
Usually marketing, the sales lead and the owner. Enterprise includes ten, sharing one monthly record allowance.
Yes, and for this business it is the right unit of analysis — a quarter is too short to contain a cycle.
Billing, if you can get it. Contracted value is the smallest figure an agreement will produce; monthly billing captures seat growth, added sites and project work, and credits all of it to the channel that produced the client.
No. Nothing is installed, no agent is deployed and no system is connected. You upload two CSV files, which is a considerably shorter conversation with a client who audits your tooling.
Yes, with a revenue-type column mapped as Product / service. It is the most useful breakdown to add, because it shows how much of agreement revenue and of project revenue traces to a channel at all.
No. The match is on the contact you billed, whoever they report to. An engagement-type column mapped as Product / service shows co-managed and fully managed revenue as separate lines in the same report.
Add their referrals to the lead file, each row tagged with the partner's name as its source. Each named partner then ranks separately on billed revenue, which gives you something concrete to bring to the next partner review.
At thirty or forty clients, inquiry counts are noise and revenue is not. Rank on billed revenue across two or three years rather than on monthly lead volume and the pattern is usually clear.
Nearby
Match installed services and the recurring revenue they bill to the campaigns and partners that produced the account.
See how it worksMatch closed-won opportunities in your CRM to the campaigns that produced the original inquiry — across a cycle measured in quarters, not sessions.
See how it worksMatch closed-won contracts to the campaigns, events and content that produced the first conversation — across evaluations measured in quarters.
See how it worksWhere your sales already are
Export closed-won deals and reconcile them against your ad and call exports, including the offline sources HubSpot never receives.
What to exportExport won opportunities, upload the sources that produced the leads, and rank channels on closed value rather than on lead volume.
What to exportExport your Microsoft Ads leads, match them against closed sales, and compare the channel on revenue per lead instead of on impressions.
What to exportExport your Reddit leads, match them against closed sales over a period that fits the decision, and see the channel where its effect actually lands.
What to exportExport won deals and leads from Zoho CRM, join them on the contact detail, and see what the source field has actually been recording.
What to exportFrom the blog
A software company with both a free trial and an enterprise sales motion has two attribution problems that contradict each other. Product analytics claims the signup, sales claims the contract, and the finance system records revenue that neither of them can explain.
Read the articleLinkedIn is the one paid channel where the person who clicked is very probably the person you wanted. It is also the channel whose reporting is least able to tell you whether that person ever bought — because the sale happens months later, through a committee, in a system LinkedIn cannot see.
Read the articleAttribution needs history and privacy law needs forgetting, and those two facts are in direct tension. A practical retention policy for marketing data: what to keep, what to aggregate, what to delete, and how to prove you did.
Read the articleStart today
Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.