Skip to main content

How STRecon Works

STRecon scrapes every Airbnb listing in a market and returns a single Market Signal — Strong, Moderate, Caution, or Inconclusive — based on real calendar data, not estimates. A user draws a boundary on a map. Overnight, STRecon discovers every active Airbnb listing inside that boundary, fetches each listing's public availability calendar for the next 90 days, pulls each listing's review history, scores each listing against a two-signal test, and produces a market-level summary by morning.

The methodology is a deliberate choice. Most short-term rental market tools publish statistical estimates — occupancy and revenue figures derived from sampling, modeling, and partner data feeds. Estimates are useful when the underlying calendars are inaccessible. For any market where listings are public on Airbnb, the calendar itself is the source — and when cross-referenced with review cadence, the signal is sharper still. STRecon reads both.

Last updated: April 21, 2026.

Why scraped calendars beat estimates

An Airbnb listing's calendar is a public artifact. It shows, night by night, which dates are unavailable to a searching guest: booked, blocked by the host, or held for personal use. Aggregated across every listing in a market, calendar data is a direct measurement of supply and demand on the platform that drives the majority of short-term rental bookings.

Statistical estimates model what calendars would show if the modeler had access to them. They extrapolate from sampled listings, historical patterns, and third-party data partnerships. In stable, heavily-sampled markets, estimates can track close to observed reality. In smaller markets, seasonal markets, or markets changing quickly, estimates diverge — sometimes substantially.

A common pattern: a mid-sized mountain-town market with roughly 400 active listings. A statistical model publishes a market-average occupancy figure of 62%. Scraping the same market's calendars on the same day shows the median listing is booked 38% of the next 30 days. The top 15% of listings are running above 70% and pulling the average up. The median operator — the listing an investor is statistically likeliest to actually own — sits far below the headline number.

Neither figure is wrong in isolation. They measure different things. A market-average estimate describes a weighted mean; a scraped median describes the middle of the distribution. For acquisition decisions, the middle of the distribution is the more useful anchor, because most operators end up there. Most "hot" STR markets look great at the average and thin out fast at the median.

For a direct methodological comparison, see /glossary/airdna-vs-scraped-data.

Why our booked-day counts are sharper than the calendar widget

A subtle point matters here, because it's the part most investors get wrong when they try to do this work by hand. The calendar widget on an Airbnb listing strikes through any night a guest can't book. That visual signal is not the same as "a night the property is occupied." A night can be empty, generate no revenue for the host, and still appear struck out — typically because a minimum-stay rule prevents any valid stay length from filling the gap, or because the host doesn't allow same-day arrivals after a checkout. A manual investor counting strikethrough days would include these empty-but-unbookable nights and overstate the listing's true occupancy.

STRecon reads the underlying availability data and only counts a night as booked when the property is actually occupied that night. For the great majority of listings, our booked count is the true occupancy count, not the strikethrough count. The gap is widest on listings with high minimum-stay requirements and fragmented calendars — vacation rentals in beach, ski, and lake markets, where a single empty Tuesday between two week-long stays can never be booked at a seven-night minimum. That is exactly the segment where eyeball estimates from competitors are most misleading and where a sharper count changes underwriting decisions.

This still leaves the host-block problem (an owner blocking dates for personal use looks the same on the calendar as a paying guest), which is what the review-cadence test below is for.

Why review cadence matters as much as the calendar

The calendar has a well-known flaw. A night marked unavailable is not necessarily a night booked. Hosts block dates for personal use, maintenance, construction, arbitrage turnover buffers, owner stays, and dozens of other reasons unrelated to paying guests. Every short-term rental data provider reads some version of the Airbnb calendar, and nearly all of them fold these blocks into the headline occupancy figure. The result is an inflated number — especially for listings with absentee hosts who block long stretches, arbitrage operators holding inventory, and new listings still being configured.

STRecon addresses this with a second public signal: review cadence. A healthy, genuinely-booked Airbnb listing generates 2–3 reviews per month on average. Guests stay, a meaningful share leave a review, and the rhythm is steady across months. When a listing shows both a high calendar booked rate and review activity in the 2–3-per-month range, the unavailable nights are overwhelmingly real bookings. When a listing shows a high calendar booked rate but few or no reviews, the unavailable nights are more likely blocks than bookings, and the listing does not earn a top tier in our system.

Reviews are the best public signal for bookings. Calendar is the truth; reviews are the audit trail. Any provider can pull reviews — almost none use them to validate occupancy. That gap is why STRecon's tier classification disagrees with raw-calendar tools on a meaningful share of listings, particularly in markets with high absentee-host density or active arbitrage operators.

Review cadence is measured per listing on a month-by-month basis across the prior six months. Total review count is not the metric — a listing with 120 lifetime reviews and zero in the last four months is a different animal from a listing with 120 lifetime reviews and eight last month. Only the recent rhythm predicts forward performance.

How the scraping process works

STRecon's pipeline runs in six stages.

1. Market boundary input. The user draws a polygon on a map — a neighborhood, a city, a county, or a custom shape. The boundary defines the scrape target. There is no pre-built list of markets; any polygon the user can draw is a valid market.

