API reference

Last Day

Today's departure pressure and the late checkout price it recommends.

One read that answers a single operator question: how tight is today, and what should late checkout cost. Hotel Operator polls it for the Last Day strip on the Offers tab, and the GM Feed folds the same numbers into its own card. Everything is computed on read from stays, so there is nothing to refresh or invalidate.

GET /v1/last-day/summary

Departure pressure for the property's current day, with the band it falls in and the price that band carries.

Auth: unauthenticated in this build.

Request

GET /v1/last-day/summary

GET /v1/last-day/summary

No path params, no query params, no body.

Response

JSON

{
  "departures_today": 1,
  "arrivals_today": 1,
  "pressure": 1,
  "band": "medium",
  "recommended_price_usd": 40,
  "eligible_departing": 1
}
FieldTypeMeaning
departures_todaynumberLive-origin stays departing today.
arrivals_todaynumberLive-origin stays arriving today.
pressurenumberarrivals_today / departures_today, rounded to two decimals. Zero when nobody departs today.
bandstringThe first configured band whose max_pressure covers this pressure. In the Solara Cove config: low up to 0.5, medium up to 1.0, high above that.
recommended_price_usdnumberThe band's price. 25, 40, and 60 in the shipped config.
eligible_departingnumberDeparting stays that could actually receive a departing-today offer: recognized and consented.

Counts compare date parts only, so a vendor-sourced date carrying a time suffix (2026-09-10 00:00:00) counts the same as a bare 2026-09-10. "Today" is the property's calendar day in America/Nassau, not UTC. See property-time.ts.

Errors

None. The route always returns 200. With no stays at all it returns zeros with the lowest band.

Notes

  • pressure is deliberately blunt: arrivals over departures, nothing else. There is no forecast and no model behind it.
  • departures_today counts every departing stay. eligible_departing counts only the subset an offer can legally reach, which is why the two differ on a normal day.
  • The band table and its prices live in core/config/solara-cove.json under late_checkout_bands. Changing the config changes the recommendation with no code change.
  • The GM Feed shows this block only when the band is not low and no departing-today offer is already open. Sending that offer clears the card. See gm-feed.ts.