Der Schienenverkehr verursachte 2020 Gesamtkosten von 12,0 Milliarden Franken (2010: 9,8 Milliarden). Davon entfielen 9,9 Milliarden Franken auf den Personen- und 2,1 Milliarden auf den Güterverkehr.
Eine wichtige Rolle bei der Finanzierung des Schienenverkehrs spielt neben den Verkehrsnutzenden die öffentliche Hand: Bund, Kantone und Gemeinden übernahmen 2020 rund 5,6 Milliarden Franken der Gesamtkosten (46%). Sie taten dies, indem sie zum Beispiel Infrastrukturprojekte finanzierten oder Leistungsabgeltungen an Transportunternehmen zahlten.