Rent over the stay, not one deposit
A move-in is judged on the months it actually billed, so a channel that produces longer stays stops looking the same as one that does not.
Marketing attribution for senior living operators
Match move-ins and the rent they earn over a resident's whole stay to the campaigns that produced the inquiry.
$873,500 59% of $1,480,000 paid
The blind spot
You know exactly what a referral agency charges per move-in, because they invoice you for it. What your own website costs per move-in is a guess.
What you get
A move-in is judged on the months it actually billed, so a channel that produces longer stays stops looking the same as one that does not.
The cycle runs a hundred days and more, so this month's move-ins came from last spring's spend. The match follows the inquiry date, not the move-in date.
Only exact matches count automatically. The one weaker link, the same national number under a different country code, is flagged for a person rather than quietly counted.
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 | 3 | $385,000 | 26% | |
| Referral agencies | 3 | $311,000 | 21% | |
| Meta Ads | 1 | $103,500 | 7% | |
| Community events | 1 | $74,000 | 5% | |
| Direct / Unknown | 5 | $606,500 | 41% |
A placement agency's fee is roughly one month's rent — commonly three to five thousand dollars — and it arrives as an invoice tied to a named resident. That makes it the one channel in the whole mix with an honest, countable cost per move-in.
Every other channel is measured in inquiries. So the comparison an operator actually wants to make — what a move-in from our own website costs against what the agency charges for one — cannot be made, and the aggregator keeps the volume by default.
Matching move-ins back to the inquiry that produced them puts both on the same axis. Sometimes the answer is that the agency is good value. Either way it is a number rather than a feeling, and it is the number a board asks about.
Two channels can produce move-ins at the same cost while one produces residents who stay nine months and the other residents who stay two years. Cost per move-in scores them identically and is wrong by more than double.
Because the match is on the resident rather than a session, every month billed credits the channel that produced the inquiry. Level-of-care increases credit it too, which is where much of the revenue growth in assisted living actually comes from.
The person who fills in the form is an adult child, often in another state, and the person on the billing record is their parent. A naive join on name finds nothing and the report reads as though the website produced no move-ins at all.
Matching runs on the contact detail that appears in both files — the inquiring family member's phone or email, which the CRM keeps on the prospect record and the community keeps on the responsible party. Where the two records share no contact detail, nothing is assumed: the move-in stays unmatched rather than being linked on a surname.
An operator is judged on occupancy, but occupancy is a net figure: move-ins less move-outs. A community holding ninety per cent with a three-year average stay needs a handful of move-ins a month. The same community at ninety per cent with an eighteen-month average stay needs twice as many, out of the same market, on the same budget, with the same sales team. Marketing performance means very little without that denominator sitting next to it on the page. Two communities at identical occupancy can have entirely different marketing problems.
Because later billing credits the channel that produced the inquiry, the report answers the question directly: what did a source's residents bill in total, across however long they stayed. A channel producing residents who arrive at a higher level of care and stay a shorter time can cost the same per move-in as one producing residents who stay for years, and be worth a fraction as much to the building. Nothing in a cost-per-move-in report can see the difference. It was never built to look past the day somebody arrived.
Length of stay is not computed and a move-out date is not read, but the comparison still shows up in the money. Each month's rent and care charges for a resident are rows that credit the channel that produced the original inquiry, so over a long range a channel whose residents stay keeps accumulating revenue while one whose residents leave early stops. None of this needs a clinical field; it uses billing the community already produces. In a business where the cost of filling a unit is high and endlessly repeated, running the report over several years is the reading with the longest practical reach for next year's budget.
Senior living demand arrives through an unusually wide set of doors: paid search, a portal, an agency, a hospital discharge planner, a physician's office, an event in the dining room, a mailing to a ZIP code of homeowners over seventy-five. Only some of those are advertising, and the ones that are not are frequently the ones producing the move-ins that keep the census where the owner wants it. They are also the ones nobody has ever costed, because nobody ever sent an invoice for them.
Any list of people with contact details can go into the lead file, tagged with its source. An event registration sheet, an agency's placement list, the direct mail response file, the professional referral log a community relations director keeps by hand in a notebook. Each becomes a channel and is ranked on revenue beside paid search. It may be the first time those things have appeared on one page with a dollar figure next to each of them rather than as a line in a narrative report.
It works because nothing had to be instrumented in advance. Every one of those lists was kept for an operational reason, to send a reminder or pay an invoice or follow up a lunch, and each is a perfectly good record of who was reached and when they were reached. The reconciliation asks nothing more of them than a phone number or an email address and a date, which is why a list assembled for a different purpose entirely still works.
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
It reports which picklist value somebody chose, against a move-in count. It does not hold the rent that move-in went on to bill, because that is in the billing system.
Then the report says so, in a Direct / Unknown bucket that stays honest rather than being spread across the paid channels.
Two CSVs is the normal case, not the exception. The match joins them on the contact detail they share.
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 assisted living and senior housing operators — 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.
Move-ins or billed revenue: a responsible-party email or phone, the amount, and a date. Nothing clinical.
Ongoing rent counts, and it credits the channel that produced the original inquiry.
No. The match is on the person, so the gap between inquiry and move-in does not matter.
Yes: a community column mapped as Location.
Yes — add the agency's placements to the lead file, tagged with the agency, and it ranks on the same axis as paid search.
Not with a column: whether somebody lives in assisted living or memory care is health information and stays out of the export. A community column mapped as Location is the breakdown to use where they are separate buildings.
No. If you use it, its export works as the second file.
Encrypted in transit and at rest, isolated per workspace, deletable in one click, DPA available.
Yes. Nothing had to be installed at the time — that is the point of working from exports.
No. Phones and emails are normalized before matching and each move-in is credited once, to the earliest record sharing its phone or email, so duplicates of the same contact do not double-count. Records for different family members link only where they share a contact detail.
Yes. Any list of people with contact details can go into the lead file, tagged with the event, and ranks on move-in revenue beside paid search — possibly the first time an event has been costed against anything.
They are optional and worth including. With them the report ranks channels on length of stay as well as revenue, which in senior living is often the larger of the two differences between sources.
Include them as separate rows against the same resident; every one of them credits the channel that produced the original inquiry. Do not label them with a column: a care-level charge is health information and stays out of the file.
Often the split between branded search and everything else. Because the earliest record is credited, move-ins that branded search used to claim can move back to the campaigns that produced the first inquiry, and the Direct / Unknown bucket shows how much arrived with no recorded source at all.
Whoever can run a billing or census export, and whoever holds the inquiry list. It is two exports and an upload rather than a project, and nobody has to change how the sales team works.
CloseRev does not sign HIPAA Business Associate Agreements and is not built for protected health information. Upload only billing data — a family member's phone or email, the amount and the date — never care assessments, diagnoses, medication records or care notes. If those phone numbers and emails count as PHI under your obligations, talk to your compliance lead before using CloseRev.
Nearby
Match move-ins and the rate they bill to the inquiry that started it, when that inquiry came from a family in crisis.
See how it worksMatch move-ins and the contracted rate they pay to campaigns that ran the better part of a year earlier.
See how it worksThe family is free, the community pays, and the fee lands months later. Match the payment back to the advertisement.
See how it worksWhere your sales already are
Join the referral source to the hours actually billed — the join most agencies are currently doing by hand in a spreadsheet.
What to exportMatch move-ins and the rent they earn to the campaigns that produced the inquiry — and price that against the agency's fee.
What to exportMatch signed leases and the rent they earn over a tenancy to the campaigns and calls that produced the resident.
What to exportCallTrackingMetrics attributes the contact. Match those contacts against your sales export and rank channels on the money rather than on the volume.
What to exportExport billed residents, upload the inquiries that preceded them, and rank marketing on admissions rather than on tours booked.
What to exportExport your call records, match them against closed sales, and find out which sources produced calls that became invoices.
What to exportExport inquiries from Aline CRM, match them against move-in revenue, and rank sources over the length of the decision rather than the quarter.
What to exportCallRail tells you which campaign produced the call. Match the caller against your sales export and find out which calls became money.
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 articleA multi-location business that reports one national attribution number is hiding its most important finding. The same campaign performs differently in every market, and the aggregate is an average of things that should never have been averaged.
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.