If you search for commercial real estate comps, the first problem is that everyone uses the word "comps" differently.
One broker may mean closed sales.
Another may mean lease transactions.
An investor may mean active asking prices.
An analyst may mean a quick market file before underwriting.
Those are not the same dataset.
That distinction matters because it changes which sources you should use, which fields you should trust, and whether a listing export is enough.
The three types of CRE comps
1. Closed sales comps
A real sales comp is a completed transaction.
At minimum, it should include:
- property address
- asset type
- sale date
- sale price
- price per square foot
- transaction size
- cap rate, when available
- NOI or income context, when available
- buyer / seller, when available
This is the comp type most people want for valuation.
It is also the hardest to get cleanly because public records can lag, details are often incomplete, and the financial assumptions behind a cap rate may not be visible.
CompStak makes this distinction clearly: a true commercial sales comp should contain more than an address and a price. It needs transaction context.
2. Lease comps
Lease comps are even more specific.
A useful lease comp usually needs:
- tenant name
- space type
- square footage
- starting rent
- effective rent, if available
- lease term
- execution or commencement date
- concessions, when available
- lease type
This is why many "comp" exports are not enough for serious leasing work.
A current asking rent is useful, but it is not the same thing as an executed lease comp.
3. On-market comps
This is where public listing platforms such as LoopNet and Crexi become useful.
They are not always giving you closed transaction comps.
But they are very useful for a first-pass view of:
- what is currently listed
- asking price or rent
- available square footage
- asset class
- broker contact
- days-on-market when available
- cap-rate context when the listing exposes enough data
For brokers and acquisition teams, this can be enough to build a first-pass market file.
Not a final valuation file.
Not a closed-comps database.
But a clean working list.
The mistake: treating every listing like a comp
An active listing is not proof of market value.
The asking price may be aspirational.
The cap rate may be based on projected NOI.
The rent may be "upon request."
The broker may have more context than the public listing shows.
Adventures in CRE points out that real comps need context around market conditions, pricing metrics, cap-rate assumptions, and property condition.
That is the right frame.
The listing is the start of the research process, not the end.
A practical workflow for brokers
For a broker, analyst, or investor doing first-pass research, I would separate the workflow into four layers.
Layer 1: build the market file
Pull active listings from the market you care about.
Example:
Market: Miami, FL
Asset class: retail + land
Sources: LoopNet + Crexi
Transaction type: sale + lease
Output: CSV / Excel / API
At this stage, the goal is coverage and structure.
You want one table with:
- address
- city / state / ZIP
- source link
- source platform
- listing ID
- asset class
- transaction type
- asking price or rent
- pricing status
- building size
- lot size
- days-on-market
- broker fields
Layer 2: clean the data
This is where raw exports usually break.
The same property can appear on both platforms.
Address formats vary.
Some listings have disclosed prices.
Some have undisclosed prices.
Some show cap rates.
Some show NOI.
Some have broker phones or emails.
Some only show a profile link.
So the market file needs explicit status fields, not just blanks.
For example:
{
"pricing_status": "lease rent not publicly disclosed",
"broker_contact_status": "phone/email available",
"cap_rate_source": "listed cap rate",
"enrichment_status": "broker_enriched"
}
That is much easier to review than a CSV full of empty cells.
Layer 3: separate on-market signals from true comps
This is the key.
Use LoopNet + Crexi data to understand the current market.
Use closed transaction data, broker calls, public records, RPR, CoStar, Crexi Intelligence, CompStak, or local market knowledge to validate true comps.
The two workflows should inform each other, but they should not be merged blindly.
RPR makes a similar distinction between on-market comps / current asking lease rates and recently sold comps.
That is how brokers should think about it too.
Layer 4: track the delta
A static market file is useful once.
A recurring market file is more useful.
For example:
First run:
- all matching active listings
Next run:
- new listings
- removed listings
- changed price/rent
- changed broker info
- newly available contact fields
For many brokers, the delta is more valuable than the export.
They do not just need "all listings."
They need to know what changed since the last time they checked.
Where automation fits
This is where I use Apify.
I built an actor called Commercial Real Estate Brokerage Intel for this first-pass market-file workflow.
It pulls public LoopNet + Crexi listings into one structured dataset with:
- source links
- cross-platform deduplication
- pricing/rent status
- cap-rate context
- days-on-market when available
- broker fields when publicly exposed
- CSV / Excel / JSON / API output
It is not a replacement for a closed-comp database.
That would be the wrong claim.
It is better described as a way to turn public on-market listing research into a cleaner working file.
That file can then feed broker calls, underwriting, market scans, Google Sheets, a CRM, or a lightweight dashboard.
The short version
If you are trying to find commercial real estate comps, do not start by asking:
"Where can I get one perfect database?"
Ask:
"Which kind of comp am I actually looking for?"
Use:
- closed sales comps for valuation
- lease comps for leasing assumptions
- on-market comps for current pricing and availability
- recurring market files for change detection
LoopNet and Crexi are useful for the on-market layer.
They become much more useful when the output is structured, deduplicated, and explicit about what is known vs. unavailable.
That is the difference between a listing export and a usable CRE market file.
Top comments (0)