Method

How the Price Hash Score works

A Price Hash Score is a 0–100 rating of how good one specific fare is, judged against the recorded price history of that exact route, departure month and booking window. 90 or above means book it now.


What the score is calculated from

Two components, weighted, both drawn from fares we have recorded ourselves. Nothing in the score comes from an opinion, a partner, or a model’s judgement.

ComponentWeightWhat it measures
Historical position70%Where this fare sits in the distribution of prices for the same cell
Time to departure30%How far you are from the point where this route’s fares start climbing

What a “cell” is, and why it is narrow

Every fare we record is filed against three things: the route, the departure month, and how far ahead of departure it was seen. A new price is only ever compared against other prices from that same combination.

That is deliberately narrow. A fare 90 days out in March is not comparable to one 5 days out in November, and comparing them produces a confident number that means nothing. Most price claims you will read compare against a much broader average, which is why almost everything looks like a deal.

When we refuse to produce a score

Below 20 recorded fares in a cell there is no score at all. Between 20 and 59 a score exists but no alert is ever sent. Only at 60 or more will we spend an email on it.

A missed alert costs one opportunity. A misleading alert costs every future email.

Those thresholds are provisional and we are calibrating them against real open rates. When they change, we will say so in the field notes.

What the AI does, and what it is not allowed to do

A language model writes the one-paragraph explanation in each alert. It is handed a fixed set of numbers computed beforehand and asked to turn them into readable English.

After it writes, every number in the output is extracted and checked against those supplied facts. Any figure that does not match rejects the whole paragraph; we retry once, then fall back to a sentence assembled directly from the data. An unvalidated explanation is never sent. The model never produces, adjusts, or infers a score, a price, or a threshold.

Why commissions cannot affect your score

We may earn a small referral fee when you book through a link in an alert. The code that computes scores has no access to that data — not as a policy, but as a structural boundary: the scoring module cannot import anything that can see partner payouts, and a test fails the build if that boundary is ever crossed.

It cannot rank by commission because it cannot observe commission. That is the only version of this promise worth making.

Common questions

Is the Price Hash Score generated by AI?

No. The Price Hash Score is computed by deterministic code from recorded fare data. A language model is used only to write the sentence explaining the score in plain English, and every number it writes is checked against the source data before the email is sent.

What score means I should book?

90 or above means book now. Between 80 and 89 the fare is good but not exceptional. Below 80 we do not send an alert at all on the free tier.

How much price history does PriceHash need before it can score a route?

At least 20 recorded fares in a route, departure-month and booking-window cell before any score is produced, and at least 60 before an alert is sent. Below those thresholds PriceHash produces no score rather than an unreliable one.

Does PriceHash predict future flight prices?

No. PriceHash describes what a route has historically done and where the current fare sits in that history. It does not forecast future prices, and the alert copy never claims to.