2. Listing discovery. STRecon queries Airbnb's public search surface to enumerate every active listing whose location falls inside the boundary. Discovery runs in tiled passes so that markets containing several thousand listings are fully enumerated rather than truncated at a single search-result cap.

3. Calendar and review fetch. For each discovered listing, STRecon pulls the public availability calendar covering the next 90 days and the review history covering at least the prior 6 months. The calendar marks each night as available or unavailable. Review history is recorded by month, not just totaled. STRecon reads the underlying availability data directly, which exposes more state than the calendar widget shows a guest — in particular, we can tell when a night is empty but unbookable for reasons that have nothing to do with occupancy (covered in the next section), and we exclude those from the booked count. STRecon still does not differentiate between a night blocked by the host for personal use and a night booked by a paying guest — both look identical on the calendar. See /glossary/calendar-booked-rate for the full definition. The review-cadence test, covered below, is what separates host blocks from real bookings.

4. Deduplication and validation. Listings are deduplicated by Airbnb listing ID. Listings with no availability data and no review history are flagged as potentially inactive. Listings with calendar signatures that fail integrity checks — for example, 90 days of identical status with no corresponding review history — are held for review before being counted.

5. Tier classification per listing. Each valid listing is scored against two tests in parallel: the 75/55 calendar test and the review-cadence test. The combination determines the tier assignment: Exceptional, Performer, Potential, Watch, Avoid, or Unreliable. Tier summary is below; full definitions live at /glossary/listing-tiers.

6. Market Signal computation. The Market Signal — Strong, Moderate, Caution, or Inconclusive — is computed from the share of listings classified as Top Performers: those in the Exceptional, Performer, or Potential tiers. Thresholds are below.

The full pipeline runs overnight for a typical market and is rate-limited to respect Airbnb's infrastructure. Markets with unusually high listing counts may take longer; the completion timestamp is shown on every report.

What data STRecon collects per listing

For each active listing inside a market boundary, STRecon captures:

The field list is narrow by design. STRecon does not capture host names, host photos, contact information, or any data that requires authentication to access. Messages, booking confirmations, and anything gated behind the Airbnb host dashboard are out of scope. Only data visible to an unauthenticated visitor browsing a listing page is collected.

STRecon also does not capture revenue figures. Revenue per listing is not published by Airbnb; any revenue number shown in a competing tool is a model output, not a measurement. STRecon reports calendar booked rate, review cadence, and listed nightly price, and leaves revenue projection to the user. Occupancy is the single best predictor of short-term rental revenue — not ADR, not listing count — but only once the calendar has been validated against real booking activity. Unvalidated occupancy is noise.

The 75/55 framework

The 75/55 rule is STRecon's core calendar test. It evaluates each listing across two forward-looking 30-day windows.

A listing passes 75 if at least 22 of the next 30 nights are unavailable on its calendar — a 75% calendar booked rate in the near window. A listing passes 55 if at least 16 of the nights in the 30-to-60-day-out window are unavailable — a 55% calendar booked rate in the mid window. A listing that passes both windows is heavily unavailable right now and heavily unavailable a month out. That pattern is necessary for a top-tier listing — but not sufficient on its own.

Single-window tests are noisy. A listing can pass 75 because of a single large booking and fail 55 because the host blocked the second month for renovations. A listing can pass 55 during a seasonal spike and fail 75 during an off-week. Requiring a pass in both windows filters out both failure modes and isolates listings with sustained calendar unavailability.

Calendar unavailability is not the same as booking activity. A listing that passes both windows with no corresponding review cadence is unavailable for reasons unrelated to guests — and STRecon does not classify it as a top performer. The full tier logic, which combines 75/55 with the review-cadence test, is below.

The full definition of 75/55, including edge cases and the reasoning behind the specific thresholds, lives at /glossary/75-55-rule.

The Market Signal

Every report opens with one of four signals: STRONG, MODERATE, CAUTION, or INCONCLUSIVE.

The signal is a function of the share of listings classified as Top Performers — the Exceptional, Performer, and Potential tiers combined. These are the listings with either validated high performance or credible demand signals. Watch, Avoid, and Unreliable tiers do not count toward Top Performers.

Market SignalShare of listings classified as Top Performers
STRONG15% or more
MODERATE5% to under 15%
CAUTIONUnder 5%
INCONCLUSIVEFewer than 80% of discovered listings were successfully scraped

A Strong market has a meaningful base of listings with validated demand — 15% or more of the competitive set is genuinely performing. A Moderate market has a thinner but credible performing base; a well-run listing can outperform, but median outcomes are contested. A Caution market has less than one in twenty listings showing real demand signals; buying in and running average yields below-average results.

Inconclusive is the fourth state and is structural, not a judgment on the market. When fewer than 80% of discovered listings are successfully scraped, there isn't enough data on the table to call the market with confidence. STRecon surfaces Inconclusive rather than publishing a signal it can't stand behind. Re-running the scrape — sometimes the next night — usually resolves it.

