How are the tides computed?
The tide at a port can be described as the sum of many simple waves, the harmonic constituents, each with its own period and astronomical cause (the Moon, the Sun and their changing positions). The Tides Pro engine takes those constituents from global tide models and, at many stations in the United States and Canada, from harmonic constants fitted to the official prediction. For each port it adds them up and computes the sea level minute by minute; high and low waters are its peaks and troughs.
Tides computed this way are an astronomical prediction: they can be calculated months or years ahead, but they do not include the weather (see below).
How do we check the predictions?
For every port we compare the engine's high and low waters with those of the official prediction for the same station and the same days. Each high water is paired with the official high water and each low water with the official low water, if they are no more than 90 minutes apart. Then we measure how far apart they are:
- Typical time error: the median of the time differences, in minutes, ignoring whether we are early or late. Half of the high and low waters are closer to the official time than this figure, and half are further away. It is the figure we show on each port page.
- Mean time error: the plain average of the same differences. A few large misses push it up more than the typical error, so it is a stricter measure.
- Height error (where the official source allows it): the average difference in centimetres between our heights and the official ones, after aligning the reference level of each port. In the United States and Canada we also check the range ratio: our tidal range divided by the official one (1 means identical).
A port is published only if it passes:
- France and Portugal: «good» up to 12 minutes and «acceptable» up to 30 minutes of mean time error.
- United States, Canada and Acapulco: «good» with a typical time error of 20 minutes or less, a range ratio between 0.75 and 1.25 and at least 85% of the official high and low waters paired; «acceptable» up to 40 minutes with a range ratio between 0.5 and 1.5.
- Spain: the same method against the Instituto Hidrográfico de la Marina, and against Puertos del Estado in the Mediterranean, where the IHM does not publish predictions.
Ports that do not pass are not published. Where the tide is only a few centimetres, the range can match the official one while the times cannot be meaningfully compared; those ports are handled separately and, if published, carry a warning.
What did the comparison show, country by country?
In October 2026 we found and corrected a phase error in four harmonic constituents of the engine, and we repeated the comparisons with the corrected engine on the same days as the August comparisons, so the results can be compared directly. The table shows each figure before and after the correction (previous engine → corrected engine); for each country it is the median of the port figures.
| Country | Official reference | Period compared | Ports compared | Typical time error | Mean time error | Height error |
|---|---|---|---|---|---|---|
| United States | NOAA CO-OPS | 16–23 August 2026 | 74 (all passed) | 6.3 → 6.2 min | 8.9 → 8.4 min | 1.9 → 1.8 cm |
| Canada | Canadian Hydrographic Service (DFO) | 16–23 August 2026 | 76 (75 passed) | 7.0 → 6.7 min | 8.2 → 7.6 min | 3.2 → 2.9 cm |
| France | SHOM | 14–23 August 2026 | 181 (all passed) | 9.8 → 9.3 min | 12.1 → 10.9 min | 10.8 → 6.9 cm |
| Spain | Instituto Hidrográfico de la Marina (and Puertos del Estado in the Mediterranean) | October 2026 | 71 | 4.1 min mainland · 2.8 min Canary Islands (all tides compared, as on tablamareas.es) | — | — |
| Portugal (Lisbon) | Instituto Hidrográfico de la Marina | 31 August – 10 September 2026 | 1 | 1.1 → 1.1 min | 1.7 → 1.7 min | 0.5 → 0.5 cm |
| Mexico (Acapulco) | NOAA prediction for the Acapulco station | 16–23 August 2026 | 1 | 7.4 → 7.4 min | 17.3 → 17.3 min | 0.6 → 0.6 cm |
Some examples of the typical time error with the corrected engine: Boston 1.8 min, Seattle 5.2 min and New York (The Battery) 11.8 min; Halifax 2.8 min, Saint John 1.7 min and Vancouver 10.1 min; Cherbourg 9.2 min, Le Havre 14.8 min and Brest 20.9 min; A Coruña 1.3 min, Bilbao 1.8 min and Cádiz 11.2 min.
Where the engine uses harmonic constants fitted to an official station, as at many ports in the United States and Canada, the correction changes nothing; the improvement is at the ports computed from the tide model. One port no longer passed with the corrected engine and has been removed: Tuktoyaktuk, in the Canadian Arctic, where the tide range is small (typical time error 41.7 min). A few stations that passed are not published as separate ports because they are not a named harbour (two in the United States, one in Canada).
Portugal. In Lisbon the engine uses constants fitted to the prediction of the Instituto Hidrográfico de la Marina, and that is the prediction we compared it with; it has not yet been compared with the prediction of the Portuguese Instituto Hidrográfico. The other 12 Portuguese ports keep the results of the August comparison with the Instituto Hidrográfico (31 August – 10 September 2026, previous engine; for example Leixões 5.5 min and Faro 17.3 min) and are pending revalidation, because the Instituto Hidrográfico's prediction service was unavailable on 26 October 2026. In France, the comparison could not be repeated at Dives-sur-Mer, which is not published for now.
Mexico. Apart from Acapulco, we have not been able to compare Mexican ports with an official prediction, so no validation is published for them and they are not on Tides Pro. Official Mexican sources are the Servicio Mareográfico Nacional (UNAM) and the Mexican Navy.
Where are heights measured from?
- United States: above Mean Lower Low Water (MLLW), NOAA's chart datum, using the official NOAA datum where there is a reference station nearby and an estimate from the engine elsewhere. Heights are shown in feet by default.
- Canada, France, Spain, Portugal and Mexico: generally above mean sea level, so negative low waters are normal. Ribadesella is an exception: its fitted IHM station uses chart datum, as its port page and JSON state. Always use the reference declared by the port; do not mix heights with a chart that uses another zero.
Each port page states the reference next to its heights. More in What is chart datum?.
How is the coefficient computed?
For France, Spain and Portugal we compute the tide coefficient with the Brest reference, as the SHOM does: one coefficient for each Brest high water, on the 20 to 120 scale, and for each day the larger of the two. In the United States, Canada and Mexico the coefficient is not used; there we classify each day as spring, mid-range or neap tides by comparing its range with the usual range at that port. More in What is the tide coefficient?.
And the sun and moon?
Sunrise, sunset and moon phase come from the same astronomical calculation the app uses. All times are the local time of each port, with daylight saving time applied.
What do these tables not include?
They do not include the effect of wind or air pressure, which can move sea level by several centimetres or more (we explain it in Wind and pressure). They do not replace the official nautical publications of each country. For navigation, always use the official predictions and the marine forecast.
Data credits
The licence and credits of the tide-model data used by the engine are on the data page.
Port-by-port validation records
The validation summary in JSON records the official station, comparison period, paired sample and available time/height metrics. These are the recorded results, not a new independent rerun. Fit-control windows are marked: fitting and checking on the same period does not demonstrate performance on a separate period. Neither a median nor P95 is a maximum error. Pending revalidations are marked explicitly.