LoopNet Cap Rate Lens — NOI, Yield & Cash Flow avatar

LoopNet Cap Rate Lens — NOI, Yield & Cash Flow

Pricing

from $28.00 / 1,000 analyzed listings

Go to Apify Store
LoopNet Cap Rate Lens — NOI, Yield & Cash Flow

LoopNet Cap Rate Lens — NOI, Yield & Cash Flow

LoopNet cap rate calculator for commercial investors. Pulls asking price, NOI and listed cap rate, then prints yield, DSCR and cash-on-cash under your down payment, rate and expense assumptions. Local ZHVI and the live 30-year conforming rate sit next to the math so nothing is a black box.

Pricing

from $28.00 / 1,000 analyzed listings

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

SIÁN Agency Store Sibling 1 Sibling 2 Sibling 3

Printed cap-rate math for one LoopNet listing

Built for commercial buyers who refuse a black-box score

What is the LoopNet Cap Rate Lens — and when should you use it?

The LoopNet Cap Rate Lens turns a LoopNet for-sale listing into a row you can defend in a memo. It reads asking price, listed NOI and listed cap rate. Then it prints yield, DSCR and cash-on-cash under the down payment and rate you set.

Use it when you need: cap rate, NOI, gross yield, cash-on-cash, DSCR, and the exact inputs behind each number.

Use something else when: you want a raw LoopNet search feed, broker phones or traffic counts. Use LoopNet Property Scraper for inventory, not underwriting.

Use with AI agents

Already connected to the Apify MCP server? Ask for this Actor by name: sian.agency/commercial-investor-lens

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

I want a printed cap-rate report for a US commercial listing using the Apify Actor `sian.agency/commercial-investor-lens`.
Use it when I need: asking price, listed NOI, cap rate, gross yield, cash-on-cash and DSCR.
Don't use it when: I only want a LoopNet search feed — use LoopNet Property Scraper instead.
How to call it: paste a LoopNet listing URL. Optionally set downPaymentPct, rateOverride and expenseRatio.
Start with this input:
{
"loopnetUrl": "https://www.loopnet.com/Listing/11403-E-Northwest-Hwy-Dallas-TX/41581120/",
"downPaymentPct": 25,
"expenseRatio": 0.35
}
Ask me for the listing URL and my down payment, then run the Actor and summarise cap rate, cash flow and cash-on-cash as a table.

Things you can ask your agent for:

  • Underwrite this Dallas NNN listing at 25% down and today's 30-year rate
  • Compare two LoopNet URLs on cash-on-cash under the same assumptions
  • Show the formula block so I can paste it into an IC memo

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/commercial-investor-lens.md.


Overview

Paste a LoopNet URL. Get the same spreadsheet a buyer would build by hand.

Why teams use it:

  • ✅ Listed NOI first: if the listing prints NOI, that number is the NOI. We do not overwrite it.
  • ⚡ One run, three cases: base, conservative and aggressive sit on the same row.
  • 🎯 Cap rate you can audit: NOI / price, with both inputs on the row.
  • 💰 Pay per listing: you are charged for analyzed listings, not for empty errors.
  • 💎 Rate source named: override, live 30-year conforming, or the documented fallback.
  • ✨ Residential context, labeled: city ZHVI sits next to the CRE math and is never treated as an appraisal.

Features

  • 📊 Cap rate calculator: NOI divided by asking price. The formula is on the row.
  • 📒 NOI source tag: listing_noi or implied_from_listed_cap_rate.
  • 📈 Gross yield: listed NOI grossed up by your expense ratio.
  • 💸 Cash-on-cash: annual cash flow / down payment.
  • 🏦 DSCR: NOI / annual debt service.
  • 🏠 Market tape: typical home value and days-to-pending for the listing city.
  • 📋 Copy-ready formula block: in the HTML report, ready for a memo.
  • 🚀 Bulk URLs: unique LoopNet links, same assumptions on every row.

Quick Start

Open the actor. Keep the sample Dallas URL. Hit Start. Open the dataset and the HTML report.

curl -X POST https://api.apify.com/v2/acts/sian.agency~commercial-investor-lens/runs?token=[YOUR_TOKEN] \
-d '{"loopnetUrl": "https://www.loopnet.com/Listing/11403-E-Northwest-Hwy-Dallas-TX/41581120/"}'

Getting Started (3 Simple Steps)

Step 1: Paste a LoopNet listing

Copy a for-sale URL from LoopNet.

Step 2: Set the capital stack

Down payment, optional rate override, expense ratio.

Step 3: Run and open the report

The hero shows cap rate, price and yield. The formula block names every input.

That's it. In about a minute you'll have:

  • Cap rate checked against listed NOI
  • Cash-on-cash and DSCR under your loan
  • A copy-ready arithmetic block

Input Configuration

