Short-Term Rental Revenue Analyzer — AirDNA Alternative avatar

Short-Term Rental Revenue Analyzer — AirDNA Alternative

Pricing

from $500.00 / 1,000 str market report generateds

Go to Apify Store
Short-Term Rental Revenue Analyzer — AirDNA Alternative

Short-Term Rental Revenue Analyzer — AirDNA Alternative

Analyze supplied short-term rental observations for occupancy, ADR, RevPAR, revenue, and comparable ranges. Add a property scenario to estimate income, expenses, cap rate, and break-even occupancy from your assumptions.

Pricing

from $500.00 / 1,000 str market report generateds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Analyze supplied short-term rental observations for occupancy, ADR, RevPAR, revenue, and comparable ranges. Add a property scenario to estimate income, expenses, cap rate, and break-even occupancy from your assumptions. For rental analysts, the dataset returns one market calculation record with an optional property-scenario projection.

Workflow: put the results to work

Provide authorized monthly observations and the market context you want to analyze. Check occupancy and rate distributions before adding a property scenario, then test the income and expense assumptions together. The Actor calculates from supplied data; it does not provide an address-based market database.

Best fit

Use it when a host, property manager, analyst, developer, or real-estate investor has legitimate listing-month data from a PMS, channel manager, owner portfolio, licensed data provider, or authorized export and needs reproducible Airbnb/VRBO market analysis without a monthly analytics subscription.

When not to use

Choose a licensed market-data product when your starting point is only a public availability calendar, one current listing-price scrape, or an address that still needs historical discovery. Use independent validation for every underwriting decision.

Supported STR workflows

  • Market performance: weighted occupancy, ADR, RevPAR, gross revenue, available nights, and booked nights.
  • Comp-set analysis: ADR quartiles, median listing occupancy, monthly trends, distinct supply, and low-coverage flags.
  • Rental revenue calculator: project annual booked nights, stays, nightly revenue, cleaning-fee revenue, gross revenue, expenses, and net operating income.
  • Investment scenario: calculate cap rate and break-even occupancy when purchase price and operating costs are supplied.
  • Automation and export: consume the report from an Apify dataset, API, webhook, schedule, Make, Zapier, Google Sheets, or an agent workflow.

The market report and property projection share an auditable calculation chain. Every source label, formula, assumption, and data boundary is returned with the result.

Workflow: from PMS export to an investment scenario

A property manager starts with actual listing-month data exported from a PMS. They remove guest information, map nights and revenue into monthlyObservations, and run the Actor. The resulting market report first shows whether the selected comp set has enough coverage; next, the optional property scenario turns the observed occupancy and ADR into annual revenue and NOI. The manager can then compare assumptions, export the dataset to a spreadsheet, or schedule the same saved input after each authorized monthly export.

What the Actor calculates

For each supplied listing-month observation, provide:

  • month in YYYY-MM
  • listingId — an internal or source ID; it need not be an Airbnb ID
  • availableNights — nights available for sale, excluding booked nights
  • bookedNights — actual booked nights from an authorized record
  • grossRevenue — actual gross revenue for those booked nights
  • currency — one currency for the report

The Actor aggregates them with transparent formulas:

occupancyRate = bookedNights / (bookedNights + availableNights)
averageDailyRate = grossRevenue / bookedNights
revPar = grossRevenue / (bookedNights + availableNights)

monthlyMetrics also includes comp-set ADR percentiles and a coverage label. A coverage label only measures the number of distinct listings supplied; it is not a forecast accuracy or market-representativeness score.

Add propertyScenario to run a target-property scenario. Unless you supply occupancyRate or nightlyRate, the projection uses the comp set's weighted occupancy and ADR. The scenario then applies annual availability, average stay, cleaning fees, variable expenses, fixed costs, and purchase price. It is transparent underwriting math—not a promise that a property will achieve those results.

Example input

{
"marketName": "Austin, TX — 2-bedroom entire homes",
"currency": "USD",
"minimumListingsPerMonth": 5,
"propertyScenario": {
"name": "South Congress candidate",
"availableNightsPerYear": 300,
"averageStayNights": 3,
"cleaningFeePerStay": 90,
"variableExpenseRate": 0.2,
"annualFixedCosts": 12000,
"purchasePrice": 500000
},
"monthlyObservations": [
{
"month": "2026-06",
"listingId": "portfolio-142",
"availableNights": 9,
"bookedNights": 21,
"grossRevenue": 4410,
"currency": "USD",
"bedrooms": 2,
"source": "pms_export"
},
{
"month": "2026-06",
"listingId": "portfolio-211",
"availableNights": 12,
"bookedNights": 18,
"grossRevenue": 3600,
"currency": "USD",
"bedrooms": 2,
"source": "owner_authorized_comp_set"
}
]
}

Output

One validated marketReport dataset item is written per successful run.

FieldMeaning
occupancyRate, averageDailyRate, revParWeighted metrics calculated only from supplied actual observations
monthlyMetricsMetrics, ADR percentiles, and coverage by month
provenanceSource labels, formulas, and the explicit data boundary
confidenceMonths that fall below your minimum-listing threshold
propertyProjectionAnnual booked nights, stays, revenue, expenses, NOI, cap rate, break-even occupancy, and assumption basis
generatedAtISO timestamp when the report was calculated

Example persisted dataset item (values are illustrative):

