Skip to contentBePünktli

Zürich Altstetten, Bahnhof

Stop 8591056 · Zürich · ZH


This figure covers every line that calls here, taken together — a long-distance train and a town bus in one number. We measured what that costs: the line you actually travel on sits 1.88 percentage points from this figure on average. It is the only pooling of this kind we allow.

Timetable period 2025

The published figure is the most recently completed timetable period. The current one is below it as a trend — month by month, and never folded into a single figure: nothing is averaged across a timetable change.

December 8, 2024 – December 13, 2025

86.46% — less than 3:00 late, coverage 94.21% (floor 90%)

ThresholdShareCoverageStop events counted
under 3:0086.46%94.21%441'474
under 5:0095.92%94.21%441'474
under 15:0099.33%94.21%441'474

Distribution of delays

MeasureValue (min:s)
Median0:58
90th percentile3:22
95th percentile4:24
Measured arrivals439'001

The 3:00 threshold can see none of what happens beyond it: nine arrivals in ten are under 3:22.

Cancellations and early departures

MeasureShareCoverage
Ran rather than cancelled99.44%94.21%
Departures not early99.28%94.21%

An early departure is one more than a minute ahead of the timetable. It has its own denominator — measured departures — because sharing the arrivals' one would make it depend on how many origin stops an operator has.

What this figure is made of

Three disclosures travel with every number on this page. For some operators they are not decoration — they are the whole finding.

DisclosureShareWhat it means
Confirmed98.43%The share of counted arrivals for which an arrival event fired (REAL). The rest is a forecast — which says something about a stop's equipment, not about whether the vehicle came.
Restated as timetable0.05%The share of what could have been measured that was removed because the forecast was the scheduled second exactly. A denominator that lost a fifth of itself is a different statement from one that lost nothing.
Confirmed and exactly on plan0.93%The share of confirmed arrivals filed at exactly the scheduled second. Disclosed and deliberately not removed: no rule in this project reaches this case.

The months inside this period

The figure above is counted over the whole period. A single month inside it can have quite different coverage — and one that is below the floor on its own disappears into a period figure that clears it.

MonthShareCoverageConfirmedRestated as timetableConfirmed and exactly on plan
January 202588.36%99.2%98.76%0.04%0.58%
February 202588.18%98.85%98.53%0.04%0.65%
March 202583.42%99.09%98.74%0.03%0.86%
April 202583.98%99.16%98.61%0.01%0.68%
May 202580.7%98.52%98.14%0.03%0.68%
June 202580.09%98.69%98.61%0.05%0.7%
July 202587.63%99.6%98.75%0.05%0.82%
August 202588.47%99.5%98.7%0.09%0.85%
September 2025not published84.02%98.38%0.07%0.81%
October 2025not published83.72%98.18%0.08%0.87%
November 2025not published82.87%97.63%0.06%1.75%

Rows with no share are below the 90% floor on their own. The figure above stands: it is measured over the whole period and it clears the floor. Both are true, and only one of them used to be on this page.

Trend — Timetable period 2026

The current timetable period, month by month. Each month is counted on its own; these rows do not add up to the figure above and are not meant to.

MonthShareCoverageConfirmedRestated as timetableConfirmed and exactly on plan
January 202688.13%99.4%98.76%0.09%0.64%
February 202691.93%99.54%98.55%0.07%0.67%
March 202689.42%95.85%98.36%0.09%0.7%
April 202688.98%98.2%98.73%0.06%0.75%
May 202686.34%99.52%98.56%0.07%0.73%
June 202686.45%99.63%98.9%0.05%0.7%
July 202690.44%99.2%98.94%0.05%0.79%
August 202689.51%98.96%98.94%0.05%0.65%
September 202685.87%99.6%98.95%0.04%0.62%

Every row carries its own coverage. A month below the floor publishes no share — the three columns on the right still say why.

Not measured yet — these months are after the archive's most recent one: October 2026, November 2026

By hour of day

When an hour starts decides more about punctuality than almost anything else measured here.

Over the last 365 days in the archive, not the timetable year above — so the grid shows the hours as they run now.

October 1, 2025 – September 30, 2026

HourMonTueWedThuFriSatSunStop events counted
05:0095.45%95.98%94.94%96.48%95.31%95.46%95.86%10'458
06:0091.29%91.04%91.69%90.97%92.14%98.07%98.25%23'818
07:0088.21%83.4%84.51%85.42%92.52%97.3%98.5%26'712
08:0079.97%70.06%75.7%74.15%89.64%94.05%97.29%27'162
09:0087.62%84.35%86.61%83.8%90.54%90.69%92.33%25'265
10:0092.78%89.25%91.09%90.46%90.31%92.39%93.15%24'566
11:0092.6%90.88%90.5%88.81%89.71%92.43%94.94%24'537
12:0092.49%90.95%87.77%89.59%88.5%90.77%94.01%24'617
13:0091.93%90.49%88.43%89.34%88.07%90.88%92.1%24'561
14:0091.62%89.18%86.86%89.27%87.51%87.29%90.87%24'524
15:0089.4%86.13%86.07%86.09%84.04%87.42%89.8%24'840
16:0088.59%84.67%83.87%83.59%86.73%85.12%88.85%27'940
17:0087.57%80.12%80.33%81.96%87.72%84.66%86.58%28'513
18:0092.9%85.38%85.15%86.95%91.26%84.08%89.95%27'876
19:0094.43%89.78%89.99%90.89%90.75%88.21%92.19%25'340
20:0092.02%90.17%90.14%91.59%90.23%85.84%92.48%23'509
21:0091.91%88.86%88.58%88.69%87.05%86.39%93.13%18'439
22:0094.2%91.9%91.13%91.06%86.7%88.66%96.03%18'409
23:0095.74%92.83%94.3%93.18%89.33%86.37%96.2%15'926
00:00 (+1)98.51%95.34%96.62%96.84%92.43%89.67%97.82%12'781
01:00 (+1)too few measurementstoo few measurements95.67%94.76%81.75%78.18%97.24%2'975
02:00 (+1)nothing measurednothing measuredtoo few measurementstoo few measurements87.86%86.95%too few measurements1'969
03:00 (+1)nothing measurednothing measuredtoo few measurementstoo few measurements98.81%96.49%too few measurements1'321
04:00 (+1)nothing measurednothing measuredtoo few measurementstoo few measurementstoo few measurementstoo few measurementsnothing measured120

The outlined cell is that day’s worst hour — it is not the same hour on every day.

Service day, not calendar day: hour 24 is 00:00–00:59 the following morning and still belongs to the day before.

An hour's coverage is the measurement axis alone. The figure at the top of this page takes the worst of three axes — days, journeys, measurements — and so rests on more evidence than these rows do.

About this stop

Stop number8591056
MunicipalityZürich
CantonZH
Country codech
Also reported asZürich, Bahnhof Altstetten

The station is measured as a whole: every edge and platform together. An individual edge has no figure of its own here.

Source and method

Source of the measurements: opentransportdata.swiss (istdaten). How we measure is written up in the methodology.

A figure is published only from 90% coverage upward. Below it there is no figure here — not a greyed-out one, not a dash, none.