“Yardi has its own marketing reporting.”
It reports on the sources recorded against the guest card. This adds the campaign and keyword underneath them, and ranks everything on rent actually billed.
For Yardi
Match signed leases and the rent they earn over a tenancy to the campaigns and calls that produced the resident.
CloseRev reads a Yardi export of signed leases — resident contact detail, the rent billed or lease value and the lease start date — and matches it against the inquiries and calls that produced the applicant. It answers which marketing produced leases rather than which produced tours, and those two rankings routinely disagree. Leases that match no inquiry stay in Direct / Unknown.
Page updated September 24, 2026.
The gap
Your syndication feeds report leads. Your ad account reports clicks. Yardi reports rent. Nobody reports which clicks became rent.
What was sold, to whom, and for how much.
The click, the keyword, the call, and what each one cost.
The file
Three things carry the match: who, how much, and when. Anything else is optional and only changes how the report can be sliced.
The applicant or resident contact. Both are worth exporting — people apply from a personal address and are billed at the unit.
Billed rent is the strongest measure because it accounts for concessions. Lease value works where billing is not easily exported.
Lease start for acquisition, billing dates for the tenancy. Either works if used consistently.
Studios and three-bedrooms rarely come from the same channels, and properties differ more than portfolios admit.
Step by step
Written for somebody with Yardi open in the next tab. Report names vary by edition, so each step says what to look for.
One row per lease or per billing period, with the resident's contact detail, the amount and a date.
A free month changes what a lease is worth. Billed rent handles it automatically; lease value does not, so say which you are using.
A unit number cannot be matched to a click. The resident's phone or email is the join.
Mapping is suggested and confirmed by you, with manual mapping always available.
Paid search, paid social, syndication feed inquiries, locator and broker referrals — in one lead file with the source named on each row, each ranked on rent rather than on leads.
What comes back
Revenue by channel, the count of sales behind each figure, and an honest bucket for the ones nobody could trace. Sample figures, from the worked example on the Apartment Communities page — not from a Yardi account.
| Channel | Share | Sales | Revenue |
|---|---|---|---|
| ILS portals | 204 | $428,400 | |
| Google Ads | 107 | $226,800 | |
| Meta Ads | 49 | $100,800 | |
| Direct / Unknown | 241 | $504,000 |
Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.
The argument
Listing syndication is the backbone of multifamily demand generation and it reports what it can see: impressions, inquiries, sometimes tours. It cannot see which of those inquiries signed, what they signed for, or whether they renewed.
That is not a criticism of the feeds. It is the same boundary every upstream channel has: the revenue is in the property management system and never crosses back. The consequence is that a channel producing many inquiries and few leases looks strong indefinitely.
Reconciling signed leases against the inquiry sources ranks them on rent. Add the syndication inquiries to the lead file under the feed's name and it competes with paid search on the same measure, which is a comparison no feed provider will hand you.
A free month, a reduced deposit, a gift card at signing — concessions are routine, and they are not uniform across channels or across the year. A report built on advertised or lease rent overstates every channel, and overstates them unevenly.
Billed rent is the honest measure and it is the one that reconciles to the owner's statements. On a lease-up especially, where concessions are heaviest, the difference between the two is large enough to change which channel is funded.
A resident who renews twice is worth three times the lease the marketing is credited with. Treating each renewal as a new event credits nobody; ignoring it undercounts the acquisition.
Matching on the resident attaches the whole tenancy to the original channel. A channel whose residents renew is separated from one whose residents leave at month twelve, which is invisible on any per-lease measure and is frequently the largest real difference between two sources.
A portfolio spanning markets, vintages and price points has no meaningful average cost per lease. The city asset and the suburban one draw on different demand and respond to different channels.
A property column mapped as Location shows each site's leased revenue and how much of it traced to a channel, and a unit-type or care-type column can take the Product / service slot beside it — assisted living against independent living, for senior housing operators on Yardi.
Most multifamily marketing spend is acquisition, but a meaningful share of net operating income comes from residents who renew. The two are managed by different people, measured differently, and routinely blended in any report that starts from lease count.
Because the match attaches the whole tenancy to the acquiring channel, renewals arrive as further revenue against the same resident and the same original source. To see them apart from first leases, map a new-or-renewal column as Product / service.
That lets an asset manager ask a question that is normally unanswerable — whether a more expensive acquisition channel pays for itself through longer tenancies — and get an answer from billed rent rather than from an assumption.
Fair questions
It reports on the sources recorded against the guest card. This adds the campaign and keyword underneath them, and ranks everything on rent actually billed.
Then the report will show that, on revenue rather than on leads — which is the first time that comparison has a common unit.
A property column mapped as Location cuts the revenue by site. The portfolio average is exactly the number this is designed to replace.
Signed leases or the rent roll: a resident phone or email, the amount, and a date.
Billed rent, because it accounts for concessions and reconciles to owner statements.
Yes, and they credit the channel that produced the resident originally.
Yes — feed inquiries go into the lead file under the feed's name and rank on rent beside paid channels.
Yes — map a property column as Location.
Yes, with a unit-type column.
Yes. Add a care-type column so assisted living and independent living are not averaged.
No. It works from a CSV export, so nothing is authorized.
Twelve months at minimum; a full lease cycle is better.
A lease export with a contact detail, a rent figure and a start date. No payment history, no maintenance records, no screening results. What you upload is encrypted in transit and at rest, scoped to your workspace, and erased along with the file when the import is deleted.
Yes. Renewals appear as continuing revenue against the same resident and the same acquiring channel; map a new-or-renewal column as Product / service to see the two apart.
Yes, with a care-type column so assisted living and independent living are not averaged together.
Yes — add their placements to the lead file, each under its own source name, and they rank on billed rent beside paid search and the feeds.
Put the application email and the billing phone on the same row if that is what each record holds. The match reads one email and one phone per row, either can join, and nothing is linked on a guess.
Not as its own figure. Billed rent already nets concessions out, so a channel that needs heavy discounting shows up with less rent per lease.
Yes. Map a property column as Location and the revenue is cut by site while the portfolio total stays available.
Then those inquiries cannot be matched and are reported honestly as unattributed. Capturing an email or phone at the guest card is the single change that improves the match rate most.
By trade
What the report looks like once the export is in, written for each one.
Other systems
Running more than one system, or comparing? The method is the same and the columns are not.
Yardi and the other product names and logos on this page belong to their owners and are shown to identify the software a file comes from. CloseRev is not affiliated with or endorsed by them, and connects to none of them: it reads a file you export.
From the blog
A 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 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 articleThe cheapest leads you buy can turn into your most expensive customers. Customer acquisition cost by channel divides what a channel cost by the new customers it actually produced, and for a business that closes by phone or in person those customers live in the sales records, not the ad dashboard. Here is the formula, which customers to count, fully loaded against paid-media CAC, blended against per-channel, untraced customers, payback and time lag, with a worked example where cost per lead and CAC rank four channels in different orders.
Read the articleStart today
Nothing to install in Yardi, no API key, and no need to have been tracking anything until now. Last year works as well as this month.