Profit, not contracts signed
A contract that never assigns is worth nothing. The report ranks channels on fees and spreads actually collected.
Marketing attribution for Real Estate Investors
Match assignment fees and resale profit to the campaign that produced the seller, months and a renovation later.
$1,788,500 43% of $4,160,000 paid
The blind spot
Your lead is a seller, not a buyer, and your revenue is a spread that lands five months later. Nothing measures that.
What you get
A contract that never assigns is worth nothing. The report ranks channels on fees and spreads actually collected.
Acquisition, renovation and resale put months between the lead and the money. The match is on the seller, so the gap costs nothing.
Direct mail, cold calling and paid search all produce sellers. Put each in the lead file under its own source and they rank on the same measure.
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 | 27 | $915,000 | 22% | |
| Direct mail | 29 | $998,500 | 24% | |
| Cold outreach | 17 | $582,500 | 14% | |
| Meta Ads | 9 | $291,000 | 7% | |
| Direct / Unknown | 40 | $1,373,000 | 33% |
Almost every other property business advertises to buyers and renters. An investor advertises to owners who want out — inherited property, distressed situations, tired landlords — and the conversion is a purchase, not a sale.
That inversion matters for measurement because the revenue does not arrive at the conversion. Money goes out when the property is bought, more goes out during renovation, and the spread only appears at resale, commonly five to six months later.
Ranking channels on contracts signed therefore rewards volume that may never monetize. Matching resale profit and assignment fees back to the seller lead measures what each channel actually produced.
Direct mail, skip-traced calling and texting are a large share of acquisition spend in this business, and none of them appear in an advertising platform. Paid search is usually the minority of the budget and all of the reporting.
Adding a mail drop list or a call campaign to the lead file, tagged with its source, puts it on the same axis as Google Ads. That comparison can be the one that changes the budget, because it may be the first time the two have been priced against the same outcome.
Getting a property under contract feels like the finish line and is not. Title work turns up an heir who did not sign, a lien nobody disclosed, or a boundary that was never properly recorded. The seller's family intervenes. An inspection finds a foundation problem that changes the numbers past the point of interest. A competing investor makes a better offer during the option period. A meaningful proportion of everything signed never reaches a settlement table, and the proportion is not the same across lead sources.
That matters because cost per contract is the metric acquisitions teams actually manage to, day by day. It is available immediately, it is what the acquisition manager is bonused on, it is what appears on the board in the office, and it is what gets reported upward on a Monday morning. A channel that produces distressed sellers in complicated situations will look excellent on that measure and considerably worse on the one that pays the bills, and the lag between the two is long enough that the budget has usually already been committed again.
Ranking on assignment fees and resale profit actually collected removes the flattery in one step. A source with high contract volume and a poor completion rate is producing sellers who cannot or will not close, which is a lead quality problem wearing the costume of an acquisitions success. It is expensive in a way the contract count cannot show, because it consumes the scarcest resource the business has: the time of the people who have to unwind a deal, and the reputation with the title company that has to keep opening files that go nowhere.
Acquisition in this business is rarely a single campaign. A list is pulled from public records, skip traced for numbers, mailed, mailed again, texted, called by a virtual assistant, mailed a fourth time, and eventually somebody rings back about a letter they received months earlier and set aside on the kitchen counter. Investors know this perfectly well and plan for it, which is why the same list gets worked for a year or more before it is retired, and why the mail budget is committed well ahead of any response it will generate.
The measurement problem follows directly from that cadence. Whichever touch the seller happens to mention on the call, or whichever campaign was running the week the phone rang, receives the credit, and the eleven months of cost that actually produced the relationship are written off against a different line in a different month. Two lists with identical cost per lead can therefore have completely different economics once the cadence is accounted for, and the one that responds slowly is the one most likely to be cancelled before it pays.
Putting each list in the lead file under its own source, with the mail drop or dial campaign named on it, ranks them on collected profit rather than on which one happened to be live when the phone rang. Because the match is on the seller rather than on a response window, a caller who came in on a letter from the previous year still credits the list that first put their name into the pipeline, and where a seller sits on several lists the earliest record is the one credited. That is the whole argument for the slower lists, and until now it has been made from memory rather than from records.
Investors think of marketing as seller acquisition, and of dispositions as an operational matter handled by a phone call to the usual cash buyers. But the price achieved on the exit is half the spread, and the exit channel varies a great deal: a repeat cash buyer who closes in nine days at a discount, a retail listing that sits for six weeks and nets more, an auction platform, a novation, a rental buyer who wants a tenant already in place. The choice is made quickly and almost never measured afterwards.
Each of those routes produces a different net number on the identical property, and each one is reachable, marketed to, and in several cases paid for through a platform fee or a commission. The buyer list has usually been built over years of transactions and has never been valued against anything at all, because nobody in the business thinks of a cash buyer database as a marketing channel with a return attached to it. It is treated as plumbing rather than as an asset, which is why it is never in the report.
Putting the cash buyer list in a lead file against resale proceeds, rather than against acquisition cost, puts the exit routes in order by what they actually realized on comparable stock. Because the report adds up every row in a workspace, that disposition view belongs in a workspace of its own, so resale proceeds are not added to acquisition profit. There may be more room on the dispositions side than on the acquisition side, which is the opposite of where the attention goes. It is also the side that is rarely measured, because the money in this business is assumed to be made at the purchase and the sale is treated as a formality.
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
Some do, on the sources typed into their own dropdown. This ranks the keyword and campaign underneath that, and on profit rather than contract count.
Add the mail list to the lead file, tagged with the drop. Being able to compare mail against search on collected profit is the main reason to do this.
Export net profit rather than the spread and the report uses your number. The column is yours to choose.
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 cash home buyers, wholesalers and fix-and-flip investors — 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.
Closed deals: a seller phone or email, the fee or profit, and a closing date.
Net, if you can export it. The spread before renovation overstates every channel by roughly the same amount.
Yes: map a deal-type column as Product / service — their economics are not comparable.
Yes. A mail drop list goes into the lead file, tagged with the drop.
Yes, if the lead date and closing date are both exported.
Yes: a market column mapped as Location.
Yes. Nothing needed to be installed when those closings happened, which is the whole reason this works on history.
It is encrypted in transit and at rest and isolated per workspace, so no other account can reach your clients. Deletion is immediate and a DPA is available. Deal analyses and sellers' circumstances can stay out of the export.
Deals closed. A significant share of signed contracts fall apart on title, inspection or a seller changing their mind, and the fallout rate differs enough by source to reverse the ranking.
Put each list in the lead file under its own source. Because the match is on the seller rather than a response window, a caller who rings about a letter from eleven months ago still credits that list, and a seller on several lists credits the earliest.
Yes, in a workspace of its own so resale proceeds are not added to acquisition profit: the cash buyer list as the lead file, resale proceeds as the sales file. That database is rarely valued against anything, and it decides half the spread.
Only if the two connect. Each row carries one phone and one email, so put the skip-traced number and the callback number on separate lead rows for the same seller and source; the sale then matches whichever number its own row carries.
Yes, with the assignment fee as the amount. Leaving them out understates whichever channel produces the contracts you assign rather than the ones you take down yourself.
Partly: a market column mapped as Location shows each market's collected profit and how much of it traces to a channel. List quality, competition and mail response differ enough between markets that a single blended figure guides spending in none of them.
Nearby
Match points, interest and repeat originations to the campaigns that produced the borrower the first time.
See how it worksMatch closed transactions and commission to the inquiries and ads that produced them, however many months earlier that was.
See how it worksMatch sold lots and the commission they earned to the campaigns that produced the registered bidder.
See how it worksWhere your sales already are
Export management fees from Propertyware, upload your owner lead sources, and rank marketing on the doors it actually won.
What to exportExport leases from DoorLoop, upload the inquiry sources behind them, and rank listings on lease value rather than on inquiries.
What to exportExport management fees from Buildium, upload the inquiries and proposals behind them, and rank sources on the contracts they actually produced.
What to exportFrom 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 articleFor a local business the Google Business Profile is often the busiest front door it has: the call button, the directions, the website link. It reports taps, not customers, and since July 2024 it no longer keeps even a list of who rang. How to find out what the listing is actually worth.
Read the articleFor a business that sells by phone, a missed call is a lead that was paid for and then dropped. It also quietly rewrites channel ROI: the channel whose callers ring after hours looks weaker than it is. Here is how to measure missed calls and callback speed from a call log, and how to report them without inventing revenue.
Read the articleStart today
Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.