Cookie preferences

Choose what we may use. Strictly necessary cookies keep you signed in and can't be turned off; everything else is your call and changes nothing about how the site works. You can change your mind any time from the footer.

Marketing attribution for online education providers

Which channels produced paid enrollments?

Match paid enrollments, upsells and renewals to the campaigns that produced the learner, past the free trial that hid them.

  • No card required
  • Nothing to install
  • Cancel anytime
Online Education workspace FY2026 Sample data
Enrollments traced to a channel

$504,000 63% of $800,000 paid

  • Google Ads $232,000 · 29%
  • Meta Ads $168,000 · 21%
  • Affiliates $104,000 · 13%
  • Direct / Unknown $296,000 · 37%
Direct / Unknown is shown, never shared out across the channels above.
Google Ads · LeadFY2026 14 · (•••) •••-0134
Closed sale · FY2026 27$1,240
Matched · high confidence

The blind spot

What's actually happening

Free trials and lead magnets make top-of-funnel look excellent. Paid enrollment rates differ by an order of magnitude between channels, and platform dashboards cannot see it.

What you get

Built for online education providers.

Enrollments and tuition, not inquiries

Channels are ordered by tuition rather than by volume, which is usually a different list from the one your ad account shows.

Inquiry to enrollment takes months

The gap between the inquiry and the enrollment costs you nothing — there is no window to expire and nothing decays.

Defensible to a board or provost

Nothing is redistributed. If an enrollment cannot be traced to a channel, the report says so instead of improving the attributed share.

A worked example

The number you can take into a budget meeting.

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.

Total revenue$800,000paid enrollments
Attributed to a channel$504,00063% of revenue
Average deal$1,240per paid sale
Match rate63%of sales matched
ChannelSalesRevenueShare%
Google Ads187$232,00029%
Meta Ads141$168,00021%
Affiliates86$104,00013%
Direct / Unknown244$296,00037%
01

A free signup is not a customer, and the ratio is not constant

Channels that produce free signups cheaply are frequently the worst at producing paid enrollments. Optimizing to signups therefore actively moves budget toward the weakest channels.

Ranking on paid revenue is the correction. In this category the two rankings commonly disagree completely, which is exactly why the exercise is worth running.

02

Affiliates report their own numbers, which is not a check

Affiliate and partner networks self-report conversions, and those figures rarely reconcile with the revenue in your own system.

Adding the affiliate lead export to the lead file, each row tagged with the affiliate, and matching it against your own paid enrollments gives an independent count — possibly the first one the business has ever had.

03

A sale is not final until the refund window closes

Most online course businesses offer a money-back period, and a meaningful share of enrollments are reversed inside it. That makes an enrollment count a forward-looking estimate rather than a record, and it makes the estimate worst for exactly the channels that sell hardest. A campaign built on urgency converts well and refunds more; a campaign built on a detailed curriculum page converts more slowly and refunds less. Both look identical on the day the enrollment lands, and only one produces revenue the business keeps.

Exporting net revenue after the refund period corrects this without any extra work; the report counts each row's amount as it stands and does not subtract a refund column. The practical consequence is that a channel report should be run on a period that has fully closed rather than on the current month, which is the opposite of how most teams read a dashboard. A month old enough to have settled tells you considerably more than a live one reporting things that may yet be undone.

Chargebacks sit behind the same door and behave the same way. They arrive later, they cluster around certain kinds of acquisition, and they cost the business in operational time as well as in reversed revenue. Where the payment system can export them they belong in the file, for the same reason returns belong in a retailer's: attributing revenue that came back is the fastest way to make a report untrustworthy, and a report nobody trusts stops being used long before anybody admits it.

04

Payment plans and the installment that stops

A great deal of online tuition is sold on installments. Twelve monthly payments, a three-part plan, a subscription with a minimum term. The headline enrollment value assumes every one of them arrives, and some of them do not: cards expire, plans lapse, learners disappear after the second module. A channel ranked on the contracted value of what it sold is being credited for money that has not turned up yet, and the overstatement is largest for channels selling to people least able to commit.

Exporting payments as they are taken, rather than contracts as they are signed, fixes this cleanly. Each installment is a row carrying the learner's contact detail and its own date, and every one of them credits the channel that produced the learner originally, because the match is on the person and nothing expires in between. The ranking then reflects money received and updates itself as the plans run their course, so a channel that sold well and collected badly can no longer hide behind a signature date.

It also gives a straightforward answer to a question these businesses argue about constantly: whether a longer plan at a higher total beats a shorter one at a lower price. That depends entirely on completion of payment, which varies by acquisition source, and it is answerable from the same two files rather than from a spreadsheet somebody maintains by hand. The answer tends to differ by course as well as by channel, which is exactly what a product column is there for.

05

Webinars, newsletters and creator audiences all belong in the lead file

Online education runs on lists. A webinar registration, a free lesson sequence, a downloadable workbook, a newsletter somebody else owns, an affiliate's audience, a podcast appearance that ends with a link. Each of those is a group of people with an email address attached, which is the only requirement for a lead source, and combined in the lead file with each row tagged by source, each can be ranked on paid tuition beside the advertising accounts on precisely the same terms. Very few of these businesses have ever seen all of them on one page.

The comparison is usually where the strategy changes. A webinar list that converts a small audience at a high rate can out-earn a campaign with ten times the reach and a fraction of the intent, and the ranking says so in revenue rather than in conversion rate, which is the unit that decides where next month's effort goes. It also shows which lists have aged: an audience that produced enrollments two years ago and produces none now is a specific problem with a specific fix.

Affiliate and partner reporting is where this bites hardest, because those partners report their own results and are paid on them. An independent count from your own enrollment file is not an accusation; it is the same question answered from the other side of the table. Where the numbers agree, a partnership becomes easier to defend internally. Where they do not, the conversation is at least about two specific lists of people rather than about methodology, which is a better argument to have.

Why it matters

What changes when you can prove it.

You stop defending the budget and start growing it

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

You can cut the wrong channel without a fight

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.

Your reporting survives the finance review

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.

You answer in an afternoon, not a quarter

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

The pushback we hear from Online Education.

They say

We have a huge free tier.

We say

Which is why paid revenue is the measure. Free signups appear as unmatched leads and cost nothing against your allowance.

They say

Our affiliates report conversions.

We say

Which is precisely what an independent match is for. Upload their lead export and compare it against your own revenue.

They say

Learners are worldwide.

We say

Phone country and currency are set per dataset, so a mixed international file is handled correctly.

Pricing

Flat monthly pricing. No per-call fees.

The price here is the price on the invoice, plus any sales tax that applies — no per-call, per-minute or per-form fees. Growth usually fits online course providers and professional certification — thirteen months of history to compare a month to the same month last year, and a PDF you can put in front of whoever holds the budget.

Questions

Questions we get about Online Education.

Anything else? Talk to us — a person answers, usually the same day.

Paid enrollments: a learner email, the amount, and a date.

Start today

Stop guessing which ads pay off.

Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.