The trust page

How we reach a verdict

Every verdict on this site answers one question: is the view worth going up for, today? Not whether the weather is pleasant. Not whether it's safe. Whether standing on that platform right now is worth the ticket. This page explains, honestly, what goes into that answer — including what we don't know yet.


What each verdict means

VIEW
The deck's actual viewing altitude is clear — go.
MAYBE
Workable, but conditional — check the best window before you commit.
SKIP
Save the ticket for a better day — honest advice, never a warning.

The verdict comes before the score

Every decision on this site is presented verdict first, then a one-sentence recommendation, then confidence, then the structured reasons behind it, and only then the numeric score. That order is deliberate: the word is the product, and the number is supporting evidence for it — never the other way round. We don't hide a score behind a black-box formula and ask you to trust it; we show the reasons that produced the verdict, and the score is just where those reasons land on a 0–100 scale.

Why altitude, not a cloud-cover percentage

A generic weather app reduces the sky to one number — percentage cloud cover. A forecast reading "90% cloud" sounds like a wasted trip. It might be. Or the deck might be sitting well above the cloud, looking down onto an unbroken white sea while the city below reports exactly that same "90% cloud" and sees nothing but grey.

What actually decides the view is where the bottom of the cloud layer sits relative to the deck's own viewing altitude — its ground elevation plus how high the ticketed level physically sits, added together. Two decks with an identical structure height can have very different viewing altitudes once the ground under them is counted: Victoria Peak's Sky Terrace is only 32 m above its own base, but that base sits 396 m up a hill, which matters far more than the structure itself. That single comparison — viewing altitude against cloud base — is the one this whole product exists to make, and it's drawn out explicitly on every deck page as the Altitude Column.

When no cloud base has actually been measured for a deck, we don't guess one. The column draws no stratum at all in that case, and the page's prose says so plainly — an honest "we don't know" beats a plausible-looking guess every time.


Confidence, and why it's never a percentage

Every verdict also carries a confidence rating — high, medium or low — shown as three segments, never as a number. We run one weather model at a time, our operations data is a published schedule rather than a live confirmation, and some decks have no measured cloud base at all. Given all of that, a number like "82% confident" would claim a precision we don't actually have. Confidence gets capped, never inflated: an uncertain operating status or a missing measurement pulls it down, and nothing pushes it back up beyond what the underlying data actually supports.

Operations are a hard gate

None of the above matters if the deck is closed. A closed or scheduled-closed deck can never produce a VIEW verdict, however good the sky looks — if you can't buy a ticket and go up, there's no view to have. This is enforced in code, not just in writing: the engine forces the verdict to SKIP and the score to zero the moment operations says closed, before anything else is considered.

We currently know a deck's published hours, not whether it's actually running at this exact moment. Outside those hours we can say "closed" with confidence; inside them, an unconfirmed status is treated as exactly that — unconfirmed — and lowers confidence rather than being assumed away as "probably fine".


Affiliate relationships can never influence a verdict

The part of this system that decides VIEW, MAYBE or SKIP has no import path to affiliate identifiers, pricing or booking links at all — not a policy we ask engineers to remember, but a boundary a test enforces mechanically on every change. If a future commit ever tried to make the decision code depend on which booking partner pays better, the build would fail before it could ship. Offers are attached to a page only after its verdict already exists, in a separate part of the codebase, and never reorder or influence which deck gets recommended.

That matters because a SKIP verdict earns nothing — nobody books through a page that just told them to save their money for a better day — and we publish it anyway. If commerce could touch the verdict, every day would quietly become a MAYBE.


The numbers behind a verdict

Every verdict on this site is computed at ingest, every hour, from live weather — not written by hand and not generated at page load. The engine scores each deck hour by hour, then takes the day's score from its best window rather than its average. That is deliberate: a visitor chooses when to go, so the useful question is "is there a good time today", not "is the average hour good". A grey afternoon followed by a clear sunset is a VIEW with a window on it, and averaging the two would recommend neither.

An hour's score combines six things, weighted differently per deck: where the deck sits relative to the cloud, near-field skyline clarity, long-distance horizon clarity, haze from airborne particulates, rain and wind (weighted by how exposed the level is — an enclosed deck barely cares), and the quality of the light. The weights are not one formula: a desert deck and a maritime deck fail for opposite reasons on days their cloud numbers look identical, so Burj Khalifa is scored mostly on haze and The Shard mostly on cloud.

Those last two are measured differently on purpose. Near-field clarity is absolute — if the city beneath you has disappeared, that is a bad visit anywhere on Earth. Long-distance clarity is judged against each deck's own record, from the visibility we have logged at that deck every half hour since launch. A single worldwide scale cannot do this job: 20 km of visibility is a rare gift over Hong Kong and a mediocre Tuesday over Manhattan, and scoring both the same way told you which continent a deck stood on rather than whether today was worth it. So a deck's typical hour scores around the middle, and its genuinely exceptional hours score near the top — which is the comparison a visitor deciding between today and Thursday actually needs.