{
"marketName": "Austin, TX — 2-bedroom entire homes",
"currency": "USD",
"periodStart": "2026-06",
"periodEnd": "2026-06",
"distinctListings": 2,
"observationCount": 2,
"bookedNights": 39,
"availableNights": 21,
"grossRevenue": 8010,
"occupancyRate": 0.65,
"averageDailyRate": 205.38,
"revPar": 133.5,
"monthlyMetrics": [{ "month": "2026-06", "coverage": "low_coverage" }],
"propertyProjection": {
"name": "South Congress candidate",
"projectedGrossRevenue": 45840.65,
"projectedNetOperatingIncome": 24672.52,
"projectedCapRate": 0.0493,
"basis": {
"occupancyRate": "market_observation_weighted",
"nightlyRate": "market_observation_weighted_adr"
}
},
"provenance": { "method": "authorized_observation_aggregation" },
"confidence": { "overall": "mixed_coverage", "monthsBelowThreshold": ["2026-06"] },
"generatedAt": "ISO timestamp"
}

When input needs correction, inspect the OUTPUT and RUN_SUMMARY key-value records. The Actor uses COMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT, UPSTREAM_FAILED, and CONFIG_ERROR outcome semantics; this workflow normally returns COMPLETE or an actionable INVALID_INPUT.

API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('khadinakbar/airdna-alternative').call({
marketName: 'Austin, TX — 2-bedroom entire homes',
currency: 'USD',
monthlyObservations: [
{
month: '2026-06',
listingId: 'portfolio-142',
availableNights: 9,
bookedNights: 21,
grossRevenue: 4410,
currency: 'USD',
bedrooms: 2,
source: 'pms_export',
},
],
propertyScenario: {
name: 'South Congress candidate',
availableNightsPerYear: 300,
averageStayNights: 3,
cleaningFeePerStay: 90,
variableExpenseRate: 0.2,
annualFixedCosts: 12000,
purchasePrice: 500000,
},
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Agent prompt card

An AI agent can use the following prompt, then branch on OUTPUT.outcome: stop and correct the input on INVALID_INPUT, and read the single dataset item on COMPLETE.

Analyze these authorized short-term-rental monthly observations for a named comp set. Keep source labels, calculate occupancy, ADR, RevPAR, revenue, and coverage, then project annual revenue and NOI for my target property. Flag low-coverage months and never infer bookings from calendar blocks.

Where the observation data can come from

No third-party API is required to use this release. Suitable inputs include owner/PMS exports, channel-manager reports, authorized client portfolios, and licensed datasets that already distinguish actual booked nights from available nights.

For automatic address lookup, market discovery, historical Airbnb estimates, or provider-selected comparables, a licensed STR data API is required. That optional integration is not enabled in this release because it would require the caller's provider key, separate provider charges, schema verification, and provider-specific acceptance testing. Keeping it outside the critical path makes the base Actor deterministic and removes an upstream outage from ordinary runs.

Data use and privacy

Submit only data you are authorized to analyze and keep guest names, email addresses, booking references, iCalendar URLs, cookies, and API keys outside the input. Listing IDs can be internal IDs. The workflow runs without third-party credentials, rental-platform browsing, or booking-calendar scraping.

Builder's note

I designed this Actor after seeing calendar-based occupancy tools combine reservations with owner blocks. My goal was to keep every consequential number traceable to actual booked nights, available nights, revenue, and explicit property assumptions. That design choice shaped the source-labelled output, formula disclosure, coverage flags, and the separation between observed market metrics and scenario overrides. Each report's generatedAt, period, and source labels make its input freshness visible.

How this bounded workflow compares with AirDNA

Decision dimensionThis ActorAirDNA boundary
Scope coverageCalculates comp performance and explicit property scenarios from supplied observationsAdds proprietary market discovery, forecasts, dynamic pricing, and dashboard workflows
Billing modelPay per event for each persisted report, plus platform usageLimited free access and subscription products; check the current pricing page
Effective efficiencyOne tested API call produces one calculation report with formulas, assumptions, and outcome recordsNo authorized same-job timing and export test was performed
Input frictionRequires actual booked nights, available nights, and revenue that you are authorized to analyzeCan start from an address because the product supplies comparable and historical estimates
Output contractDeclared JSON schema with market/month metrics, projection economics, provenance, and confidenceProvides dashboard/report workflows; no current API response was tested here
Freshness and provenanceReturns input periods, source labels, formulas, generation time, and coverage limitsUses its own historical and forecast modelling; per-result provenance was not tested here

The right choice depends on the starting point. Use this Actor after obtaining authorized observations and when transparent automation matters. Use AirDNA when the missing value is proprietary data acquisition, address-first discovery, forecasts, or its broader suite.

Scope and AirDNA boundary

AirDNA can be the better choice when you need its proprietary data collection, wide market coverage, historical estimates, forecasts, interactive dashboard, dynamic pricing, or address-first comparable discovery. This Actor is useful when your workflow already has authorized observations and needs transparent, automatable market calculations, property scenario modelling, and a structured export.

Use the projection as a scenario rather than an appraisal, promised return, tax opinion, or legal assessment. Use only data you are authorized to access and analyze, follow applicable laws and source terms, and validate local STR rules, permit eligibility, taxes, insurance, financing, platform fees, cleaning economics, seasonality, and property-specific demand before making an investment decision.

AirDNA is a trademark of its respective owner. This Actor is independent and not affiliated with, endorsed by, or sponsored by AirDNA.

Pricing and run costs

This Actor uses Pay per event plus Apify platform usage. The Pricing tab lists the current event rates and billing terms.

EventBilling unitWhen it applies
apify-actor-startActor StartCharged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).
market-report-generatedSTR market report generatedOne validated STR market report and optional property projection calculated from authorized observations and persisted to the dataset.

Run cost combines the charged events and Apify platform usage. Review the run charge limit and requested result count before starting.

Connect an AI agent

Use the Apify MCP configurator to choose an available client connection. Inspect this Actor’s current input schema and required credentials before running it.