Prioritized to-dos
Listings with the largest revenue at stake first. Impact estimate is rough — based on past 30-day revenue × the size of each gap — but useful for sequencing the team's week.
Pricing & demand alerts
Portfolio
Booking analytics
HOSPITABLE_API_TOKEN in Netlify env vars to populate Total Nights,
Avg Length of Stay, Lead Time, Direct Booking %, and Avg Nightly Rate here.
Channel mix
Recent bookings
| Booked | Property | Check-in | Check-out | Nights | Revenue | ADR | Source | Guests |
|---|
Monthly revenue · YoY
Revenue forecast
90-day window is direct from PriceLabs; 30 and 60 are derived from current pace. STLY comparison is reported for the 90-day window only — PriceLabs doesn't return STLY for shorter forward windows.
Market by town
Airbnb Insights
Where does this data come from?
Each quarter your Airbnb market manager sends a workbook. To populate this view, add four tabs to the same Google Sheet the dashboard already reads and paste the relevant columns. Once those tabs exist, the dashboard picks them up automatically.
- Airbnb Quality — per-listing rating breakdowns + issue tags. Columns:
Listing | Overall | Checkin | Accuracy | Cleanliness | Communication | Location | Value | Issue Rate | Trip Issues | Negative Tags - Airbnb Sandwich Nights — actionable gap dates. Columns:
Listing | # Sandwich Nights | Sandwich Dates | # Blocked Nights | Blocked Dates - Airbnb Amenities — recommended adds per listing. Columns:
Listing | Recommended Amenities(comma-separated) - Airbnb Price — comp benchmarks. Columns:
Listing | Cleaning Fee | Comp Cleaning Fee | Weekly Discount | Comp Weekly Discount | Monthly Discount | Comp Monthly Discount | Median Nightly Price | Comp Nightly Comparison
Sections below render whatever tabs exist; missing tabs show a "not yet set up" placeholder.
Quality breakdown
Sandwich nights
Amenity opportunities
Price & discount benchmarks
Forward Projections
How projections are calculated
For each listing and each forward window (Next 30 / 60 / 90 days):
- OTB (on the books): sum of host revenue for confirmed Hospitable reservations checking in within the window. Stays straddling the window edge contribute only their in-window nights.
- Expected occupancy: the listing's historical average occupancy over the past 12 months (booked nights ÷ available days).
- Headroom:
max(0, expected_occupancy − current_booked_occupancy). If we're already above our historical average, headroom = 0 (no pickup projected). - Pickup revenue:
headroom × window_nights × historical ADR. - Projected total: OTB + pickup.
Caveats: historical average is unweighted across the past 12 months — it doesn't yet adjust for seasonality (Phase 2). Listings with fewer than 3 months of bookings show "—" for historical fields and project only OTB.
| Listing | Town | OTB Rev | Booked Occ | Hist Occ | Headroom | Pickup $ | Projected Total | Market Occ | History |
|---|
Listing report card
All listings
How is the grade calculated?
Each established listing is scored on five dimensions; each dimension has a green zone that scores 100 and a soft penalty below. The composite is the weighted average over dimensions where data is available — missing inputs (e.g. no reviews yet) are skipped so a listing isn't penalised for what we don't know about it.
- Pricing Fit · MPI (weight 25%) — green zone: MPI 0.95–1.20 → 100. Outside: exponential decay (floor 20).
- Exposure Health · Search→Listing rate (weight 20%) — converted to an approximate market percentile against the Key-tab target band 12–18%. Green zone: percentile ≥ 40 → 100. Below: linear penalty.
- Conversion Quality · Listing→Booking rate (weight 20%) — green zone: rate ≥ 1.75% (midpoint of the Key-tab 1–2.5% target) → 100. Below: linear penalty to 0.
- Forward Pacing vs Market (weight 25%) — equal-weighted blend of three subcomponents:
- S30: Listing forward-30 occupancy ≥ market − 5pp → 100. Below:
k = 3.0 per pp. - S90: Listing forward-90 occupancy ÷ market forward-90 ≥ 0.90 → 100. Below:
k = 1.5 per %. - SBW: Recent avg booking lead time within ±20% of 12-month historical avg → 100. Beyond:
k = 1.0 per %deviation.
- S30: Listing forward-30 occupancy ≥ market − 5pp → 100. Below:
- Guest Experience (weight 10%) — green zone: lifetime avg ≥ 4.8 AND last-10 avg ≥ 4.7 AND no 1–3★ reviews in last 5 → 100. Otherwise: −50 per 0.1 below threshold, −15 per recent low review.
Letter cutoffs: A ≥ 85 · B ≥ 75 · C ≥ 65 · D ≥ 55 · F < 55.
Methodology authored by Jeff (RM). Caveats: Exposure + Conversion compare against Key-tab static targets (no live market-median feed); SBW uses last-30-day forward bookings as "actual" vs 12-month avg as "expected"; Guest Experience uses Hospitable's review feed.
| Grade | Listing | Town | Rev 30d | STLY | Bkd 90d | Occ 30 | ADR 90 | M15 | M30 | M90 | Views | FPI | S→L | L→B | Conv | Rev ↑7d | Nts ↑7d | Δ Occ |
|---|