Closed revenue, not pipeline stages
Rank channels by the revenue they closed rather than the opportunities they created.
Marketing attribution for Insurance Carriers
Match bound policies and the premium they carry, renewal after renewal, to the campaigns and partners that produced the policyholder.
$5,040,000 56% of $9,000,000 paid
The blind spot
Quote volume is the industry's default metric and the least useful one. Bound premium and retention are what the loss ratio and the growth plan are built on.
What you get
Rank channels by the revenue they closed rather than the opportunities they created.
A policy bound four quarters after the click still credits that campaign.
Only exact matches count automatically; unmatched revenue is shown, never redistributed.
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 | 1842 | $1,710,000 | 19% | |
| Aggregators | 2517 | $2,340,000 | 26% | |
| Meta Ads | 1064 | $990,000 | 11% | |
| Direct / Unknown | 4262 | $3,960,000 | 44% |
Comparison sites and aggregators self-report performance, and those figures are rarely reconciled against the policies actually bound in the carrier's own system.
Adding the aggregator lead export to the lead file and matching it against bound premium gives an independent count. It may well be the first neutral measurement of that spend the carrier has had.
Two channels binding premium at the same acquisition cost are not equivalent if one produces policyholders who renew for eight years and the other produces annual shoppers.
Because the match is on the policyholder, every renewal credits the original channel — and once retention is in the ranking, the cheapest acquisition channel is frequently the worst one.
A carrier writing through appointed agents while also advertising direct has two acquisition motions pointed at overlapping markets. A policyholder who saw a television campaign and then bought through a local agent has been produced by both of them, and the internal argument about who gets the credit is generally settled by whoever controls the reporting rather than by anything resembling evidence from the carrier's own records. Both motions are expensive, both are defended internally, and neither has ever been measured against the other on the same basis.
Combining both sides into one lead file — the agency book with contact details and the direct lead exports, each row tagged with its source — puts them into one ranking on bound premium. Where a policyholder appears on both sides, the policy is credited automatically to whichever record has the earlier date; it is not split, and it is not held for a person. Sizing the overlap itself is a separate import: agent-written policies as the sales file against the direct inquiries alone as the lead file, so the matched share on that import's own results is the part of the agency book that also inquired direct; delete that import afterwards so the workspace's reports do not count those policies twice. That is a smaller answer than a model would offer and a considerably more useful one, because it counts the overlap instead of assuming it.
Sizing that overlap tends to change how brand spend gets discussed at the carrier. Finding that a substantial share of agent-written policyholders also inquired direct is evidence that the advertising supports the agency channel rather than competing with it. Finding almost no overlap means the two are genuinely separate markets, which argues for two separate budgets and two separate sets of expectations rather than one contested number. Either finding is more useful than the annual disagreement about whether brand advertising helps the agents or competes with them.
A rate filing takes effect and written premium per policy rises across the entire book. Every channel's revenue figure rises with it, and a report ranking on premium alone will read a pricing decision as a marketing improvement. In a segment where rate changes are frequent and occasionally large, this is the single most likely way for an attribution report to mislead the people who commissioned it and to do so confidently. The rate went up, the revenue went up, and nothing about the advertising changed in the slightest.
Policy count is the control. The report shows both figures, so a channel binding the same number of policies at a higher average premium is visibly a rate effect, while a channel whose policy count grew has done something genuinely different. Comparing a period against the same period a year earlier rather than the preceding quarter removes most of the seasonal noise that would otherwise sit on top of the rate movement. Policy count is the figure that does not move when the actuaries do, which is exactly what makes it useful here.
Mix does the same thing more quietly and is easier to miss. A shift toward a higher-premium line, or toward a state where rates are structurally higher, lifts a channel's average without any change in how it performs. Mapping line of business as Product / service and state as Location shows how premium and its attributed share move across lines and states, which makes a mix shift visible though it does not rank channels within each, and both cost nothing to add because the policy record already carries them. Mix effects are the quietest way for a channel to look better than it is, and among the easiest to check.
A policy is not a fixed object. A vehicle is added, a young driver is rated onto the household, a property is refinanced and the coverage changes, a second policy is written for the same address. Each of those raises the premium written against a policyholder who was acquired once, through one channel, in a campaign period that closed long ago and that nobody is still reporting on. Each of them is new premium written against an existing relationship rather than new acquisition, which is precisely why they belong to whichever channel produced the household.
Because the match is on the policyholder rather than on the policy, those later transactions credit the acquiring channel when they are exported as revenue rows against the same contact. The ranking moves from a measure of new policies written into a measure of premium written against the people each channel brought in, which is a quantity much closer to what the carrier's growth plan is actually built on. For a carrier whose growth comes largely from the book it already holds, that distinction is the whole point.
There is a practical consequence for the export. Pull premium transactions by policyholder and period rather than a single figure taken at bind, and the report handles endorsements, additional policies and renewals without any of them needing to be labeled as such. Where a transaction belongs to a policyholder who never appeared in a lead file, it stays unattributed, which keeps the attributed share honest rather than complete. It is a smaller number than a projection would give, and it is the one that can be checked against the ledger.
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
Which is exactly what an independent match is for. Upload their lead export and compare it against your own bound premium.
Nothing is inferred and nothing is redistributed. Every counted match traces back to two records you supplied.
Only a contact detail, a premium amount and a date are needed. No policy numbers, no claims, no underwriting data.
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 carriers and managing general agents — 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.
Bound policies: a policyholder contact email or phone, the premium, and a date.
Yes — a renewal credits the channel that produced the policyholder.
Yes — upload their lead export and match it against bound premium.
Yes: map a line-of-business column as Product / service and the report shows premium for each line, with how much of each traces to a channel.
Yes: a state column mapped as Location, or a region column mapped as Product / service. It is worth adding, because a blended average across them describes none of them.
Not as a rate. Renewal premium keeps crediting the channel that produced the policyholder, so over a multi-year range a channel whose policyholders stay accumulates more premium than one whose policyholders lapse; cancellation dates are not read.
Encrypted in transit and at rest, isolated to your workspace, and deletable in one click. A DPA is available, and client details never leave that workspace. Policy numbers, claims history and underwriting data can stay out of the export.
Policy rows analyzed in a calendar month. Quote rows do not count.
Read policy count next to written premium and compare against the same period a year earlier. A rate change lifts premium per policy across every channel at once; a channel that improved changes its policy count.
Yes, with a separate import: agent-written policies as the sales file, the direct inquiries alone as the lead file. The matched share on that import's own results is the overlap; delete the import afterwards so the workspace's reports do not count those policies twice. In a combined import a policyholder on both sides is credited automatically to the earlier record, so the overlap is not shown there, and the report does not check which came first.
Yes, when exported as premium transactions against the same policyholder contact. They then credit the channel that produced the household without anybody having to label them as endorsements first.
Yes, where the lead file names the agency as the source for each policyholder. Each one ranks on bound premium, which gives a concrete basis for deciding where marketing support is placed next year.
Add whatever inquiry record the rater produced to the lead file. Where no contact detail was captured, the premium stays in Direct / Unknown rather than being attributed to a channel by inference.
Partly. Running across several years shows renewal premium accumulating against a channel and stopping when policies do not renew, so persistency appears in the revenue itself without any lapse flag.
Nearby
Match bound policies and the commission they earned to the inquiries and campaigns that produced them, across renewal cycles measured in years.
See how it worksMatch bound policies and the commission they earn, renewal after renewal, to the campaigns that produced the policyholder.
See how it worksMatch activated accounts and the revenue they process to the campaigns that produced the signup — because a signup that never transacts is not a customer.
See how it worksFrom the blog
Every attribution tool is built for businesses where the inquiry and the purchase happen in the same quarter. If yours does not, almost every default is wrong: the date ranges, the reporting cadence, the optimization signal and the patience of everyone involved.
Read the articleBefore you can argue about attribution you have to agree what a sale is, when it happened, and how much it was worth. Most businesses have never had that conversation, which is why the marketing number and the finance number never match and everyone assumes somebody is wrong.
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.