The signal is deliberately compressed to four labels. The full per-listing distribution is available in the report, but the headline is one word, because the acquisition question is one question — is this a market where an average operator can win?

The listing tier system

Every valid listing in a scraped market is assigned one of six tiers — Exceptional, Performer, Potential, Watch, Avoid, or Unreliable — by combining the 75/55 calendar test with the review-cadence test. The top three tiers (Exceptional, Performer, Potential) count as Top Performers and drive the Market Signal; the bottom three do not.

Full criteria for each tier, including the exact calendar thresholds and review-cadence cutoffs, live at /glossary/listing-tiers.

Watch is the tier that separates STRecon from raw-calendar tools. A listing with high calendar booked rate and anemic review activity looks great to an estimator reading the calendar alone — and it usually looks great in AirDNA's comparables. STRecon classifies it as Watch and keeps it out of the Top Performer count. In markets with high absentee-host density or active arbitrage, the Watch tier can be substantial, and treating those listings as validated performers is how investors end up in markets that look hot on paper and disappoint in practice.

Tier distribution drives the signal. A market can contain Exceptional listings and still carry a Caution signal if those listings are rare against a large base of Watch and Avoid tiers. This is why picking a market is more important than picking a property: a Performer in a Strong market outperforms an Exceptional in a Caution market once portfolio effects compound.

Update cadence and data freshness

Every scrape is timestamped. The capture timestamp appears on the report page and on every exported artifact.

Markets scraped on-demand complete overnight and display the UTC capture time on the report. Markets with existing STRecon users are re-scraped on a rolling cadence — typically every 14 to 30 days, weighted by demand signals — so investors tracking a market over time see a true time series rather than a stale single point. Users can trigger a fresh scrape of any market they have credits for at any time.

Calendar data is a point-in-time snapshot. A listing's next-30-day calendar on April 1 is not the same artifact as its next-30-day calendar on April 15, because the window has advanced. Review data is cumulative and re-fetched on each scrape, so a listing's 6-month review cadence always reflects the 6 months preceding the most recent capture.

Known limitations

STRecon is built on public Airbnb data. The methodology has bounded reach. Known limitations:

FAQ

How often does STRecon update its data? On-demand scrapes complete overnight. Previously-scraped markets are re-scraped on a rolling 14-to-30-day cadence, weighted by demand signals. Every report carries the exact capture timestamp.

Does STRecon work for VRBO or Booking.com? No. STRecon scrapes Airbnb only. In markets where VRBO or direct-booking properties represent a meaningful share of supply, the signal reflects the Airbnb segment of the market. For most US markets, Airbnb dominates the short-term rental inventory a typical investor would list on.

How accurate is the 75/55 rule as a predictor? The 75/55 rule is one of two tests, not a standalone predictor. Listings that pass both windows AND clear the review-cadence bar sit consistently at the top of their market by genuine booking activity. Listings that pass 75/55 without matching review activity often have inflated calendar numbers driven by blocks rather than bookings — they classify as Watch and don't count as Top Performers. Individual outcomes still depend on pricing, photography, and seasonality.

Why does STRecon track review cadence and not just total review count? Total review count tells you how many bookings a listing has had over its lifetime. Review cadence tells you whether bookings are happening now. A listing with 120 lifetime reviews and zero in the last four months is a different animal from a listing with 120 lifetime reviews and eight last month. Tier classification depends on the recent rhythm because we're predicting forward performance, not lifetime totals.

What does an Inconclusive signal mean? It means fewer than 80% of the discovered listings in the market were successfully scraped on that run — not enough data to call the market. Scrapes can come back short for a range of reasons: Airbnb rate limits, transient listing-page failures, listings going private mid-scrape. Re-running the scrape on a subsequent night usually resolves it. STRecon prefers surfacing Inconclusive to publishing a signal it can't stand behind.

Can I trust STRecon's data for underwriting a purchase? STRecon provides two inputs — the current state of the Airbnb calendar and recent review activity in a given market. Underwriting a purchase also requires local expense data, regulatory verification, property-specific condition assessment, and a financing model. Treat STRecon as the market-demand input in a multi-input process, not as the whole process.

How does STRecon compare to AirDNA? Different methodology, different output. AirDNA publishes statistical estimates across a large inventory of pre-built markets. STRecon scrapes every Airbnb listing inside a user-drawn boundary, pulls each listing's review history, and reports the observed result — calendar and review cadence together. The two tools complement each other in some workflows and diverge in others. Full methodological comparison at /glossary/airdna-vs-scraped-data.

Is the scraped data public or proprietary? The raw sources — Airbnb listing calendars and review pages — are public. Any unauthenticated visitor can view them. STRecon's proprietary layer is the discovery pipeline, the 75/55 framework, the review-cadence test, the six-tier classification, and the Market Signal that turns raw public data into a ranked market assessment.

How is STRecon priced? STRecon is credit-based. Credits are consumed per market scraped and scale with the listing count in the market. A free plan is available for first-time evaluation. Current pricing lives at /pricing.


Draw your target area. Get the signal by morning. → strecon.app