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 waste and recycling companies

Which channels produced billing accounts?

Match opened accounts and the recurring service revenue they bill to the campaigns and calls that produced the customer.

  • No card required
  • Nothing to install
  • Cancel anytime
Waste & Recycling Services workspace FY2026 Sample data
Service revenue traced to a channel

$342,000 57% of $600,000 paid

  • Google Ads $180,000 · 30%
  • Local service ads $78,000 · 13%
  • Outbound & referral $84,000 · 14%
  • Direct / Unknown $258,000 · 43%
Direct / Unknown is shown, never shared out across the channels above.
Google Ads · LeadFY2026 14 · (•••) •••-0134
Closed sale · FY2026 27$364
Matched · high confidence

The blind spot

What's actually happening

One-off skip hires and multi-year commercial contracts arrive through the same phone number and are hundreds of times apart in value.

What you get

Built for waste and recycling companies.

Contract value, not MQLs

Every channel is measured on the contract revenue behind it, so volume stops flattering whichever source is cheapest per inquiry.

Sales cycles longer than any window

Long gaps are the normal case here, not an edge case. The client appears in both files, so the match holds however far apart the two dates are.

Defensible in a board pack

Nothing is inferred. A contract either matches a source exactly or it is reported as unattributed, and the unattributed share is printed rather than absorbed.

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$600,000paid service revenue
Attributed to a channel$342,00057% of revenue
Average deal$364per paid sale
Match rate57%of sales matched
ChannelSalesRevenueShare%
Google Ads489$180,00030%
Local service ads212$78,00013%
Outbound & referral229$84,00014%
Direct / Unknown701$258,00043%
01

A one-off hire and a scheduled contract are different businesses

A single skip is a $340 transaction. A restaurant on twice-weekly collection is $18,000 a year for as long as it trades. Blending them into one cost-per-lead describes neither.

A service-type column mapped as Product / service shows residential one-offs and commercial contracts as separate lines, each with the revenue it actually produced and how much of it traces to a channel.

02

Recurring revenue makes acquisition look expensive until you count it

Judged on a first invoice, almost every channel that produces commercial accounts appears unaffordable, which is why this spend is so often cut.

Because the match is on the account, every month of service credits the channel that won it. That is usually the difference between a defensible budget and an abandoned one.

03

Route density decides whether a won account was worth winning

Two accounts of identical value are not equally valuable to a waste business. One sits on an existing round where the truck passes anyway; the other is eleven miles off route and adds forty minutes to a shift. The revenue line is the same and the contribution is not, and no marketing report has ever known the difference. A channel producing scattered accounts across a wide area looks identical on the page to one producing clustered accounts on a single industrial estate, and operations has no way to say so in budget language.

A round or area column in the revenue export, mapped as Location, closes part of that gap. The report then shows each round's revenue and how much of it traces to a channel, which turns an abstract argument about cost per acquisition into something somebody can look at. It does not rank channels within each round, but a round whose revenue sits mostly in Direct / Unknown is one the paid media is not reaching, and a round with a high attributed share is one it is. Geographic targeting is one of the cheapest levers in paid media and one of the least used in this industry, partly because nobody has had evidence about where the attributed accounts are.

A depot column supports depot-level comparison instead, which matters because depots differ enormously in competition, tipping costs and how full the rounds already are. A channel that is excellent for a depot with spare capacity may be actively unhelpful for one running at full utilization, where the only useful new account is a dense one. A group-level average sits between those two situations and describes neither, while being the number the group budget is set against. Mapped as Location, the column shows each depot's revenue and how much of it traces to a channel; it does not rank channels within each depot, but it shows where marketing is carrying a depot and where it is not.

04

Tonnage, surcharges and the invoice that is not the contract

A waste contract quotes a price per lift or per container, and the invoice includes a good deal more: weight above an allowance, contamination charges, rental of the container, fuel and landfill levies, missed-collection fees. Some of those are recharges and some are margin, and together they can move an account's actual value well away from the number it was sold at. Reporting on contracted price therefore ranks channels on what was quoted rather than on what was billed, and the two diverge most on commercial accounts.

Exporting billed revenue keeps the ranking anchored to money that arrived. It also guards against a specific failure: accounts that generate heavy contamination charges and repeated missed collections produce operational cost dressed up as revenue, and they look excellent on any report built from contract values. Marking each invoice line as a service charge or a recharge and mapping that column as Product / service shows the two as separate lines, with how much of each traces to a channel, which is worth doing once to see how far apart they are. If the recharge line is small, use the simpler export from then on.

Container rental deserves a mention of its own, because it behaves like a subscription. A customer with three skips on long-term hire produces steady monthly revenue independent of how often anything is collected, and that revenue credits whatever produced the account just as collections do. Businesses exporting only collection revenue lose it, and with it a systematic share of the value of every acquisition channel they run. The rows exist in the billing system because they were invoiced, so including them is a decision about the extract rather than a change to anything operational.

05

A skip is booked for this afternoon and a contract is won over months

The two halves of this business convert on timescales with nothing in common. Domestic and small trade skip hire is an immediate purchase: somebody needs a container this week, they search, they call three suppliers, and the one who answers with a price and an availability wins. The decision is made within hours and the revenue is billed within days. Commercial contracts are procurement exercises — a site visit, a waste audit, a proposal, a comparison against the incumbent, a notice period — and six months from first inquiry to first collection is unremarkable.

Measuring both against one target is what pushes budget toward the fast half every single year. Cost per inquiry rewards the channel producing skip bookings, because they convert this week and can be counted this week, while the channel producing commercial inquiries shows a cost and no return for two quarters and gets cut somewhere in between. A service-type column mapped as Product / service and a long enough range prevent that, because the commercial revenue eventually credits the inquiry that produced it however long ago it arrived. There is no window to fall outside of.

Answering the phone deserves mention here, because it is the dominant variable on the fast half and it is invisible in every advertising report. A channel's apparent performance in skip hire is substantially a measure of how often calls from it were answered promptly and quoted competently. Where a call log goes into the lead file, the difference between calls received and accounts opened becomes readable per channel, which separates a demand problem from a handling one. Those two have entirely different remedies and are routinely confused, usually in favor of blaming the media.

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 Waste & Recycling Services.

They say

Most of our calls are one-off hires.

We say

Which is fine. Map a service-type column as Product / service and the report shows them as a separate line from contract work.

They say

Our commercial accounts bill monthly.

We say

Which is why later billing credits the original channel. That is where the value of the account is.

They say

We book everything by phone.

We say

Any call export can go into the lead file, and if you have none, an inquiry list does.

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. Starter usually fits waste haulers, skip hire and recycling operators — one workspace, one seat, and everything that makes the number defensible from the first plan.

Starter

A single business getting started

$9/mo

billed monthly

  • 1 workspace · 1 seat
  • 100 sales records / month
  • 6-month saved history
  • Phone + email matching with confidence tiers
  • Assisted column mapping
  • CSV export

Questions

Questions we get about Waste & Recycling Services.

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

Opened accounts or billed revenue: a customer email or phone, 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.