“DoorLoop already shows our rent roll.”
It does, and it has no record of which listing produced the tenant, because that predates the lease.
For DoorLoop
Export leases from DoorLoop, upload the enquiry sources behind them, and rank listings on days vacant and lease value.
No API key Nothing to install in DoorLoopNothing to install No card requiredNo card
CloseRev reads a DoorLoop export of lease and rent records — the tenant's phone or email, the amount and the date — and matches it against the listing sites, ads and enquiries that produced the applicant. For a small portfolio the question is rarely which channel is cheapest and nearly always which fills a unit fastest with a tenant who stays. Revenue with no traceable enquiry is reported as Direct / Unknown.
Last checked against DoorLoop's own documentation on September 24, 2026.
The gap
Listing sites charge by the listing and cost you by the week they fail to fill it.
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.
On the tenant or applicant record, captured at enquiry rather than reconstructed at signing.
Monthly rent and the number of months. Their product is the lease value, which is the unit worth ranking.
Both. The interval between them is days vacant, which is the real cost of a slow channel.
Which unit was filled. A portfolio average hides that one property is always slow and the rest are not.
Step by step
Written for somebody with DoorLoop open in the next tab. Report names vary by edition, so each step says what to look for.
One row per lease with a tenant contact detail, the rent, the term and the start date.
Without it there is no days-vacant figure, and days vacant is the number this trade actually loses money on.
Listing sites, the property website, signage with a tracked number, and any agent or referral arrangement.
Residential leasing is seasonal, and a quarter compares months rather than channels.
The join runs on the phone and the email, normalised, with renewals reported separately from new leases.
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 Property Management page — not from a DoorLoop account.
| Channel | Share | Sales | Revenue |
|---|---|---|---|
| Google Ads | 41 | $148,500 | |
| Meta Ads | 12 | $40,500 | |
| Referral partners | 22 | $76,500 | |
| Direct / Unknown | 52 | $184,500 |
Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.
The argument
A unit at fifteen hundred a month loses fifty pounds a day empty, which is more than most listings cost for a month.
That makes speed the dominant variable, and a channel producing fewer but faster applicants can be worth far more than one producing many slow ones.
Listing platforms report views and enquiries because those are what they can see; none of them knows when the unit was actually filled.
Matching the lease back to the enquiry source, with the listing date carried through, gives days vacant per channel, which is the figure a landlord loses money on.
For a small portfolio it is frequently the only figure that matters, because the listing fees themselves are a rounding error beside two weeks of vacancy.
Screening takes time, and a channel producing applicants who fail credit or income checks is consuming that time while the unit stays empty.
Counted only on signed leases, that channel looks merely unproductive; counted with its failed applications, it is actively expensive.
Keeping unqualified applicants in the enquiry file makes the real cost per signed lease visible for each source.
It also identifies where the screening criteria and the listing copy disagree, which is usually fixable in an afternoon.
That is a cheaper remedy than changing channel, and it is invisible without the failed applications in the file.
A twelve-month lease and a rolling monthly agreement are different amounts of revenue and different amounts of future work.
Sources differ in what they produce: a corporate relocation channel and a general listing site bring tenants with very different intentions about length.
Ranking on lease value rather than on rent captures that, and the report sums by lease rather than by monthly payment.
Renewals are kept separate, because a renewal is retention and crediting it to the original listing would make every channel look excellent.
Whether a source's tenants renew is itself one of the better findings available, and it takes a second year of data to see.
A manager growing the portfolio is also marketing to owners, and those enquiries arrive through the same website as the tenant enquiries.
Pooled, the tenant volume swamps the owner signal entirely, and the channels that produce owners look ineffective because they produce few enquiries.
Separating the two funnels at the lead file is essential, and the management fee rather than the rent is the revenue side for the owner half.
Most small managers have never run that second report, and it is the one that decides whether the business grows. Filling units keeps this year's income; winning owners is next year's, and they are bought through entirely different channels at entirely different prices.
Fair questions
It does, and it has no record of which listing produced the tenant, because that predates the lease.
They report enquiries. None of them knows when the unit was filled, which is where the money is.
Then two weeks of vacancy is a large share of the year's income, which is the argument for measuring rather than against it.
No. It reads an exported file, so your leases, tenants and accounting stay where they are.
Leases with a tenant contact detail, the rent, the term and the start date.
Because days vacant is what a slow channel actually costs, and it is far larger than any listing fee.
Yes. Screening them costs time while the unit stays empty, and a source producing many is expensive.
A twelve-month lease and a rolling agreement are different revenue, and sources produce them in different proportions.
Separately. A renewal is retention and crediting it to the original listing would flatter every channel.
A full leasing cycle, because residential leasing is seasonal.
Yes, where the export carries one. A portfolio average hides the one property that is always slow.
A separate funnel with management fees as the revenue side. Pooled with tenant enquiries it disappears.
Any lease with no traceable enquiry, usually signage and word of mouth.
A contact detail, a rent, a term and a date. No applications, no screening results, no payment records, no lease documents. Encrypted in transit and at rest and deleted with the import.
Lease value per source with days vacant beside it, new leases and renewals apart, and everything unmatched kept visible.
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.
DoorLoop 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.
Start today
Nothing to install in DoorLoop, no API key, and no need to have been tracking anything until now. Last year works as well as this month.