Changelog

What we shipped

Every meaningful change, dated and attributable. No marketing theatre.

A sharper "what guests celebrate at your top comps"

The comp-review section on your Comps view is redesigned as a ranked ladder: each theme leads with a big count over the real review total, a share bar sized to that fraction, and one scannable verdict chip (you lead with it · buried in your copy · missing from your copy · worth verifying). Click a row to expand the gap sentence, the verbatim guest quotes with dates, and the concrete way to close it.

Same honest numbers as before — real counts, real fractions, verbatim quotes — just far easier to scan.

Selecting a property now opens its Revenue Plan

Picking a property from the top-bar switcher (or a Top Movers row on Home) used to land on the Revenue tab. It now opens the property's first tab — the Revenue Plan — so you start from the plan and the one-click action items every time.

Bulk approve is one round trip, and the Queue badge updates instantly

"Approve all" on the Queue now sends one request to the server, which approves and pushes the whole batch close to the database and your PMS — instead of the browser firing two requests per move. A 20-move batch settles in a few seconds, every push still runs the same safety ceilings, and each one stays individually undoable from History.

The Queue count in the sidebar also updates the moment you approve, dismiss, or restore a move — no more stale badge until the next minute's refresh.

Review evidence lands in your copy optimizer and your reviews panel

The listing copy optimizer's local-draw reasoning now carries a second, demand-side receipt when the data supports it: not just "7 of 19 comps mention the ski resort" but also "guests mention it in 37 of 241 recent reviews at your top comps". The receipt appears only when at least three reviews mention the draw — thin evidence stays silent.

And your guest-reviews panel now surfaces recurring topics inside your lower-rated reviews — counted only in reviews rated below 5 stars, with the verbatim quotes and dates so you can judge the context yourself. Most properties with happy guests will simply never see this section.

What guests celebrate at your top comps — and where your listing is silent

The Comps view can now read recent guest reviews at your top comps by revenue and count what guests actually celebrate there — the view, the hot tub, the stocked kitchen — each theme with its real count over the real review total and verbatim quotes with dates. A theme only appears when at least three reviews mention it; thin data shows nothing rather than noise.

Then it checks your side: does your listing copy lead with that strength, bury it, or miss it entirely — and do your own synced reviews mention it? Each gap comes with the concrete way to close it. No scores, no projected dollars — counts and quotes only. Rolling out gradually; the panel appears once review data for your comp set has been gathered.

Your guest reviews, straight from your PMS

The Performance tab on each property now shows your guest reviews synced from your PMS — the rating, the review text, the channel it was posted to, and your reply, newest first, with an average-rating summary. Nothing is scraped and nothing is invented: these are the reviews your PMS holds for your property, read-only.

Available today for PMS connections that expose review reads; if yours doesn’t yet, the section simply doesn’t appear — no placeholders. Reviews written by you about guests are never mixed into this view.

Legal pages reality-checked — every claim now matches how restay actually works

We audited every factual statement on our Privacy Policy, Terms of Service and Acceptable Use pages against the shipped product and corrected the ones that had drifted: how PMS disconnection works, how recommendation approval works (dashboard only — there is no email approval link), what happens to your records when you delete your account, and honest retention wording for logs we keep for troubleshooting and fraud prevention.

Also aligned everywhere: the retired free audit is fully replaced by the 7-day free trial (card at signup, first charged when the trial ends, cancel anytime), and the refund policy reads the same on the FAQ and the Terms — monthly fees are non-refundable; the trial is the try-before-you-pay window. The analytics disclosure now precisely describes the small set of server-side product-milestone events we record. A build-time check now keeps these pages from drifting again.

A simpler property dashboard — five tabs instead of nine

Your property view went from nine tabs to five. Revenue, Performance and Bookings now share a single Performance tab; Market and Comps share Market; Amenities and Listing share Listing — each with a quick sub-tab switch at the top. Nothing was removed: every chart and table is still there, just grouped so there’s less to scan.

