Contract value, not MQLs
See which channels produced contract revenue rather than which produced the most inquiries — on most books those are not the same channels.
Marketing attribution for printing and signage companies
Match completed jobs and the repeat work that follows to the campaigns and quotes that produced the account.
$265,000 53% of $500,000 paid
The blind spot
Print is quoted constantly and won occasionally. Quote volume is a workload metric that has been mistaken for a marketing one.
What you get
See which channels produced contract revenue rather than which produced the most inquiries — on most books those are not the same channels.
However long the client takes to decide, the contract is credited to the campaign that produced them rather than to whatever ran last.
High-confidence matches count automatically; a partial link is queued for review rather than quietly counted as a contract.
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 | 214 | $130,000 | 26% | |
| Email marketing | 91 | $55,000 | 11% | |
| Outbound & referral | 132 | $80,000 | 16% | |
| Direct / Unknown | 388 | $235,000 | 47% |
A print shop quotes far more than it wins, and estimators are the constrained resource. A channel producing twice the quotes at half the win rate is actively expensive.
Ranking on completed job revenue rather than quote requests shows which channels are worth an estimator's afternoon and which are consuming it.
A business that buys signage will rebrand, expand and replace. Vehicle graphics, wayfinding and event work recur on multi-year cycles.
Because the match is on the account, those later jobs credit the channel that produced the first one, which is how a low first order turns out to have been a good acquisition.
A print business usually runs three routes to market at once and reports on one of them. A web-to-print storefront takes card payment from customers nobody speaks to. The counter or the phone takes work from local businesses who found you somehow. A rep or estimator handles the accounts placing the large recurring runs. Only the first of those produces a clean digital trail, and it is nearly always the lowest-value of the three per customer. The report built from it describes the cheapest tenth of the business with great precision, and everything else by feel.
Putting all three into one revenue file, with a column naming the route, is what makes the comparison possible. Every completed job goes in with the customer's contact detail, the amount and the date, regardless of how it was ordered. What matches, matches; what does not is reported as unattributed rather than assigned to whichever campaign happened to be running when the job was printed. The route column, mapped as Product / service, then shows each route's revenue and how much of it traces to a channel, because a storefront order and a managed account do not respond to the same marketing at all.
The most common discovery is that the storefront and the account business draw on genuinely different demand. Search spend often turns out to be feeding the storefront almost exclusively, while the accounts carrying the shop's overhead came from referral, networking, a long-standing rep relationship or a sign on the building. Neither result argues for stopping anything. It argues for funding each route against what it actually produces, and for noticing that the channel everyone discusses may not be the one paying the rent. That only becomes visible when completed jobs are what the ranking is built from.
Signage revenue arrives in pieces. A survey, a design fee, a permit application, fabrication, installation, and then the next phase of the same rollout six months later. On a multi-site program the sequence can run past a financial year, and the accounting system records each stage as its own invoice against the same customer. A marketing report built on first invoices sees the survey fee and concludes the inquiry was worth a few hundred dollars, when the program behind it may be worth two hundred times that. The rows are already there and nobody has pulled them together.
Exporting all completed invoices against the customer contact fixes this without any judgment calls. Each stage credits the channel that produced the original inquiry, and the report reflects the size of the program rather than the size of its first line. For businesses doing rollout work it can be the single largest correction the first report makes. The effect is biggest on channels producing fewer and larger inquiries, which are precisely the ones most likely to have been cut on cost per lead. A job-type column mapped as Product / service keeps the one-off print work readable as its own line.
Permits and local authority approvals introduce a second kind of gap. A project can sit for months waiting on a consent that has nothing to do with the customer's enthusiasm or the shop's performance, and the revenue then appears in a quarter with no marketing activity behind it at all. Because the match is on the customer rather than a session, the delay is irrelevant and the revenue credits whatever produced the inquiry whenever it lands. It does mean quarterly comparisons in signage are close to meaningless; whole years or matched quarters are the only honest reading.
The first thing many shops see is how much revenue comes from customers who have been buying for years. Reorders, annual campaigns, a restaurant's menu reprint every season, a contractor's site boards for every new job — all of it lands in Direct / Unknown unless the original inquiry can be traced, and much of it cannot, because the relationship predates any of the current marketing. That is the honest reading and it is worth seeing at full size, because it sets expectations for the attributed portion underneath it.
The second is about estimating load. Quote volume is usually treated as a sign of health, and the report frequently shows that one source generates a large share of the quoting and a small share of the work. For a shop where the estimator is the constraint, that is a capacity finding as much as a marketing one, and it is actionable the same week. Either the source is qualified harder before it reaches an estimator, or it is funded less, or the quoting process for it is simplified. Any of those beats absorbing it silently.
The third tends to be geographic. Print and signage are logistics businesses as much as manufacturing ones, and a job forty miles away carries installation and delivery costs that a job in the same town does not. A column naming the area each job was delivered to, mapped as Location, shows how much revenue comes from each area and how much of it traces to a channel. It does not rank channels within each area and does not calculate margin, and it does not need to — seeing how much attributed work comes from far away is enough for somebody who knows what the van costs, and it changes a bidding radius rather than a budget.
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 why completed jobs are the measure. Quotes that go nowhere appear as unmatched leads and cost nothing.
That is the argument for ranking on contract revenue: volume rewards the cheapest inquiries, not the profitable ones.
If it exports completed jobs to CSV, that is enough.
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. Starter usually fits commercial printers, sign makers and wide-format shops — one workspace, one seat, and everything that makes the number defensible from the first plan.
A single business getting started
$9/mo
billed monthly
Questions
Anything else? Talk to us — a person answers, usually the same day.
Completed jobs: a customer email or phone, the amount, and a date.
Yes — quotes are the lead file, completed jobs the sales file, and each channel's quote count shows beside its won revenue.
Yes, and it matters here: a client who returns is worth a multiple of the first contract, and that belongs to whoever produced them.
Yes: map a job-type column as Product / service — and it is worth adding, because print and signage have different values and different cycles, and a blended average across them describes neither.
Yes: a location column mapped as Location — and it is worth adding, because a blended average across locations describes none of them.
Encrypted at rest and in transit, workspace-isolated, and deleted properly rather than flagged when you ask. Your clients stay inside your own workspace and a DPA is available.
Yes. Most commercial printers, sign makers and wide-format shops begin with last year, because it is the cheapest way to find out whether the exercise tells them anything.
Job rows analyzed in a calendar month. Quote rows do not count.
Yes. Put every completed job in one sales file with a column naming the route, mapped as Product / service. Each route then shows its own revenue and how much of it traces to a channel, because a storefront order and a managed account do not respond to the same marketing.
Export every completed invoice against the same customer contact. Each stage credits the channel that produced the original inquiry, so the report reflects the size of the program rather than the size of its first line.
Not to the match, which is on the customer rather than a session. It does mean quarterly comparisons in signage are close to meaningless — compare whole years, or the same quarter across two of them.
Yes: a delivery-area column mapped as Location shows how much revenue comes from each area and how much of it traces to a channel. Distant work at the same headline revenue is less profitable once delivery and installation are counted, which usually changes a bidding radius rather than a budget.
Put the quote list in the lead file and the completed jobs in the sales file. A source generating a large share of quotes and a small share of work shows up immediately in its quote count beside its revenue, and that is a capacity problem too.
Much of that revenue in Direct / Unknown, because the original inquiry predates your current marketing. In an established shop the attributed portion may be a minority of revenue and still be the part worth managing.
Nearby
Match paid orders and the reorders that follow to the campaigns that produced the account.
See how it worksMatch your clients' closed-sales exports to their ad and call data, and hand them a per-channel revenue report at renewal time.
See how it worksMatch signed contracts and the monthly revenue they bill to the campaigns and outbound that produced the account.
See how it worksWhere your sales already are
From the blog
It is easy to compute, easy to improve, and it will happily bankrupt you. A defense of the least popular position in performance marketing: that the metric most teams are held to is actively harmful, and that the alternative is available to anyone willing to do one join.
Read the articleThe export is the part of an attribution project that everyone treats as trivial and that determines whether the whole thing works. Here is the field list, the date-range trap, the deduplication rule, and the six columns to leave out on purpose.
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.