ZT/Apps
Doc · Privacy policyRead 0%
STO

Doc · Privacy policy

What STHLM Rail stores, what it sends, and why

STHLM Rail is a departure board app for Stockholm public transport, made by Zhihui Tang as an independent developer. This page covers the iOS app. It has no accounts and no ads, and it doesn't use your location.

Last updated 31 October 2026

Your stations stay on your phone

Favorites, recent searches and settings never leave the device.

Anonymous usage and crash data

Sent to Google Firebase to see which features are used and to fix bugs.

No tracking for ads

No advertising identifier, no location, no contacts, no account.

01Data stored on your device

To work offline and remember your choices, the app keeps the following in its own storage on your iPhone or iPad. None of it is sent to the developer.

  • Favorite stations and the order you put them in.
  • Recent map searches, the last stations you picked in the map search.
  • Settings: time style (LED or flip board), which transport modes to show, haptic feedback, language and the last open tab.
  • SL's station list, a cached copy of public data so station names can be matched quickly.

Deleting the app removes all of it. Depending on your iCloud settings, it may be included in your device backup like any other app data.

02Departure data from SL

To show departures, the app requests the station list and the departures for the station you open from SL's open Transport API at transport.integration.sl.se. These requests contain only station identifiers. Like any web request, they reveal your IP address to SL's servers. SL handles that under its own privacy terms.

The rail map is bundled inside the app and loads no outside content. If you open the journey planner from the More tab, sl.se opens in Safari and SL's privacy terms apply there.

03Usage statistics (Google Analytics for Firebase)

The app uses Google Analytics for Firebase to understand which features are used, which stations people open and which searches find nothing. The version of the SDK in the app is the one without advertising identifier support, so it never reads your device's advertising ID (IDFA) and the app never asks to track you.

The app logs these events:

EventWhenDetails sent
station_previewA station card opens on the mapStation name, and whether it came from the map, search or favorites
station_viewA full departure board opensStation name and where it was opened from
map_search_openThe map search opensHow many recent searches were shown
map_search_pickA station is picked in the searchStation name, how it was picked and its position in the list
map_search_cancelThe search is closed without a pickThe text typed into the search (up to 100 characters) and how many results it had

Firebase also records standard information on its own: an app instance ID created on install, device model, iOS version, app version, language, a coarse location (country and city) derived from the IP address, and session start, screen views and engagement time. Google Analytics doesn't store IP addresses. The app instance ID is random and is not linked to your name, Apple ID or email.

Please don't type personal information into the map search. It is meant for station names, and what you type is sent if you close the search without picking a station.

More about how Google processes this data: Privacy and security in Firebase.

04Crash reports (Firebase Crashlytics)

If the app crashes, Firebase Crashlytics sends a report the next time it starts: the stack trace, device model, iOS version, app version, free memory and disk space, and a random installation ID. Reports are used only to find and fix the bug.

05Feedback by email

Choosing feedback in the More tab opens an email draft to the developer in your own mail app. Below the space where you write, the draft lists the app version, iOS version and device model, so problems can be reproduced; you can edit or delete that line. Nothing is sent unless you press send. Your email address and anything you write are then used only to reply to you, and are not shared with anyone.

06What the app never collects

  • Your location. The app doesn't ask for location permission.
  • Your name, email, phone number or Apple ID. There is no account or login.
  • Contacts, photos, calendar, microphone or camera.
  • The advertising identifier (IDFA). There are no ads and no ad networks.
  • Payment information. The app is free and has no in app purchases.

Usage and crash data are not sold, and are not used for advertising or profiling.

07How long data is kept

  • On your device: until you remove it in the app or delete the app.
  • Usage statistics: event level data is kept for no longer than 14 months, then deleted automatically by Google Analytics. Aggregated reports, such as daily totals, contain no individual data.
  • Crash reports: kept by Crashlytics for 90 days.
  • Feedback emails: kept as long as needed to handle your message.

08Your rights and choices

Usage and crash data are processed on the basis of legitimate interest: keeping the app working and improving it. Google processes the data on the developer's behalf as a data processor, and may transfer it outside the EU under the safeguards described in Google's terms.

Under the GDPR you can ask for access to, correction of or deletion of personal data about you, and object to its processing. Because the app has no accounts, the developer can't link data to you by name. If you send your app instance ID along with your request, the data tied to it can be deleted. Deleting and reinstalling the app gives you a new, unlinked ID.

If you think your data has been handled wrongly, you can complain to the data protection authority where you live. In Sweden that's IMY, Integritetsskyddsmyndigheten.

09Children

The app is rated 4+ and can be used by anyone. It doesn't knowingly collect personal data from children, and handles everyone's data the same way, as described above.

10Changes to this policy

If the app starts handling data differently, this page will be updated before the new version is released, and the date at the top will change.

11Contact

The developer, Zhihui Tang, is responsible for the processing described here.

Questions or requests about your data

crafttang@gmail.com