Revenue Plan stays your home base and the default tab, and Pricing & Demand keeps its own tab. Old bookmarks and links keep working — they open the right place automatically.

Event rate moves now push reliably — and Approve all is fast

Fixed: approving an event-driven rate move could fail to apply to your PMS. Those moves now push correctly, and their suggested rate is kept within the safe single-change limit so it goes through on approval instead of being rejected.

Approve all is much quicker too — it now pushes your moves in parallel instead of one at a time, so a full batch finishes in seconds rather than tens of seconds.

Approve all your moves at once — and a less repetitive plan

The Revenue Plan’s one-click moves now have an “Approve all” button — push every ready move in one go instead of clicking through them one at a time. Each still runs the same safety checks and stays individually reversible from your History.

Less repetition, too: your compression events now point to the queued move rather than repeating the rate, and the minimum-stay seasons note they’re grouped by your market’s occupancy (separate from the single peak-revenue month on your Revenue tab).

A clearer first screen while your plan fills in

A new or still-syncing listing now sees a short “your plan is warming up” checklist on the Revenue Plan — connect your PMS, link your Airbnb, first bookings sync, your market gets mapped — instead of a few “not enough data yet” panels. Each step shows what’s done and what it unlocks.

Your nearby demand events and any ready-to-approve moves still appear right below, so there’s something useful from day one even before the full plan fills in.

Your biggest moves first — the rest one click away

Your Revenue Plan’s action items now lead with the highest-impact moves and tuck the long tail behind a “Show more”. In a busy market with lots of small event-night windows, the moves that actually move your revenue surface first instead of getting buried under a wall of tiny ones.

Nothing else changed about how moves work — same one-click approve, same one-click undo on anything you push.

See the events behind your event rate suggestions

Your Revenue Plan has a new “Compression events” section: the upcoming high-demand events near your place — name, dates, and how strong the demand looks — with the proposed rate window shown right there when one’s ready to approve below.

Event rate suggestions are also cleaner. When several events land on the same night, you now get a single rate move for that date (the strongest one), instead of a stack of conflicting suggestions for the same day.

Rate suggestions for big local events near your place

ReStay now watches for major events around your listing — concerts, games, festivals — and, when one shows real demand (popularity, ticket prices, a busy resale market), proposes a date-specific rate bump for those nights. The suggestions appear in your Revenue Plan’s action items, ready to approve and push in one click, reversible like any other move.

It only flags events with a genuine demand signal, so you won’t see noise for every show in town — and if there’s nothing notable, nothing appears. The size of the suggested bump scales with how strong the demand looks, and you always approve before anything changes.

Property tabs reordered, and you can arrow between them

A property’s tabs are now ordered to match how you work: act (Revenue Plan, Pricing & Demand), review (Revenue, Performance, Bookings), then the market (Market, Comps, Amenities) and your Listing.

You can move between the tabs with the left and right arrow keys. It won’t interfere while you’re typing in a field, and it stops at the first and last tab.

The Performance tab now runs on your real numbers

Two metrics on the Performance tab were placeholders — "RevPAR alpha" and an occupancy beat. They’re now real: RevPAR alpha is your RevPAR against the market median, and "Occ. vs market" is your occupancy minus the market’s, in points. Both light up once you’ve linked your listing and the market data is in; otherwise they honestly show a dash.

The "Revenue attribution" panel — which previously showed sample numbers — is rebuilt as a real breakdown: how much of your RevPAR gap to the market comes from your rate versus your occupancy, with the net per-night gap. It’s plain arithmetic on your own metrics, so the figures are yours, not a demo.

New: your Revenue Plan — your whole year, mapped from real data

Every property now opens to a Revenue Plan: a single, decision-grade view of the year. It reconciles a recommended annual target from your booked revenue, run rate, forward pace, and how your occupancy compares to your market — then breaks it into monthly revenue targets and a minimum-stay plan.

