Showroom sales, online channels
Floor and phone revenue attributed to the ads that produced the visit.
Marketing attribution for furniture retailers
Attribute showroom visits, design consultations and phone orders to the channels that produced them — the sales your pixel records as a bounce.
$281,400 67% of $420,000 paid
The blind spot
Your website's best-performing session often ends with someone closing the tab and driving to the store. The pixel files that as an abandoned cart. The sales floor books it as walk-in.
What you get
Floor and phone revenue attributed to the ads that produced the visit.
A full living-room order counts for what it is worth, next to a cushion sold online.
On-site analytics keeps the cart. This covers the rest of the store.
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 | 78 | $142,800 | 34% | |
| Meta Ads | 52 | $88,200 | 21% | |
| Email marketing | 31 | $50,400 | 12% | |
| Direct / Unknown | 74 | $138,600 | 33% |
Furniture is the textbook considered purchase. People measure the room, argue about it for three weeks, come in twice, and buy on the second visit. Every one of those steps happens on a different device and most of them happen off your website entirely.
The result is a channel report where paid search looks mediocre and 'direct' looks like your best salesperson. Neither is true. What is true is that the sale closed somewhere the pixel does not go.
Your POS or order system already records a phone number and an email against every delivered order, because you need them to schedule the delivery. That is the whole input.
Match it against your ad platform lead exports or your call tracker and the showroom orders line up against the campaigns that produced them. Orders with no usable contact detail stay in Direct / Unknown, where they belong, rather than being spread across paid channels to make a report look tidier.
The largest orders in a furniture business are rarely written across a counter. They come out of a design consultation, in the store or in the customer's home, where somebody measures, draws a plan, specifies fabrics and puts a whole room together. That appointment is the real conversion event, and it is the thing a furniture retailer's marketing is genuinely buying. It is also, almost universally, recorded as a form fill and then forgotten the moment the designer takes over the relationship.
Putting consultation bookings in the lead file changes what the marketing conversation is about. Instead of cost per appointment, which is easy to lower and tells you nothing worth knowing, the report shows what an appointment from each channel became in order value. Two channels producing the same number of consultations at the same cost can differ by a factor of three once the rooms they sold are counted, and nothing in a booking report will ever say so, because a booking report has no money in it.
The gap usually traces back to intent rather than to the designer. A channel advertising a promotion books people who want the promotion; a channel advertising a room books people planning a room. Both fill the diary at the same rate. Only one of them fills it with projects. Knowing which is which lets the store decide how many appointment slots to give each source, which is a more useful lever than the bid adjustments a budget conversation usually ends at, and one the floor can act on the same week.
Furniture is sold long before it is delivered, and a proportion of what gets written never arrives at all. The special order is discontinued, the fabric is unavailable, the lead time moves from eight weeks to twenty and the customer cancels, or the sofa will not go up the stairs. Every one of those is a written order sitting in the system and none of them is revenue. A channel report built on written orders is therefore ranking sources partly on things that fell through.
Export delivered and invoiced orders where the system allows it, or leave cancelled orders out of the export, because every row in the sales file is counted as a sale at the amount it carries and there is no status filter to remove them later. A cancellation rate by source is not something this report calculates, and including cancelled orders would credit channels for revenue that never arrived. A channel selling heavily from a clearance floor cancels quite differently from one selling special order, and the honest way to keep that difference from distorting the ranking is to rank only the orders that stood.
The date question follows from the same place. An order written in March and delivered in June can be booked on either, and the two conventions produce months that look nothing alike. Many retailers use the written date for the channel report, because that is when the customer decided and therefore when the advertising did its work, and keep the delivery date for operations. Whichever is chosen, applying it consistently is what makes a comparison against last year mean anything at all.
The first report tends to produce three reactions. The unattributed share is smaller than the sales floor expects, because the customer recorded as a walk-in usually rang about stock or delivery first and left a phone number while doing it. Email ranks far higher on revenue than it ever does on clicks, because a list of past customers produces large second orders. And the channel with the cheapest leads sits somewhere in the middle of the table rather than at the top of it.
A second reading is about the mix. Once a department or category column is in the file, the ranking splits: one source sells upholstery, another sells bedroom, another sells the accessories and rugs that carry a better margin than either of them. A single blended ranking hides all of that and pushes a store toward funding whichever source happens to sell the highest-ticket category, regardless of what it earns along the way. Splitting it turns one budget decision into several better-informed ones.
None of this required a change of process. A furniture retailer already records a phone number against every order, because a delivery cannot be scheduled without one, and the advertising exports already exist inside the ad accounts. That is why a completed year can be analyzed on the first afternoon instead of accumulated over the next one, and why the sensible first move is to run last year rather than wait for this one to finish. The answer either changes a decision or it does not.
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
Then they will sit in Direct / Unknown, honestly, and the report will tell you what share that is. The share may be smaller than you assume, because the customer who walked in has often called about delivery or stock first.
Each import is saved as its own period, so a sale month is comparable against the same month last year rather than against the quiet one before it.
No. Match on the order date, not the delivery date, and the sale credits the campaign that was running when the customer actually bought.
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. Growth usually fits furniture retailers whose larger rooms are sold on the floor, not in the cart — 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.
A business scaling ad spend
$49/mo
billed monthly
Questions
Anything else? Talk to us — a person answers, usually the same day.
Delivered or invoiced orders: a customer phone number or email, the order value, and the order date. Every major furniture POS exports this.
No. Your ad platform lead exports work as the second file. A call tracker helps if you already have one, but nothing needs installing to start.
Yes — map a product or department column as Product / service and the report shows each category's revenue and how much of it traces to a channel. It does not rank channels within each category.
Include it as its own line and it attributes the same way. It is often the most channel-sensitive revenue in the business.
Map a showroom column as Location and the report shows each store's revenue and how much of it traces to a channel. A store with a much lower attributed share under the same campaigns is worth a look at how its inquiries are handled.
Count the order at its full value on the date it was written. How the customer paid is a separate question from which channel produced them.
Export net of returns if your system can. The report counts the amount each row carries and does not subtract a returns column, and attributing revenue that came back is the fastest way to lose trust in the number.
Order rows analyzed in a calendar month. Lead and call rows do not count.
Either, as long as it is the same choice every time. Many stores use the written date for the channel report, because that is when the customer decided, and keep the delivery date for operations.
Leave them out of the sales export. Every row is counted as a sale at its amount and there is no status filter, so a cancelled order left in would credit a channel for revenue that never arrived. A cancellation rate by source is not calculated.
Put the booking list in the lead file. The report then shows each channel's appointments beside the order value they became rather than what they cost, which is the number that should be deciding the budget.
Because it sells to people who already bought from you, and second furniture orders are large. Ranked on revenue rather than clicks, a customer list routinely outperforms channels with far more traffic behind them.
Yes, with a category column mapped as Product / service so they show as their own line. They often carry better margin than large upholstery orders, and a blended figure leans toward whichever source sells the biggest ticket regardless of what it earns.
More than expected. Someone who walks in has usually rung about stock or delivery first and left a number doing it, so the genuinely untraceable share is generally smaller than the floor believes.
Nearby
Attribute phone orders, quote requests and in-store purchases to the channels that produced them — the revenue your pixel never sees.
See how it worksAttribute floor sales, phone orders and delivered beds to the channels that produced them — across a category where almost nothing closes online.
See how it worksMatch signed and completed remodels to the inquiries, showroom visits and ads that produced them.
See how it worksWhere your sales already are
Export your orders, upload your calls and leads beside them, and see which marketing produced the sales that never had a click on them.
What to exportExport your Square transactions, upload the inquiries beside them, and find out which marketing produced the people who walked in.
What to exportExport your Pinterest leads, match them against closed sales, and measure the channel across the length of the project rather than the length of a report.
What to exportFor off-marketplace campaigns, use your own tagged lead records and match them against closed sales in your own system.
What to exportExport your conversations, match them against closed sales, and find out what texting actually produced.
What to exportFrom the blog
Email platforms report attributed revenue, and the number is usually enormous. It is also the number most likely to be counting sales that were going to happen anyway — because email is the one channel whose audience is a list of people who have already bought from you.
Read the articleAffiliate and partner programs pay on the last click before a sale, which rewards whoever stands closest to the till rather than whoever found the customer. The cookie was always a weak witness. Here is how to check a partner's claims against your own closed sales, and what to pay for instead.
Read the articleTotal revenue divided by total spend feels like the honest, platform-agnostic metric. It is also incapable of telling you which channel to cut, hides the performance of everything inside it, and improves when you stop spending on the things that grow you.
Read the articleStart today
Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.