File size: 10,750 Bytes
17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e 17de32a ae79c4e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | [
{
"section_title": "7-Day Trailing Average β Calculation",
"chunk_content": "The 7-day trailing average is a property's pricing baseline. It is calculated as the mean of that property's daily-average nightly rate across the 6 calendar days immediately before the current day β one aggregated value per day, not one value per scrape (properties are scraped 4 times a day, so 'day' and 'scrape' are not the same unit). The current day is always excluded from its own baseline, so incomplete intraday scraping never skews the number."
},
{
"section_title": "Pricing Anomalies / Spike Alerts β Threshold",
"chunk_content": "A pricing anomaly (spike alert) triggers when a property's current nightly rate deviates by 25% or more, in either direction, from its own 7-day trailing average β a surge and a drop both count. This is an absolute percentage deviation, not a directional-only threshold."
},
{
"section_title": "Scrape Cadence & Data Refresh",
"chunk_content": "Listings are scraped 4 times per day to capture short-term rate and availability changes throughout the day."
},
{
"section_title": "Stale Data Status",
"chunk_content": "A property is flagged 'Stale' if the system has not successfully fetched fresh pricing for over 24 hours. The UI fades the row to 60% opacity and shows 'YES (STALE)' under availability. A prolonged Stale status usually reflects a scraping failure (network error, site change, or an access block), not that the listing became available again."
},
{
"section_title": "Unavailable / 2-Night Window Definition",
"chunk_content": "The system checks each listing for a consecutive 2-night opening starting from the current date only β it does not scan the full upcoming calendar. A property is marked 'Unavailable' if that specific 2-night window is not open, even if other dates further out are bookable. This 2-night rule was chosen because most premium short-term rentals require a minimum stay, making single-night gaps effectively unbookable. This is an immediate demand-tightness signal, not a full occupancy calculation β the system cannot currently determine whether a date further in the future is booked."
},
{
"section_title": "Booked vs. Host-Blocked (Known Limitation)",
"chunk_content": "The system cannot distinguish a date that's unavailable because it's booked by a guest from one that's unavailable because the host manually blocked it. Both appear identically as 'Unavailable.' This is a structural limitation β there is no reservation-level data source β not something that will resolve with more time or data."
},
{
"section_title": "Market Average Calculation",
"chunk_content": "A market's average nightly rate only includes properties that are currently active (not removed from tracking) and have a known, non-null rate. Unavailable properties (null rate) are excluded rather than counted as zero, so they never artificially drag the average down. Stale properties are also automatically excluded from live averages and reports, so only current, actionable data is reflected."
},
{
"section_title": "Discounted Rate Capture",
"chunk_content": "When a listing shows a discounted price (e.g. a crossed-out original price next to a lower promotional price), the system captures the final discounted amount as the actual nightly rate β the number a customer would actually pay."
},
{
"section_title": "Host Identification & Multi-Property Tracking",
"chunk_content": "The system extracts each listing's host name or profile identifier to help identify multi-property operators. If a host name isn't available in the standard page structure, it falls back to locating the host's profile link instead."
},
{
"section_title": "Property Key Grouping (De-duplication)",
"chunk_content": "A unique property key groups listings that represent the same physical rental unit even when it's listed across multiple platforms, so the same property is never double-counted in totals or averages."
},
{
"section_title": "Consecutive Failure Handling",
"chunk_content": "Repeated 'not found' errors on a listing increment a failure counter, which helps distinguish a temporary network glitch from a listing that's been permanently removed by its host."
},
{
"section_title": "Extraction Fallback Method",
"chunk_content": "If the standard price-extraction method fails to find a recognizable pricing format (e.g., a platform changed its page layout), the system escalates to a secondary extraction method to maximize successful data capture."
},
{
"section_title": "Data Isolation by Platform",
"chunk_content": "Pricing data is kept strictly separated by platform. Airbnb and Vrbo have different fee structures, algorithms, and booking rules, so their data is never blended together in a single average or comparison."
},
{
"section_title": "Property Inactivity & Removal",
"chunk_content": "If a property is removed from the active tracking list, it's automatically marked inactive. Its historical data remains stored and viewable (via the 'Historical' filter), but it's excluded from live averages, KPIs, and current-state reporting."
},
{
"section_title": "Primary Tracking Markets",
"chunk_content": "The system actively tracks NYC/NJ Metro and Miami β chosen for their high volume of short-term rentals and volatile pricing, and specifically to capture rate dynamics building up to the 2026 World Cup Final. Expanding to a new market is a configuration change (adding listings to track), not a rebuild of the system."
},
{
"section_title": "Vrbo Historical Tracking Status",
"chunk_content": "Vrbo listings are marked 'Historical.' Fresh daily rates are no longer fetched from Vrbo due to a persistent access block encountered during scraping; Airbnb is the actively monitored platform going forward. Vrbo's past data remains fully visible and usable as a baseline comparison against current Airbnb trends β it was not deleted."
},
{
"section_title": "Global Filters",
"chunk_content": "The Real Estate Rate Monitor page has global filters that apply across the map, KPIs, charts, and table simultaneously: Market (region), Platform (Airbnb/Vrbo), Status (Currently Tracked / Historical / All), Bedrooms, and a Stay Date range. All filters recalculate the full page in real time."
},
{
"section_title": "Dashboard KPIs",
"chunk_content": "Properties Tracked: count of unique properties matching the active filters. Rate Changes (7D): total nightly rate changes detected across tracked properties in the last 7 days. 25%+ Spikes (7D): count of pricing anomalies (25%+ deviation from a property's own 7-day average, either direction) in the last 7 days."
},
{
"section_title": "Nightly Rate History Chart",
"chunk_content": "The chart for a selected property plots two lines: the solid line is the actual nightly rate recorded at each scrape; the dashed line is the 7-day trailing average benchmark, letting a viewer see at a glance when the current rate is surging above or dropping below its historical norm."
},
{
"section_title": "Property Rate Snapshot Table",
"chunk_content": "Columns: Property (name, links to the live listing), Market/Platform, Beds/Rating (bedroom count, star rating, review count), Stay Date, Rate (or a sparkline of the last 5 known prices if currently unavailable), vs 7d Avg (colored: green positive, red negative, bold amber if 25%+), Avail. (YES/NO/YES (STALE)), and Last Checked (time since last successful scrape)."
},
{
"section_title": "System Limits β Search & History",
"chunk_content": "Property searches return a maximum of 200 results at a time. Historical rate lookups support up to 90 days back, and rate-change comparisons can reference up to 14 days prior."
},
{
"section_title": "Lookahead Limitation (Known, Not Temporary)",
"chunk_content": "The system only ever checks pricing for a 2-night stay starting on the current day β it has never captured and cannot currently capture a future-dated price (e.g., 'what will this cost next month'). This requires a separate lookahead-scraping capability that doesn't exist yet; it is not something that resolves simply by running longer."
},
{
"section_title": "About Joule Dynamics",
"chunk_content": "Joule Dynamics is an AI automation agency that builds and personally maintains live systems like this one β RAG pipelines, web scraping and monitoring, lead generation, and AI automation for businesses. This Real Estate Rate Monitor is one of several live systems Joule Dynamics runs; the others include a pricing-monitor system and a lead-generation system."
},
{
"section_title": "What's Available Now",
"chunk_content": "Competitor Rate Watch is the live, working service available today: a client provides 5-10 of their own named competitor listings, and the system tracks those specific properties and alerts on price or availability changes β so a property manager knows the moment a competitor moves, instead of finding out after losing a booking."
},
{
"section_title": "Custom Builds Available On Request",
"chunk_content": "Beyond Competitor Rate Watch, Joule Dynamics builds custom data/AI products on request, tailored to a client's market and use case: Owner Acquisition Reports (revenue-potential analysis to help win new property-management contracts), Investor Yield Data (occupancy/rate trend analysis for investor-facing deals), Cross-market Arbitrage Targeting (identifying long-term rentals with strong short-term-rental upside), Comparable Market Analysis (CMA) Automation, Off-Market Deal Sourcing (flagging distressed/underpriced listings), and Portfolio Performance Dashboards (a consolidated multi-property view). These are described as available on request because they are not yet live, working features β if asked to demonstrate one, say so plainly rather than implying it already runs."
},
{
"section_title": "Getting In Touch",
"chunk_content": "A visitor interested in Competitor Rate Watch or a custom build can reach out via the WhatsApp or Email contact options on the page."
},
{
"section_title": "What This Demo Represents",
"chunk_content": "This is a real, live, working system built and operated by Joule Dynamics' founder personally β not a mature enterprise SaaS product with a large team behind it. Its scope (two markets, Airbnb-primary, a 2-night availability window) reflects genuine current capability, not a limitation being hidden. Custom builds are scoped to what's realistic to deliver, not oversold."
}
] |