Every number is real. Months are drawn from your own booking history where you have it and comparable market listings where you don’t — and each month is labeled so you always know which is which. New or thin-history listings get an honest, market-anchored target instead of an invented one.

The plan ends with your immediate moves, split into two lists: the ones ReStay can push for you with one click (rate, minimum-stay, blocking) — each one-click reversible — and the short list of anything you’d set yourself. Approve a move and it goes straight to your connected system; tap Undo to roll it back.

Revenue and Bookings tabs now reflect your real PMS data

A listing’s Revenue tab now fills in once your PMS sync lands — total revenue, last-90-day revenue, average daily rate, the monthly trend, and the channel split. A wiring issue had been holding it on the empty state even after bookings synced.

Upcoming reservations now appear on the Bookings tab. Previously a future stay booked before you connected could be missed by the sync; the booking pull now reads forward by arrival date, so check-ins show up as they should. Money on both tabs is labeled in each property’s own currency.

“What changed” explains a comp-set refresh instead of alarming you

Occasionally the source we draw comparable listings from swaps in a different set of comps in one step. Before, the “What changed” card reported that as a flood of listings joining and leaving (“43 changed — 21 in, 21 out”), which looked alarming even though nothing happened to your market.

Now, when the comp set is wholesale-refreshed rather than gradually changing, the card says so plainly — “Your comp set was refreshed; we’re now benchmarking against a different group of N comparable listings” — and still shows any rate moves among the comps that carried over.

“What changed” reads like a takeaway, not a chip cloud

The “What changed” card on a listing’s Comps tab is redesigned to lead with one plain-language takeaway — for example, “Comps are pushing rates up. 16 listings raised this week (avg +$18) versus just 3 cuts.” The numbers are computed from your comp set’s movement over the past week.

Below it, the detail is split into two clear panes: rate moves (each comp’s raise or cut, biggest first, with a magnitude bar) on the left, and comp-set composition (how many listings joined, left, or were delisted) on the right. It reads cleanly on a phone.

Rev lays out comparisons as clean tables

When you ask Rev to compare things — your listings by rate and occupancy, or your rate against the market across a few dates — it now formats the answer as a tidy table with the numbers lined up and right-aligned, instead of a run of plain text. Standout figures (like a rate that’s below the comp median) are highlighted in green.

Wide tables scroll sideways within the chat panel, so nothing gets cut off on a narrow window or a phone.

Clearer suggested changes on the Comps tab

The suggested-changes summary on a listing’s Comps tab now spells out each move in plain language — what it changes, from what to what, and for which date (for example, "Raise nightly rate $100 → $120 for Jul 4"), with a one-line reason underneath.

Previously each row showed only the target value, so several suggestions looked identical at a glance. The full detail and the push-to-PMS step are still one tap away under Review & approve.

The dashboard reads properly on a phone

Following the mobile navigation fix, the content inside each page now fits a phone screen too. Wide data tables — your properties list, the comparable-listings table, and the amenity ranking — scroll sideways within their own panel instead of getting cut off, and dense metric grids stack into two columns so nothing is squeezed off the edge.

Your numbers, comps, and charts are now all reachable on a phone without the page running off to the side.

A redesigned light mode

Light mode has been rebuilt to look as polished as the dark theme: a clean off-white canvas with cards that genuinely lift off the page, clearer text, and accent colors deepened so greens and ambers read properly on a light background instead of washing out.

There is now a single theme control for the whole app — switching from the sidebar also flips the per-property pages, so everything stays in one consistent look.

The dashboard now works on your phone

The dashboard is now usable on a phone. The left navigation collapses into a menu you open with the button in the top-left, and pages fill the screen and scroll normally.

Previously the dashboard loaded on mobile but the sidebar took up most of the screen and the content ran off the side with no way to reach it.

Rate suggestions backed by your own sold-out dates

Your Queue now surfaces a new kind of rate suggestion drawn entirely from your own booking history: when a holiday or peak weekend that sold out last year comes up again still open on your calendar and listed below the rate it earned, we flag it so you can test a higher price while the date is open.

