NYC Observatory Price Monitor

Daily price and availability across the four NYC observation decks, read from each vendor's own booking pages.

Who is selling out

Reading the board…

Sold-out share by venue and time of day

Share of timed slots already sold out in the selected window, across every ticket type a venue sells; whole-day passes are excluded. Each cell shows the slot count behind its rate.

0% 25% 60% 90%+

How each venue signals it is sold out

Each vendor publishes sold-out state through a different page mechanism, so the four rates above are read in different ways. Hover a signal for the detail.

Unpriced when gone is how much price information a venue loses by selling out. A sold-out slot's price is recovered from the last time we saw it on sale; where no such observation exists the slot stays blank.

What dusk costs

Dusk is computed astronomically per date: 60 minutes before that day's true sunset to 30 minutes after, with the Window column showing the actual clock range counted. Premium compares each dusk slot to the day's cheapest general-admission slot for the same product, per person, tax excluded. Column definitions are on hover.

How often prices move

General-admission timed slots whose per-person price changed on the most recent run, per 100 slots tracked. A venue at 0 changed no prices that run; the data is complete.

Trend

Show the sold-out sunset slots behind this

Where the cheapest slot is · the date and time behind each venue's floor

The lowest price each venue currently lists, and when it can actually be booked. Whole market, unaffected by the filters below. Column definitions are on hover. Click a venue to open its floor day in the Price Matrix.

Price position · stable reference, not today's news

General-admission timed slots on sale in the next 7 days, per person, tax excluded; sold-out slots do not compete. Whole market, unaffected by the filters below. Column definitions are on hover.

Sold out

Inventory that is sold out or vendor-marked limited, across all venues and every product category in the selected window, soonest travel date first; the Status column says which. The Scarcity tab measures general-admission timed slots only, so a venue can appear here on a combo, premium or whole-day product and still read 0% there. Click a row to see that day in the Price Matrix, beside what every other venue charges.

Coverage

How much of the tracked calendar the current filter selection covers. Hover a figure for its exact definition.

Price points

One row per venue, price, category and ticket type on the filtered live board, with how much of the calendar each covers. Column definitions are on hover. Click a row to open exactly those dates and that ticket in the Price Matrix.

The two sunset columns answer different questions.
  • Labeled sunset: the venue tagged this slot "Sunset" in its own booking system. A marketing claim, taken as-is; it does not imply a higher price.
  • Confirmed premium: the slot falls inside real astronomical dusk for that date in NYC and is priced at least 10% above the same product's cheapest slot that day. Both must be true.
A slot can be either, both, or neither: a venue may label a three-hour block "Sunset" while only the hour around true dusk is actually priced up. The per-slot breakdown is in Source evidence at the bottom of this tab.

Products captured

Source evidence

The most recently updated slots, exactly as stored. Each derived value sits next to the input it came from: Price (net) has vendor-bundled sales tax removed, with the scraped Raw and Tax beside it.

This tab shows price movement only, deliberately. Sold-out share by date is a smooth booking curve (nearer dates are always more sold out), so coloring 300 cells by it would just redraw "days until visit". The calendar-shaped question is deviation from that curve: is this date unusually tight for how far away it is. Measured 2026-08-06: zero dates sat above the curve, because the highest-demand dates are 110+ days out, where nothing has sold yet at any venue. That surface gets built when the signal exists; until then, a quiet calendar is the measured answer, not a gap.

One swatch per venue per day, colored by where that day's cheapest price falls between the venue's own cheapest and most expensive day in the window. Each venue is scaled against itself, so a red ESB day and a red SUMMIT day are both that venue's peak, not the same dollar amount. Color shows day-to-day movement only; the spread within a single day is in the detail below. Hover for the math, click a day for the intraday breakdown.

Sunset here means:
  • Non-Sunset is every other timed slot for the same ticket, including a band the venue names beside sunset: Edge's Dusk, ESB's Pre-Sunset/Post-Sunset. Those are separately-priced products, and until 2026-08-18 they were counted as sunset: Edge's sunset floor read $52.00 instead of $60.00 and ESB's read $46.00 instead of $56.00. The Band basis table below shows exactly which of each vendor's bands landed in which column.
  • Range is High minus Low within the same pair, showing how far that venue moves this ticket across the day.
  • Var is the benchmark minus this venue, on each of the four numbers. Positive means the benchmark charges more; a negative number in brackets means this venue does. Change the benchmark in the filter bar to re-base every Var row.
  • Whole-day products (flex and bundle passes) are excluded, because they have no time of day so they can be neither in nor out of a sunset band.

Base product, exclusive of transaction fee

"Sunset" means three things here, and they are not interchangeable.
  • Day part = "Sunset" (this tab's filter): the slot's clock time falls in the dusk window for that date. Purely chronological and comparable across all four venues.
  • Sunset band: the venue's own sunset product, which can sit at any time of day and does not imply a higher price. The cell badge carries the vendor's actual word for it.
  • Confirmed premium: inside the real dusk window and priced at least 10% above that day's cheapest slot. The strictest of the three.
A fourth thing is deliberately none of them. Edge's Dusk and ESB's Pre-Sunset/Post-Sunset are bands the venue names beside sunset and prices separately: Edge's Dusk floor is $52 against its Sunset floor of $61. They carry a muted badge with the vendor's own word and count as non-sunset. Until 2026-08-18 a substring test pooled them into "labeled sunset", which over-counted Edge by 35% and ESB by 60%; see the Pricing Grid tab's Band basis table for the current split.
The middle two are the Market Overview columns of the same name; each Matrix cell carries a small badge where one applies. The Sunset pricing button sets Day part = Sunset with category = GA.

Daily price matrix

One row per date, day part and category; one column per venue. Each cell shows that venue's real time, with the vendor's own product name on hover.

The playbook

Each venue's operating strategy, measured from the whole collection record and re-derived on every read. Unaffected by the filters below. The bottom line of each card reads this week's general-admission moves against the stated posture: a fixed-schedule venue moving any price is significant; a dynamic venue moving hundreds is routine.

What moved

The largest coordinated price moves in the selected window, grouped by venue, time of day and direction. A venue absent here moved no prices. Corrections to our own collection defects are excluded. Column definitions are on hover. Click a row to drill the change events below to exactly those moves.

Change strategy by observatory

A change is one slot on the live board whose next observation differed in net price or availability. Only real movement is counted: pairs straddling the 2026-07-31 collection cutover are excluded, as are pairs where nothing actually differed. Defaults to the last 7 days; widen Detected from to reach further back.

Change events

Data checks

One row per venue. Last confirmed is when its live board was last read, Last run the verdict of the run that read it, and Last clean run the most recent run to pass every gate. A failed run still writes rows, so the last two can differ by a day. Bookable from counts travel dates from today forward; Past-dated is the share of live rows whose travel date has already passed, held separately so it never inflates coverage. All times UTC.

Recent scrape runs