Skip to contentBePünktli

Transports publics fribourgeois

Operator 53 · TPF · rail


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

89.83% — less than 3:00 late, coverage 94.19% (floor 90%)

ThresholdShareCoverageStop events counted
under 3:0089.83%94.19%811'888
under 5:0092.77%94.19%811'888
under 15:0093.84%94.19%811'888

Distribution of delays

MeasureValue (min:s)
Median0:19
90th percentile2:00
95th percentile2:49
Measured arrivals762'493

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

Cancellations and early departures

MeasureShareCoverage
Ran rather than cancelled93.92%94.19%
Departures not early99.82%94.19%

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
Confirmed94.96%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.01%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.69%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 202594.2%91.34%89.31%0.01%0.75%
February 202593.44%91.73%93.83%0.01%0.69%
March 202591.97%91.84%94.73%0%0.7%
April 202592.16%90.79%95.62%0%0.71%
May 202592.23%90.85%95.53%0%0.71%
June 202593.39%90.68%94.84%0.01%0.69%
July 202593.69%96.87%96.91%0%0.64%
August 202592.68%98.69%91.97%0.02%0.62%
September 202580.38%97.14%96.55%0.02%0.66%
October 202576.19%97.66%98.55%0%0.71%
November 202583.01%98.28%98.21%0%0.65%

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 202695.24%99.52%96.33%0%0.68%
February 202687.05%99.75%94.17%0%0.62%
March 202694.96%99.17%94.17%0%0.75%
April 202696.55%99.39%93.93%0%0.74%
May 202683.41%98.31%97.79%0%0.81%
June 202676.93%96.93%100%0%0.8%
July 202671.83%96.22%100%0%0.87%
August 202674.09%96.16%98.74%0%0.87%
September 202693.68%99.17%93.89%0%0.69%

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:0096.72%94.56%97.42%96.46%98.88%nothing measurednothing measured2'773
05:0094.31%93.7%93.8%96.08%94.6%95.26%95.24%21'387
06:0088.61%87.4%88.61%88.91%88.88%91.33%92.87%42'465
07:0080.1%79.9%81.75%81.72%82.02%88.95%89.66%49'303
08:0082.31%83.28%82.71%82.52%82.79%89.31%87.98%44'673
09:0085.76%86.31%86.91%86.48%85.46%87.16%86.49%44'951
10:0086.25%86.46%86.48%86.32%85.43%87.26%86.53%45'418
11:0085.68%86.23%85.59%86.55%86.01%86.17%85.56%46'361
12:0084.9%85.79%85.08%85.79%85.58%86.32%86.59%45'441
13:0082.43%83.55%85.43%83.76%83.98%85.57%87.26%47'347
14:0083.49%84.19%85.59%84.58%83.75%85.31%85.04%45'044
15:0085.22%85.67%85.32%85.51%85.16%86.67%87.38%45'494
16:0085.13%85.54%84.33%83.64%83.69%85.45%86.48%45'390
17:0085.31%84.1%84%83.38%82.45%84.29%85.93%48'066
18:0084.61%83.95%83.95%84.53%82.55%84.31%85.74%47'620
19:0085.49%84.42%83.45%82.71%80.4%86.38%87.41%47'967
20:0086.27%85.46%85.33%85.04%84.57%87.07%87.69%43'489
21:0085.4%86.16%85.29%85.54%85.46%87.49%88.65%42'476
22:0086.84%86.74%86.73%85.1%85.88%86.86%87.05%42'114
23:0090.58%90.83%89.88%87.58%87.41%86.37%92.07%38'075
00:00 (+1)90.57%90.65%91.78%88.12%88.58%89.1%90.45%14'601
01:00 (+1)nothing measurednothing measurednothing measurednothing measuredtoo few measurementstoo few measurementsnothing measured246

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 operator

Operator id53
AbbreviationTPF
Modesrail
Lines in the registry8
Appears intimetable and real-time data
Country prefix85

The line registry is built from one week of June 2026; services that did not run that week are missing from it.

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.