Every suggestion carries the real receipt — the actual prior-year booking and the rate it earned — and proposes a conservative step within your single-change limit. It is a single-date change you approve, adjust, or skip. Strong past demand is a reason to test a higher rate, never a guarantee.

Polish on the post-connect confirmation screen

The confirmation screen shown the moment you finish connecting your PMS now renders with its full styling — the success badge and the “your first audit is firing” countdown are back to their intended look.

Measured results land in your weekly email

Your weekly digest now includes what ReStay measured for you that week — revenue booked on nights your old settings would have blocked, and rates booked above your prior calendar — shown only on weeks there is a real result, and always as separate figures rather than one blended number.

See what your approved moves actually did

Your dashboard now measures the real outcome of the moves you approve. When a booking lands on a night an approved change affected, the “What ReStay did” card on your home shows it: revenue booked on nights your old settings would have blocked, and rates booked above your prior calendar — kept as two separate figures, never blended into one inflated number.

Every applied move in your queue’s Done view can now carry its own receipt: which bookings landed on the nights it changed, measured against the calendar you had before. A “how we measure” note explains exactly what each figure counts — we measure what happened, and never project or claim a booking would not have happened anyway.

A clearer Market tab, and smoother loading

The Market tab is redesigned. The market rate range now shows where listings actually price as a clean distribution (the middle 50%, the median, and the top decile) instead of a near-empty chart. Market revenue reads as monthly bars with the peak and low called out, booked pace is a side-by-side you-vs-market view, and forward booking pace leads with the headline numbers. Every figure is your real market data.

Loading is smoother across every property tab. Each tab now shows a clean placeholder while its data loads, instead of briefly showing the previous tab or a stray placeholder label.

Brand-new accounts get clearer empty states. Revenue, Performance, and Bookings now explain that your history fills in after your first sync, rather than showing blank dashes.

Rate edits warn before a change is too big to push

When you adjust a suggested nightly rate in the queue, the editor now shows the allowed range for a single change and flags a value that is too large a jump — with a one-click way to snap it back in range — before you push. No more finding out at push time that a change exceeded the safety limit.

And when you override a suggested value, the recommendation headline now updates to match what you will actually push, instead of still showing the original number.

Truthful status, everywhere in the header

The header sync pill no longer says LIVE for an account with no PMS connected — it now reads NO PMS until your first connection, and shows nothing while it is still checking. Status labels should never claim more than the system knows.

Also removed a leftover upgrade banner that promised tier-exclusive signals we do not currently offer — every plan includes every feature; plans differ by property count only.

Honest empty states everywhere

A pre-launch sweep removed every remaining path where a signed-in account could see sample data instead of its own. Dashboard panels now show a real empty state (or a plain zero) whenever your account has no data yet — a fresh account sees exactly what it has: nothing, until your PMS connects and syncs.

The same sweep tightened read scoping across dashboard endpoints, so every panel reads only your own listings and bookings.

One-click undo on applied moves

Any move you approve can now be undone in one click. Eligible applied writes carry an Undo button in the Execution Log (and on the push confirmation): click it, see exactly what will be restored — the rate, minimum-stay, or availability your calendar held immediately before the change — and confirm. The restore pushes through the same approval-grade pipeline as every other write: logged in full, safety-ceiling-checked, and shown in the log as Rolled back.

Honesty rails: the restored value is always the recorded pre-change state, never an estimate; Undo is offered only while that recorded state exists and the move is still the latest change to its date; each move can be undone once; and an undone move claims nothing in your measured results.

Every Rev lookup now links to its receipts

The three newest Rev lookups — measured results, booking pace, and guest ratings — now carry the same tap-through chips as the rest: pace answers link to that property’s Market tab, ratings answers to its Comps tab, and measured-results answers to your decided moves in the Queue. Every lookup in Rev’s belt now links to the surface its numbers came from.

Restored Rev conversations now keep the whole chat

