Skip to contentBePünktli

Zürich Affoltern, Bahnhof

Stop 8591054 · 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

90.77% — less than 3:00 late, coverage 91.85% (floor 90%)

ThresholdShareCoverageStop events counted
under 3:0090.77%91.85%137'595
under 5:0097.21%91.85%137'595
under 15:0099.58%91.85%137'595

Distribution of delays

MeasureValue (min:s)
Median0:49
90th percentile2:50
95th percentile3:48
Measured arrivals137'146

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

Cancellations and early departures

MeasureShareCoverage
Ran rather than cancelled99.67%91.85%
Departures not early99.65%91.85%

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
Confirmed99.44%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.15%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 plan1.39%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 202590.9%99.42%99.44%0.12%0.91%
February 202590.75%99.48%99.76%0.11%1.22%
March 202586.94%99.37%99.51%0.12%0.83%
April 202591.49%99.62%99.62%0.14%1.02%
May 202589.47%99.21%99.44%0.19%1.19%
June 202589.92%99.16%99.33%0.19%1.26%
July 202590.93%97.79%99.55%0.09%1.58%
August 2025not published78.43%99.3%0.15%1.83%
September 2025not published78.29%99.52%0.13%0.99%
October 2025not published77.9%99.3%0.19%1.06%
November 2025not published77.52%98.99%0.21%2.51%

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 2026not published78.98%99.26%0.06%1.23%
February 2026not published79.06%99.29%0%0.94%
March 2026not published78.91%98.91%0.03%0.97%
April 2026not published78.91%99.23%0.02%1%
May 2026not published78.58%98.93%0.01%0.96%
June 2026not published79.18%98.5%0.06%0.94%
July 2026not published79.27%98.49%0.01%0.81%
August 2026not published80.57%98.13%0%0.87%
September 2026not published88.14%98.2%0.02%0.84%

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
04:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements362
05:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements2'208
06:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements5'975
07:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements7'599
08:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements7'577
09:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements6'141
10:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements5'996
11:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements6'000
12:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements6'008
13:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements5'999
14:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements6'007
15:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements6'009
16:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements7'402
17:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements8'341
18:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements7'851
19:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements6'477
20:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements5'950
21:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements5'194
22:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements3'846
23:00too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements3'187
00:00 (+1)too few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements1'993
01:00 (+1)nothing measurednothing measuredtoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements132
02:00 (+1)nothing measurednothing measuredtoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements134
03:00 (+1)nothing measurednothing measuredtoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements224
04:00 (+1)nothing measurednothing measuredtoo few measurementstoo few measurementstoo few measurementstoo few measurementstoo few measurements88

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 number8591054
MunicipalityZürich
CantonZH
Country codech
Also reported asZürich, Bahnhof Affoltern

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.