← Privacy in short

The full privacy policy

Last updated 8 October 2026

Contents

terminus is a free, independent student project. It keeps only what it needs to tell you which bus to catch, and you can delete all of it yourself at any time.

What is stored

Using terminus without an email

The Android and Mac apps and the website work without an email address. When you start without one, terminus creates an account with no email, known only to that phone, Mac or browser, and stores the same things as above for it: your timetable, settings, the device's name, and when it was last used. Nothing identifies you unless you add an email later, which keeps your setup and lets you sign in on other devices. On the website, the account is reached through that browser's sign-in cookie: if the browser's data is cleared, or it isn't used for 30 days, there is no way back into it.

An account without an email is deleted, with everything in it, 60 days after it was last used. You can also delete it straight away from the app's settings or the account page. Uninstalling the app doesn't delete it; it is then unused, and deleted after 60 days.

When you sign in from an app, terminus keeps a short-lived request (your email address, the device's name and platform, and when it was made) until you approve it from the email, or for 15 minutes.

What is not stored

To tune its estimates, terminus records anonymous statistics about answers: which stop (when the app sent your location, the one nearest you), where the trip was going, the walk to the stop, which service and bus (its plate), and how long until it came. These carry no account, email or coordinates, but with the time they say roughly where someone was and where they were going. Cloudflare keeps them for three months.

When something goes wrong on the server, it logs which page or request failed, without your location or anything you sent; Cloudflare keeps those logs for a few days.

terminus records where NUS's own shuttle buses are through the day (each bus's plate and position, every 30 seconds) so a day can be replayed on the map. It holds nothing about you, and is kept.

If you ask not to be emailed again, that address goes on a blocklist so sign-in emails are never sent to it. The blocklist is not tied to an account and is kept after an account is deleted, so the address still gets no email.

Who handles it

Everything runs on Cloudflare (hosting, database, email delivery) in data centres that may be outside Singapore. Bus times come from NUS's shuttle feed and, if you turn on public buses, from LTA's DataMall; they are asked only about stops, and receive nothing about you. Reports are emailed to a mailbox the person who runs terminus keeps. Your data is never sold or shared.

Some pages load things from other services, which see your IP address like any website you visit:

On Android phones with Google Play services, terminus uses Firebase Cloud Messaging (Google) to tell the app your trip has changed, so it doesn't have to keep checking. To receive messages, the app registers with Firebase once it has an account, with or without an email, which gives Google an installation ID and a push token for the app on that phone. A message says only that the trip changed, and which phase it is in (for example "time to go"), or that a new semester's reminder is waiting; the app then asks terminus for the details itself. (Versions before 2.5.0 are sent the semester reminder's words, which are the same for everyone.)

If you turn on notifications in the web app, the same message goes through your browser's own push service (Apple's for Safari, Google's for Chrome, Microsoft's for Edge, Mozilla's for Firefox), encrypted so that only your browser can read it. Your browser then asks terminus for the details and shows the notification. Turning notifications off in the web app, or signing out there, removes the address.

When you import a timetable, terminus asks NUSMods for the timetables of the modules in your link. It sends module codes only, nothing about you.

Walking times follow footpaths from OpenStreetMap (map data © OpenStreetMap contributors), with room positions from NUSMods. Both were downloaded once to work out distances; nothing about you is ever sent to either.

The campus map's streets come from Protomaps' build of OpenStreetMap, the bus route lines from OpenStreetMap's roads. terminus keeps its own copy and serves it from this site, so no map company sees where you look. Walking directions on a stop opens Apple Maps on Apple devices, and Google Maps elsewhere, with that stop's position, only when you tap it; from there their own privacy terms apply.

How long it is kept

Your controls

On the account page you can see and edit everything above, download it all as a file (today's trip included), sign out every device, or delete your account. The apps can see and remove your devices too. An account with an email is deleted from the account page. An account without an email is managed from its app, or on the website from the account page in that browser; either can export or delete it.

Contact

Questions or requests about your data under Singapore's Personal Data Protection Act: privacy@rcn.sh.