Reopening Rev restored only your most recent messages — the cost control that limits what the model re-reads each turn was also (wrongly) limiting what your chat history kept. Storage and cost are now separate: your full conversation is saved and scrolls all the way back, while per-turn cost stays exactly the same. Messages already dropped by the old behavior are honestly gone — everything from here on accumulates in full.

Ask Rev: “did my changes actually work?”

Rev can now pull your measured results in chat: bookings that provably could not have happened without a move you approved (gross revenue, per currency), the rate-sheet difference on nights booked after an approved raise, and nights filled after a rate cut (a count — no dollar claim). The two dollar figures are different units and are never added together; if nothing is measurable yet, Rev says exactly that.

Two more lookups land with it: ask Rev whether slow bookings are you or the market (your 30/60/90-night fill vs your market’s, with as-of dates), and where your six guest-rating sub-scores rank in your comp set. Every number is the same one the dashboard shows — read-only, your data only, honest about anything it can’t measure.

Rev answers now link to their receipts

When a Rev answer draws on your comp set, your amenities, or your market view, it now carries a tap-through chip straight to that tab on the property you’re focused on — the numbers it cited are one tap from the full picture. Queue answers already deep-linked; now comp, amenity, and market lookups do too.

Rev suggests your next question

After an answer, Rev offers up to three tappable follow-up questions — tap one and it sends. The suggestions come from the same answer (no extra processing) and are steered to things Rev can actually look up for you — your queue, your market, your comp position, your amenities, your measured results, your booking pace, your guest ratings.

They appear only under the latest answer and never after an error — stale or broken suggestions are noise, not help.

Rev knows the time, your name, and what’s new

Rev chat messages now carry timestamps, with day separators when a conversation spans days — a restored conversation reads like a record, not a blur. Messages from before this shipped stay honestly unstamped rather than getting invented times.

Rev now knows the name on your profile and greets you by it when it fits, answers “what’s new?” straight from this changelog, and tells you how fresh your data actually is — when your PMS last synced and when the next market-data refresh lands — instead of guessing.

Ratings X-ray — your six sub-scores vs your comp set

The "Your position" card on the Comps tab gains an expandable Ratings section: each of your six guest-rating sub-scores (cleanliness, accuracy, check-in, communication, location, value) next to your comp set's median, your rank in that cohort, and the gap — the benchmark hosts have never had for the scores guests actually grade you on.

The value row also shows your nightly rate next to the comp median as a side-by-side fact — we show you both numbers and let you draw the line.

A sub-score only renders when at least 8 of your comps carry it; anything thinner says so instead of pretending. No composite "review health" number — just the facts, with the cohort size visible on every row.

Booked pace — is it you, or the market?

A new panel at the top of each property's Market tab answers the question every host asks when the calendar goes quiet: your next 30/60/90 nights' fill (live, from your own calendar) side-by-side with how booked your market already is for the same window, and how your open nights are priced against your comp set's forward rates.

One plain-language diagnosis names the likeliest fixable factor — never a made-up score, never an invented dollar figure. Every market and comp number carries its as-of date and refresh cadence, and anything we can't measure says so instead of pretending.

Home gets a one-line portfolio rollup: your portfolio's 30-night fill next to your market's, with the listing furthest behind its market named so you know where to look first.

A second PMS connection is live

Hosts on a second major PMS can now connect to ReStay — pick it on the connect screen, approve access on your PMS's own authorization page, and your listings sync within minutes. Your first audit fires the moment the connection lands.

Same contract as every connection: we read your listings, reservations, and calendar; we propose rate, minimum-stay, and availability moves with named reasoning; and nothing writes back until you approve each move. Everything your PMS already does for you keeps working exactly as-is.

Every write path was verified against a live account before this shipped — rate changes, minimum-stay changes, and calendar blocks/unblocks each round-tripped on a real test property.

Deleting your account now always stops billing — including mid-trial

Account deletion already cancelled active subscriptions; it now also cancels a subscription that is still inside its free trial, so deleting your account mid-trial guarantees the card on file is never charged. Caught in our own testing — no customer was affected.