FieldTypeRequiredDescription
loopnetUrlstringNoLoopNet listing URL
listingIdstringNoNumeric LoopNet id
addressstringNoUsed only when no URL is set
bulkUrlsarrayNoExtra listing URLs
downPaymentPctintegerNoDefault 25
rateOverridenumberNoAnnual percent. Empty = live 30-year
expenseRationumberNoDefault 0.35
loanYearsintegerNoDefault 30
includeMarketContextbooleanNoDefault true

Example:

{
"loopnetUrl": "https://www.loopnet.com/Listing/11403-E-Northwest-Hwy-Dallas-TX/41581120/",
"downPaymentPct": 25,
"expenseRatio": 0.35
}

Output

Results land in the dataset. The HTML report is saved as report.html.

FieldTypeDescription
capRatePctnumberNOI / asking price
askingPricenumberParsed sale price
grossYieldPctnumberEGI / asking price
annualCashFlownumberNOI minus debt service
cashOnCashPctnumberCash flow / down payment
dscrnumberNOI / debt service
listedNOInumberNOI printed on the listing
mortgageRatePctnumberRate actually used
noiSourcestringWhere NOI came from
listingUrlstringSource listing

Example:

{
"listingUrl": "https://www.loopnet.com/Listing/11403-E-Northwest-Hwy-Dallas-TX/41581120/",
"askingPrice": 4400000,
"listedNOI": 330000,
"capRatePct": 7.5,
"grossYieldPct": 11.5385,
"cashOnCashPct": 6.6505,
"dscr": 1.2848,
"mortgageRatePct": 6.75,
"mortgageRateSource": "live_30yr_conforming",
"status": "success"
}

Use Cases & Examples

1. Underwrite one NNN listing

A buyer checks whether the printed 7.5% cap is real.

Input: the Dallas drug-store URL, 25% down. Output: NOI $330,000, cap 7.50%, cash-on-cash and DSCR. Use: paste the formula block into the IC memo.

2. Stress the rate

A CI wants to see +1% on the mortgage.

Input: same URL, leave rate empty, read the conservative case. Output: base vs conservative cash flow on one row. Use: decide if the deal still clears the fund hurdle.

3. Rank a buy-box

An analyst drops five LoopNet URLs.

Input: bulkUrls plus one expense ratio. Output: one row per listing, same assumptions. Use: sort on cap rate and DSCR in a sheet.

4. Explain the math to a partner

A broker has to show work, not a score.

Input: one URL. Output: named formulas and every input. Use: forward the HTML report.

5. City tape next to the deal

A fund wants ZHVI context beside the CRE numbers.

Input: includeMarketContext true. Output: typical home value and days-to-pending for the city. Use: flag a listing whose price is detached from local housing.


Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/commercial-investor-lens').call({
loopnetUrl: 'https://www.loopnet.com/Listing/11403-E-Northwest-Hwy-Dallas-TX/41581120/'
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/commercial-investor-lens').call(
run_input={'loopnetUrl': 'https://www.loopnet.com/Listing/11403-E-Northwest-Hwy-Dallas-TX/41581120/'}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~commercial-investor-lens/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"loopnetUrl": "https://www.loopnet.com/Listing/11403-E-Northwest-Hwy-Dallas-TX/41581120/"}'

Automation workflows

  1. Trigger: schedule or webhook
  2. HTTP Request: call the actor
  3. Process: read JSON rows
  4. Action: write to a sheet or notify

Performance & Pricing

FREE Tier

  • 1 listing per run, full math, same report
  • No credit card
  • Fine for a first deal
  • Unlimited listings per run
  • Same formulas, no extra delay
  • Pay per analyzed listing. Failed lookups are not charged

View current pricing on the Store page.


Frequently Asked Questions

Q: How many listings can I process? A: FREE: 1 per run. PAID: no per-run cap.

Q: Does it work on for-lease listings? A: Cap-rate math needs a sale price and NOI or a listed cap. Lease-only rows come back with those fields empty.

Q: What output formats are available? A: JSON, CSV, Excel from the dataset, plus the HTML report.

Q: Where does the mortgage rate come from? A: Your override, else the live 30-year conforming snapshot, else 6.75% labeled as a fallback.

Q: Is this an appraisal? A: No. It reprints listing math and your assumptions. It does not value the building.

Q: How long does a run take? A: Usually under a minute for one URL.


Troubleshooting

Cap rate is empty

  • The listing has no sale price and no listed cap. Try a for-sale URL.

Address search missed the building

  • Paste the LoopNet URL instead of the street.

Rate looks stale

  • Set rateOverride to the quote your lender gave you.

Our actors do not extract private user data such as email addresses or gender. They only extract what the listing already shows in public. You should still treat results as potentially containing personal data under GDPR and similar laws.

You can also read Apify's post on the legality of web scraping.

Trademark Disclaimer

LoopNet is a trademark of CoStar Group, Inc. Zillow is a trademark of Zillow, Inc. This actor is not affiliated with, endorsed by, or sponsored by CoStar or Zillow. All marks belong to their owners.


Support


Built by SIÁN Agency | More Tools