The thresholds are fixed and published: 70 and above is VIEW, 45 to 69 is MAYBE, below 45 is SKIP. They sit where they do because MAYBE has to mean something — set VIEW at 55 and almost every day qualifies, set it at 85 and the site is useless for planning.

Two rules override the arithmetic. A deck inside the cloud is capped near zero however good the readings are, because a 30 km visibility measured at street level says nothing about a platform sitting in fog 279 m up. And a closed deck is SKIP at zero regardless of the sky, which is the hard gate above.

Hours you cannot buy are not scored at all. A brilliant clear 03:00 cannot lift a deck's verdict, because nobody can go up at 03:00 — the engine only ever looks at the deck's own published opening hours.


Landmark pages answer a different question, and make a weaker claim

A page asking whether a distant landmark is in view is not asking whether the ticket is worth buying, so it never borrows the verdict wordmark. It reports a likelihood instead, and the difference matters: a day can be an excellent visit with the mountain completely absent, and the two answers are allowed to disagree.

The honest limit is that nothing here has looked at the landmark. What the site has is a measured and forecast picture of the air along the sightline, ranked against everything that deck has previously recorded, which is a statement about atmosphere rather than about sight. So a landmark page will say the air is clear enough that something is usually visible; it will never say that it currently is. Where a visibility reading is missing, the answer is unknown rather than a quiet no — manufacturing a negative out of ignorance is the same error as manufacturing a positive.

Two of the inputs are deliberately absolute rather than relative. Percentile rank alone would promote a mediocre day to a good one whenever its neighbours were worse, so each landmark also carries a floor below which the answer is no at any rank. Those thresholds are editorial judgement, like the weights above, and they are not yet calibrated against whether the landmark actually turned out to be there.


What we don't know yet

Cloud base — the underside of the layer — is the measurement most weather sources publish. Cloud top is the one the altitude comparison actually needs, and it's frequently unmeasured: standard surface observations report where a cloud starts, not where it ends. A deck that clears a measured base can still be sitting inside the layer rather than above it, and without a top reading we have no way to tell which. Where that's the case, we report the comparison as indeterminate rather than assume the deck is clear — the same "we don't know" discipline as an unmeasured base, applied one level up.

The other open limit is time. The scoring weights and thresholds above are editorial judgement written down where it can be argued with, not values tuned against outcomes — we have not yet been running long enough to compare a forecast verdict with what the day turned out to be. One piece of that has already changed the engine: long-distance clarity is now scored against each deck's own logged record rather than one worldwide scale, because the logs showed the single scale was measuring which continent a deck stood on. The rest waits on a full year of data, and until then these are honest judgements rather than calibrated ones.


Common questions about how this site decides

How does ViewOrSkip decide whether a view is worth it?
Every hour the deck is open is scored separately on six things: where the deck sits relative to the cloud base and cloud top, how clearly you can see the city below, how far you can see towards the horizon, airborne haze, comfort (rain and wind, weighted by how exposed the deck is), and light. The day takes the score of its best window rather than an average, because a deck that is excellent for two hours is a good visit and an average would hide that. Whether the deck is open is checked first and overrides everything: a closed deck can never be recommended, however good the sky is.
Why does the verdict differ from my weather app?
A weather app describes the air at street level. An observation deck is 200 to 550 m above street level, which is frequently a different weather situation entirely. The number that decides an observation deck day is the height of the cloud base and cloud top against the deck’s own altitude above sea level, and almost no consumer forecast exposes it. That is the whole reason this site exists: “cloudy” in the city can mean a grey window at one deck and a view over a sea of cloud at another, four blocks away.
Why is the deck’s height above sea level used instead of the building’s height?
Because cloud is measured from sea level and does not care what is underneath it. A 190 m observatory on a 270 m hill is at 460 m and behaves like a 460 m deck; a 259 m deck on flat ground is at 279 m and behaves like one. Ranking by building height gets hilltop decks badly wrong in both directions, which is why the comparison graphic on the home page draws every tower from sea level rather than from its own doorstep.
What does the confidence level mean?
It reflects how much of the input the site actually has. When a source is missing — no measured cloud base, no visibility reading — the value is recorded as unknown rather than guessed, and the confidence drops to say so. An honest “we do not know” is more useful than a plausible-looking number, because the entire value of a recommendation is that it can be trusted when it is confident.
Do affiliate commissions influence the verdict?
No, and the codebase is arranged so that they cannot. The decision engine has no access to affiliate data at all — a test fails the build if any module under the decision layer imports anything from the affiliate layer. Offers are attached afterwards, in the presentation layer, to a decision that already exists. This site regularly recommends against buying the ticket it earns a commission on, which only means anything if the ordering is structural rather than a promise.
How often is the data updated?
Conditions are refreshed hourly, and every deck page carries the timestamp and the source of the data it is showing. Pages are cached at the edge for a fraction of that, so a page can never be more than one refresh behind the verdict it is displaying. If the data is a fallback rather than live, the page says so at the top rather than presenting it as current.