Your first move, front and center

When your first audit lands moves in the queue, the dashboard now says so: a banner on Home shows how many moves are waiting, names the top one, and takes you straight to the review queue. It disappears for good the moment you approve your first move.

The pricing page now shows where ReStay sits: pricing tools (~$20 per listing a month, automated and opaque), ReStay (flat by property count, every move explained, you approve everything), and dedicated human revenue managers ($400+ a month or a share of revenue).

Honesty sweep on the landing page: removed leftover references to the retired free audit, corrected which PMS integration is live, dropped a stale beta date, and replaced "no credit card required" with the real trial terms — 7-day free trial, card at signup, cancel anytime.

Your data — export or delete it yourself, from Settings

Settings → Account now has a "Your data" section: download everything we hold for your account as one JSON file, or permanently delete your account — self-serve, no support email needed. Our privacy policy has promised both for a while; now the buttons exist.

We also re-audited every claim on the Inside Rev page against the live product. Two fixes: figure sources are now labeled exactly (the demo cabin's rate and occupancy come from its linked listing record in our market feed), and the trial line now says what's true — 7-day free trial, cancel anytime, card collected upfront and never charged if you cancel during the trial.

The same audit then swept the whole site: the trial is now described accurately everywhere (7 days, card at signup, first charge only when the trial ends — the FAQ, terms, and pricing pages all said "no card" and one said 14 days), the footer version stamp now tracks the changelog automatically instead of sitting frozen, and the footer status pill links to the live status page rather than asserting "all systems operational" as static text.

Inside Rev — what our AI can and can't do

New transparency page at /rev: what Rev can see, what it can and can't do, and exactly what happens to your chat data. Every claim on the page is audited against what's actually shipped.

Rev can't change your prices, can't see other hosts' data, and can't invent numbers. Your conversations are never used to train AI models. When you cancel, chat history is deleted 90 days later.

Redesigned the same day as "the glass box": a real Rev conversation replayed in the hero — tool trace, typed answer, hoverable receipts — the guardrails as a numbered ledger, and your data terms as plain rows. Same audited claims, word for word, and every figure on the page is real.

Market momentum — is your market heating or cooling right now

The top-earners card now shows how the market's strongest listings performed over the last 90 days versus their trailing year — nightly rate and occupancy momentum, honestly labeled as the top-earner sample it is.

Forward booking pace gained a booked-vs-asking read: what already-booked nights actually sold for compared to what still-open listings are asking. Booked above asking means the market is raising rates into demand.

Both come from data already in your market feed — no new collection.

Market rate range — see the whole spread, not just the median

The Market tab now charts where your market actually prices: the band the middle 50% of listings charge, the median line, and the top-decile line — month by month over the trailing year.

One glance tells you whether the market has pricing headroom above you, and how wide the gap is between typical and top-of-market rates in your area.

Same data source as the rest of the tab — no new collection, just numbers we computed but never showed you.

Zero-click listing linking — your Airbnb listing connects itself

If your PMS already knows which Airbnb listing each property maps to, ReStay now picks that mapping up automatically at sync — no more hunting for your Airbnb URL to paste.

The moment a listing links, your first comp-set recommendations are generated within minutes, and the comp benchmarking and forward pricing intelligence light up for that property.

We only use your PMS's own mapping — we never guess by name or location, and a link you set yourself is never overwritten. The paste option stays available for properties your PMS hasn't mapped.

Forward booking pace — see market demand before it shows up in your occupancy

The Market tab now charts how booked your market already is for upcoming dates — the share of inventory with reservations on the books, day by day, alongside the average asking rate of the listings still open.

This is on-the-books data, not a forecast: it shows demand forming weeks before trailing occupancy moves, so a strong pace reading means you can raise rates while open nights still exist.

Every chart carries its as-of date, and dates that have already passed are dropped rather than shown as "forward" data.

Trial recap email — what your agents found, with the receipts

Two to three days before your trial converts, you now get a recap of everything the agents surfaced while you were trying ReStay: how many recommendations were queued, which ones you applied, and what's still waiting for your approval.

Every highlighted recommendation carries its own evidence — the same named reasoning the Queue shows, like comp-set medians and percentile ranks. Estimated impact appears only where we actually computed one; we never invent a number for an email.

It's sent exactly once per trial, a day before the separate billing reminder, so you can act on what's waiting before deciding.

Full history on Queue + Execution log — filters and paging to day one

The Execution log now pages back to your very first write. Filter by outcome (Applied / Queued / Failed / Rolled back), by property, and by agent — every view is a shareable URL.

The Queue gained the same treatment: see Waiting, Done, Dismissed, and Failed recommendations with per-status counts, property and agent filters, and "Load more" through your full history. Closed items are read-only — we never offer an Approve button on a decided recommendation.

Both surfaces keep exact counts per filter so the numbers you see always reconcile.

Listing intelligence — local demand drivers with receipts

The listing copy optimizer now learns what actually draws guests to YOUR market from the comp set's own listings — and tells you which draws your description misses, with named evidence ("6 of 15 comps mention hospital proximity — you don't").

Claims we can't corroborate are quarantined into a labeled "worth verifying for your property" list — never written into your listing as fact.

The Amenities tab gained a "Gear up for what guests come here for" card: addable items tied to your market's real demand drivers, with comp-prevalence receipts and labeled retail estimates. No invented ROI numbers.

New hosts now get their first recommendations within minutes of connecting a PMS — the same checks the nightly engine runs fire immediately on connect.

Portfolio KPIs live — RevPAR, occupancy, ADR vs market

Properties view now shows trailing-30-day RevPAR, occupancy, and how each listing's ADR sits vs the local market median. Numbers compute live from your synced bookings and refreshed market data.

ADR vs Market P50 surfaces as a signed delta — "+12% above" or "−8% below" — so you can see which listings are pulling weight versus leaving money on the table.

Portfolio KPI band now renders real values instead of placeholders for every host with at least one synced PMS connection.

PMS connect — inline credential validation before submit

When you paste credentials on the connect screen, we now validate them live against your PMS within ~600ms — you see "✓ Connected · 4 listings found" with the first three names BEFORE you click Connect.

Added a direct deep-link button to your PMS's API settings page so you don't have to alt-tab and hunt through bookmarks.

Submit now shows multi-step progress (Verifying credentials → Registering webhooks → Done) instead of a single opaque spinner.

Activation funnel end-to-end — signup to first audit in minutes

New customer flow runs without founder hand-holding: pick a tier → Stripe checkout → connect PMS → first audit fires within seconds of the connection landing.

Every paid tier ships with a 7-day free trial — cancel anytime during the trial without a charge. (Corrected 2026-06-06: this entry originally said "no card required upfront"; checkout collects a card at signup and first charges when the trial ends.)

Welcome email confirms your tier + tour link. Re-engagement nudge fires if you haven't opened the dashboard in 7 days (at most one email a week while you are away).

Onboarding tour + connect-time property picker

First-time hosts see a guided 5-step tour: pick PMS → connect → walk through the dashboard zones. Skip, defer, or replay anytime from the topbar.

When you connect a PMS that has more listings than your tier covers, a property picker lets you pick which to monitor — no silent overage, no auto-billing surprise.

Dashboard density redesign + 7 new market intelligence cards

Home, Properties, and Queue collapsed from 8–10 stacked sections into 2–3 focused zones with breathing room. Sidebar flattened to a 4-item primary nav.

Four new cards available on every paid tier: Booking lead-time trend, Supply pressure, Revenue percentile, Year-over-year performance.

Three additional cards shipping behind Pro tier: demand-event surge alerts, flight-disruption signals, severe-weather displacement. (Correction, June 12, 2026: later dashboard redesigns re-homed these — supply pressure and year-over-year now live in the Home market strip and the per-property tabs, while the lead-time and revenue-percentile cards were retired. The three event-signal cards were retired when their data-source trial lapsed. Today every plan includes everything — no feature is gated by tier.)

Admin / host workspace separation

Admin tools moved to a dedicated workspace shell with distinct visual treatment. Hosts no longer see admin links anywhere in their nav.

Cost dashboards added for internal observability — daily LLM spend, market-data spend, retention cohort grids, weekly cron throughput.

Pricing rebuild — flat-by-tier, 7-day free trial

Solo ($79/mo for 1–3 properties), Host ($249/mo for 4–10), Pro ($549/mo for 11–30). Dropped per-listing pricing in favor of flat-by-tier structure matched to portfolio size.

Free trial (7 days) available on all paid tiers.

Free Audit remains available for one-off listing inspections; all pricing tiers lock founding-customer discount for year one. (Correction, June 11, 2026: the free audit was later retired from the public site — the 7-day trial is now the way to see the engine on your own listings. Audit note, June 12, 2026: no founding-customer discount exists in the launch pricing — that waitlist-era promise did not carry over.)

Pricing honesty pass: dropped aspirational features (Custom rules, White-label, API access, Priority support tiers). Only features shipping or under active development are listed.

Custom sign-in surface — Google-only, zero vendor chrome

Rebuilt /login and /signup from scratch. No third-party widget, no appearance overrides — just the Restay auth shell, one Google button, one redirect. (Update, June 2026: email/password sign-in and sign-up shipped alongside Google — the surface is no longer Google-only.)

Google sign-in uses the official four-color G mark on a white button; the rest of the surface keeps the cream-and-gold editorial treatment from the landing page.

Inline spinner sits where the G logo was, so the button width stays stable during the OAuth hop — no layout jump.

Removed the Docs link from the site nav until real documentation exists; FAQ now sits in its place.

Landing redesign · honest tier posture · legal surface complete

New landing page live with the split-funnel rate-gap preview. Pure market-data math, no LLM, four-second response. (Correction, June 12, 2026: the public rate-gap preview was retired when the site went trial-first — the landing now leads with the 7-day trial.)

Early tier models (Operator, Observer, Orchestrator) evaluated; later replaced with flat-by-tier pricing aligned to portfolio size.

Added /security, /changelog, /contact, /manifesto, /about. Terms, Privacy, and Acceptable Use updated to match current capabilities — no overclaims.

Re-themed every inner page to match the new cream/editorial system; single shared SiteShell for nav, footer, and prose.

Database RLS initplan performance fix

Migration 003 applied — rewrote row-level security policies to reference auth.uid() inside SELECT subqueries, eliminating per-row re-evaluation.

All 12 production tables now pass the performance advisor with zero WARN-level lints.

Eighteen INFO-level lints (unindexed FKs, unused indexes) tracked for a post-launch indexing pass.

Audit persistence + resume-on-refresh

Audit runs now persist to our database via audit_store.py. Close the tab, come back, pick up where you left off.

In-memory hot cache for active audits; durable database layer for everything else.

Audit progress UI rebuilt with a six-step 3D capsule loader that mirrors backend state.

Row-level security enabled across all tables

Migration 002 — RLS enabled on all 12 application tables. The public anon key has zero access to user data.

Backend service-role usage audited; every read and write is now user-scoped.

Free audit pipeline — pricing, photos, reviews, demand

End-to-end free audit: paste an Airbnb URL, receive a named-reasoning report covering rate gap vs comps, photo scoring, review signal, and demand curve. (Correction, June 12, 2026: the free audit was later retired from the public site — the 7-day trial is now the way to see the engine on your own listings.)

Live market-data integration; average cold audit cost ~$0.54, cached ~$0.04.

Auth + billing skeleton

Sign-in, sign-up, and SSO callback wired through our managed identity provider. Middleware protects /dashboard and /audit.

Stripe checkout session creation + webhook listener. Price IDs configurable via environment variables.