Privacyverklaring
Laatst bijgewerkt: 27 juli 2026
Deze privacyverklaring beschrijft welke gegevens ScootRoute NL verwerkt, waarom, op welke grondslag en hoe lang. Ze geldt voor de ScootRoute NL-app (Android, iOS en de webversie) en is van toepassing op iedereen die de app gebruikt.
Verwerkingsverantwoordelijke
SvenSite
E-mail: svensite@proton.me
KvK-nummer: 83853049
BTW-id: NL003881492B31
Locatie
De app vraagt alleen tijdens gebruik toegang tot je precieze locatie, om je positie te tonen, een route te berekenen en actieve navigatie mogelijk te maken. De app vraagt geen achtergrondlocatie. Tijdens een actieve rit verwerkt de app gefilterde GPS-punten in het geheugen om navigatie, afwijkingen en aankomst te herkennen. Grondslag: uitvoering van de dienst waar je om vraagt.
Routeberekening en externe kaartdiensten
Om een route te berekenen worden start- en bestemmingscoördinaten via een beveiligde verbinding naar de routeringsdienst gestuurd. Voor zoeken, kaartweergave en extra routecontrole gebruikt de app daarnaast OpenStreetMap-gerelateerde diensten: Valhalla voor routering, Nominatim voor zoeken/geocoding, OpenStreetMap voor kaarttegels en de Overpass API voor aanvullende wegcontrole. Deze diensten ontvangen technisch noodzakelijke gegevens zoals je IP-adres en, afhankelijk van de functie, zoektekst, kaartgebied of coördinaten. Hun eigen bewaartermijnen en privacyvoorwaarden zijn van toepassing. Grondslag: uitvoering van de dienst waar je om vraagt.
Lokale opslag
Favorieten, recente bestemmingen, instellingen, een hervatbare actieve rit en routeprobleemmeldingen worden lokaal op je apparaat opgeslagen. Wanneer een voltooide afwijkende rit aantoonbaar sneller was, bewaart de app lokaal maximaal drie tussenpunten, begin en bestemming en de gemeten reistijd, zodat hetzelfde apparaat die route bij een volgende rit opnieuw kan herkennen. Lokale geleerde routes vervallen na maximaal 180 dagen.
De Android-app sluit deze lokale gegevens uit van Android-cloudback-ups en apparaatmigratie; de gegevens blijven binnen de app-sandbox op het apparaat. De webversie gebruikt de afgeschermde site-opslag van de browser; iedereen met toegang tot het ontgrendelde apparaat of browserprofiel kan die lokale gegevens mogelijk benaderen.
Voor betere aankomsttijden bewaart de app daarnaast lokaal een grove corridorcode, spits- of dalcategorie en maximaal twintig recente bruikbare reistijden per categorie. Slechte GPS, lange pauzes, grote afwijkingen en statistische uitschieters worden geweigerd. Pas vanaf drie passende ritten wordt de lokale ETA aangepast. Er worden maximaal veertig corridormodellen bewaard; waarnemingen vervallen na maximaal 365 dagen en verdwijnen direct via Lokale appgegevens wissen in de instellingen.
Als je ScootRoute NL als app hebt geïnstalleerd, worden kaarttegels die je online al bekijkt daarna een tijdje offline bewaard (maximaal 3.000 tegels, oudste eerst verwijderd), zodat een eerder bekeken gebied ook zonder internet nog zichtbaar blijft. Er worden nooit tegels van een gebied opgehaald dat je niet zelf hebt bekeken; dit is dus geen download van een groter gebied. Verwijderen kan via Offline kaart wissen in de instellingen.
Ritten delen voor route-verbetering
De instelling Deel ritten automatisch voor route-verbetering staat standaard aan; je ziet 'm direct bij de eerste keer opstarten en kunt 'm daar of later altijd uitzetten via Instellingen. Staat de instelling uit, dan wordt er niets van het onderstaande verstuurd en verzamelt de app sowieso alleen locatie tijdens een actief genavigeerde rit.
Na elke rit die je actief hebt genavigeerd, stuurt de app een met SHA-256 gemaakte corridorcode, spits/dal, reistijd, afstand en technische kwaliteitswaarden voor het gezamenlijke statistische reistijdmodel (zie hieronder). Dit gebeurt uitsluitend direct na een zojuist afgeronde, actief genavigeerde rit. De verwerking is volledig deterministisch: er wordt geen data naar een AI-aanbieder of een derde land buiten de EU gestuurd. Grondslag: gerechtvaardigd belang bij het verbeteren van reistijdvoorspellingen, met een anonieme, sterk afgeronde dataset en een altijd beschikbare opt-out.
Wanneer een rit ook aantoonbaar een snellere afwijkende route heeft opgeleverd, kan onder dezelfde instelling apart een routekandidaat worden gedeeld (zie hieronder). Een wekelijkse, eveneens volledig deterministische taak clustert de zo verzamelde routekandidaten van meerdere onafhankelijke rijders op dezelfde plek en genereert daar een korte samenvatting van (aantal bijdragers, gemiddelde locatie) voor handmatige review. Suggesties hieruit worden nooit automatisch op je route toegepast: ze doorlopen eerst dezelfde wettelijke routecontrole als een handmatig gedeelde routekandidaat, voordat ze ooit als routecorrectie kunnen worden gebruikt.
Gezamenlijk statistisch reistijdmodel
Voor dit deel ontvangt de server geen start- of bestemmingscoördinaten, adres, volledig GPS-spoor, account, naam of e-mailadres — alleen de hierboven genoemde corridorcode en cijfers. Dit deel traint geen AI- of taalmodel, alleen een statistisch praktijkmodel.
Een gezamenlijke ETA wordt pas getoond vanaf minimaal vijf geaccepteerde ritten van minimaal drie afzonderlijke deelnemers. Ritmedians per deelnemer, uitschieterfilters en een maximumaantal bijdragen per deelnemer voorkomen dat één veelrijder het model domineert. Spits en dal blijven apart. De wettelijke routecontrole en blokkade van verboden wegen gaan altijd vóór een eventuele tijdwinst. Praktijktijden vervallen na maximaal 365 dagen.
Een gedeelde routekandidaat rondt begin en einde af tot een raster van ongeveer één kilometer. Alleen maximaal drie noodzakelijke tussenpunten worden op ongeveer tien meter afgerond meegestuurd; er wordt geen GPS-deelspoor, snelheid per punt of tijdlijn naar de server gestuurd. Een routekandidaat wordt eerst op kaartregels gecontroleerd en vervalt na maximaal 90 dagen.
Je kunt delen op ieder moment uitzetten; dit voorkomt nieuwe uploads. Omdat er bewust geen account of blijvende apparaatcode wordt opgeslagen, kan een eerder gedeelde praktijktijd niet betrouwbaar aan jou worden teruggekoppeld om afzonderlijk te verwijderen; ze wordt automatisch opgeschoond en alleen in een groepsmodel uitgelezen.
Bij het opvragen van een groeps-ETA stuurt de app alleen de ondoorzichtige corridorcode en spits/dalcategorie. Cloudflare verwerkt daarbij technisch het IP-adres; ScootRoute bewaart het ruwe IP-adres niet. Een maandelijks wisselende HMAC-code telt het aantal onafhankelijke bijdragers en begrenst misbruik.
Beveiliging van de database
De centrale database is alleen vanuit de serverfunctie bereikbaar via een Cloudflare-binding en staat niet rechtstreeks open op internet. Cloudflare D1 versleutelt databaseobjecten met AES-256-GCM in rust en beveiligt verkeer tussen de serverfunctie en D1 met TLS. De geheime HMAC-sleutel staat als versleuteld Cloudflare-secret en niet in de app of broncode. API-verzoeken worden op herkomst, type, maximale grootte, veldwaarden en frequentie gecontroleerd; antwoorden worden niet gecachet.
De server schrijft geen verzoekinhoud of GPS-coördinaten naar eigen applicatielogs. Cloudflare kan voor beveiliging en werking wel tijdelijke technische verzoekmetadata verwerken, volgens de Cloudflare-voorwaarden. Een snellere-routezoekopdracht verstuurt begin en bestemming in de versleutelde verzoekinhoud en niet in de URL.
Cloudflare D1 houdt automatisch een versleutelde herstelgeschiedenis bij. Een verwijderde of automatisch opgeschoonde rij kan daardoor nog maximaal de voor het Cloudflare-abonnement geldende Time Travel-periode van 7 of 30 dagen herstelbaar zijn. Die herstelgeschiedenis is niet via de app of publieke API leesbaar en wordt niet voor routeberekening gebruikt.
Vrijwillig een routeprobleem delen
Een routeprobleem blijft eerst lokaal. Alleen wanneer je bij die melding bewust op Deel anoniem met beta tikt, worden de getoonde GPS-locatie, OSM-way, appversie en technische routecontext naar de ScootRoute-database bij Cloudflare gestuurd. De bestemming, je naam, e-mailadres en een gebruikersaccount worden niet meegestuurd. Meldingen ouder dan 180 dagen worden bij de periodieke opschoning verwijderd. Grondslag: toestemming, per melding opnieuw gegeven.
Om spam te beperken verwerkt Cloudflare bij elk verzoek technisch je IP-adres. ScootRoute bewaart het ruwe IP-adres niet; met een geheime sleutel wordt per tijdvak een korte HMAC-controlesleutel gemaakt. Tijdelijke limietsleutels worden uiterlijk na twee dagen verwijderd. Je kunt een gedeelde melding vanuit Mijn meldingen weer uit de centrale database verwijderen, zolang de lokale verwijdercode nog op je apparaat staat.
Accounts, advertenties en tracking
De app bevat geen gebruikersaccount, analytics-SDK of trackingprofiel. Er worden geen locatiegegevens verkocht.
De native Android/iOS-app heeft een optionele functie om tegen het bekijken van advertenties een willekeurig poppetje te ontgrendelen voor op de kaart, als vervanger van de standaard blauwe stip. Advertenties worden nooit automatisch getoond: je tikt zelf op Advertentie bekijken. Deze functie gebruikt Google AdMob. Google en eventuele advertentiepartners kunnen daarbij cookies, lokale opslag, IP-adressen en apparaat- of browsergegevens gebruiken voor advertentieweergave, beveiliging, meting en rapportage; dit is een doorgifte naar een Amerikaanse aanbieder. Voorafgaand wordt toestemming gevraagd via Google's toestemmingsplatform; zonder toestemming toont de app geen advertentie. Grondslag: toestemming, vooraf gegeven per gebruiker via dat toestemmingsplatform. Deze functie zit niet in de webversie/PWA: daar is geen advertentie-SDK beschikbaar.
ScootRoute Crew (uitnodigingscode)
ScootRoute Crew is een optioneel programma om vrienden uit te nodigen. De app maakt daarvoor lokaal op je apparaat een willekeurige code van 8 tekens aan; deze code bevat geen persoonsgegevens en is niet aan een account of apparaat-ID gekoppeld. Als je de code deelt (bijvoorbeeld via WhatsApp) en kiest voor Delen via WhatsApp, wordt alleen een kant-en-klaar bericht met die code geopend in de app van je keuze; ScootRoute stuurt zelf niets naar je contacten. Vult iemand anders jouw code in, dan onthoudt de database enkel dat die code is ingevoerd en, na een voltooide eerste rit, dat er één bevestigde vriend bij is. Er wordt geen naam, telefoonnummer, IP-adres of locatie van jou of je vriend bij de code opgeslagen. Grondslag: toestemming, per code-invoer opnieuw gegeven. Codes en het aantal bevestigde vrienden worden bewaard zolang het Crew-programma actief is; je kunt je lokale code en voortgang altijd verwijderen via Lokale appgegevens wissen.
Bewaartermijnen
- Lokaal geleerde routes: maximaal 180 dagen.
- Lokale reistijdwaarnemingen: maximaal 365 dagen.
- Gedeelde routekandidaten: maximaal 90 dagen.
- Gedeelde reistijdwaarnemingen: maximaal 365 dagen.
- Vrijwillig gedeelde routeproblemen: maximaal 180 dagen.
- Rate-limitsleutels: maximaal 2 dagen.
- Crew-uitnodigingscodes en bevestigde-vriendentellingen: zolang het Crew-programma actief is, tot handmatige verwijdering.
Jouw rechten
Je hebt recht op inzage, rectificatie, verwijdering en beperking van je persoonsgegevens, en op bezwaar tegen verwerking op basis van gerechtvaardigd belang. Stuur voor het uitoefenen van deze rechten een e-mail naar het adres bij Verwerkingsverantwoordelijke. Omdat de meeste gegevens bewust anoniem worden verzameld (geen account, geen apparaat-ID), kan een individuele bijdrage aan het gezamenlijke reistijdmodel niet altijd één-op-één aan jou worden gekoppeld; lokale gegevens verwijder je rechtstreeks via Lokale appgegevens wissen in de instellingen.
Je hebt daarnaast het recht om een klacht in te dienen bij de Autoriteit Persoonsgegevens (autoriteitpersoonsgegevens.nl).
Verwijderen
Je kunt lokale appgegevens verwijderen in de instellingen van ScootRoute of via de opslaginstellingen van je browser of Android-toestel. Verwijder vrijwillig gedeelde meldingen bij voorkeur eerst via Mijn meldingen; na het wissen van lokale opslag raakt de bijbehorende verwijdercode verloren. De app heeft geen gebruikersaccount, dus er is ook geen serveraccount om te verwijderen.
Wijzigingen in dit beleid
Wanneer de gebruikte diensten, dataverwerking of functies van de app wijzigen, wordt deze privacyverklaring bijgewerkt en verandert de datum bovenaan.
Contact
Vragen over deze privacyverklaring of over je gegevens kun je sturen naar svensite@proton.me.
Privacy Policy
Last updated: 27 July 2026
This privacy policy describes what data ScootRoute NL processes, why, on what legal basis, and for how long. It applies to the ScootRoute NL app (Android, iOS and the web version) and to everyone who uses the app.
Data controller
SvenSite
Email: svensite@proton.me
Dutch Chamber of Commerce (KvK) number: 83853049
VAT ID: NL003881492B31
Location
The app only requests access to your precise location while in use, to show your position, calculate a route and enable active navigation. The app does not request background location. During an active ride, the app processes filtered GPS points in memory to detect navigation progress, deviations and arrival. Legal basis: performance of the service you request.
Route calculation and external map services
To calculate a route, start and destination coordinates are sent over a secure connection to the routing service. For search, map display and additional route checking, the app also uses OpenStreetMap-related services: Valhalla for routing, Nominatim for search/geocoding, OpenStreetMap for map tiles, and the Overpass API for additional road checking. These services receive technically necessary data such as your IP address and, depending on the feature, search text, map area or coordinates. Their own retention periods and privacy terms apply. Legal basis: performance of the service you request.
Local storage
Favorites, recent destinations, settings, a resumable active ride and route problem reports are stored locally on your device. When a completed alternative ride was demonstrably faster, the app locally stores up to three waypoints, the start and destination, and the measured travel time, so the same device can recognize that route again on a later ride. Locally learned routes expire after a maximum of 180 days.
The Android app excludes this local data from Android cloud backups and device migration; the data stays within the app sandbox on the device. The web version uses the browser's isolated site storage; anyone with access to the unlocked device or browser profile may be able to access that local data.
For better arrival-time estimates, the app also locally stores a coarse corridor code, a rush-hour/off-peak category, and up to twenty recent usable travel times per category. Poor GPS, long pauses, large deviations and statistical outliers are rejected. Only from three matching rides onward is the local ETA adjusted. A maximum of forty corridor models are kept; observations expire after a maximum of 365 days and disappear immediately via Clear local app data in settings.
If you've installed ScootRoute NL as an app, map tiles you already view online are then kept offline for a while (up to 3,000 tiles, oldest removed first), so a previously viewed area stays visible without internet. Tiles for an area you haven't viewed yourself are never fetched — this is not a download of a larger area. You can remove it via Clear offline map in settings.
Sharing rides to improve routes
The Automatically share rides to improve routes setting is on by default; you see it right away on first launch and can turn it off there or later via Settings at any time. If the setting is off, none of the below is sent, and the app only ever collects location during an actively navigated ride regardless.
After every ride you've actively navigated, the app sends a SHA-256-derived corridor code, rush-hour/off-peak indicator, travel time, distance and technical quality values for the shared statistical travel-time model (see below). This happens only immediately after a just-completed, actively navigated ride. The processing is fully deterministic: no data is sent to an AI provider or a third country outside the EU. Legal basis: legitimate interest in improving travel-time predictions, using an anonymous, heavily rounded dataset and an always-available opt-out.
When a ride also demonstrably produced a faster alternative route, a route candidate can separately be shared under the same setting (see below). A weekly, likewise fully deterministic job clusters the route candidates collected this way from multiple independent riders at the same location and generates a short summary (number of contributors, average location) for manual review. Suggestions from this are never automatically applied to your route: they first go through the same legal route check as a manually shared route candidate, before they can ever be used as a route correction.
Shared statistical travel-time model
For this part, the server does not receive start or destination coordinates, address, full GPS trace, account, name or email address — only the corridor code and figures mentioned above. This part does not train an AI or language model, only a statistical real-world model.
A shared ETA is only shown once there are at least five accepted rides from at least three separate participants. Per-participant ride medians, outlier filters and a maximum number of contributions per participant prevent one frequent rider from dominating the model. Rush-hour and off-peak stay separate. The legal route check and blocking of forbidden roads always take priority over any time saving. Real-world travel times expire after a maximum of 365 days.
A shared route candidate rounds the start and end to a grid of roughly one kilometer. Only up to three necessary waypoints are included, rounded to roughly ten meters; no partial GPS trace, per-point speed or timeline is sent to the server. A route candidate is first checked against map rules and expires after a maximum of 90 days.
You can turn off sharing at any time; this prevents new uploads. Because no account or persistent device code is deliberately stored, a previously shared real-world travel time cannot be reliably traced back to you to delete individually; it is automatically cleaned up and only ever read as part of a group model.
When requesting a group ETA, the app only sends the opaque corridor code and rush-hour/off-peak category. Cloudflare technically processes the IP address in doing so; ScootRoute does not store the raw IP address. A monthly-rotating HMAC code counts the number of independent contributors and limits abuse.
Database security
The central database is only reachable from the server function via a Cloudflare binding and is not directly open on the internet. Cloudflare D1 encrypts database objects with AES-256-GCM at rest and secures traffic between the server function and D1 with TLS. The secret HMAC key is stored as an encrypted Cloudflare secret, not in the app or source code. API requests are checked on origin, type, maximum size, field values and frequency; responses are not cached.
The server does not write request content or GPS coordinates to its own application logs. Cloudflare may process temporary technical request metadata for security and operational purposes, per Cloudflare's terms. A faster-route request sends the start and destination in the encrypted request body, not in the URL.
Cloudflare D1 automatically keeps an encrypted recovery history. A deleted or automatically cleaned-up row may therefore still be recoverable for up to the Time Travel period of 7 or 30 days that applies to the Cloudflare plan in use. That recovery history is not readable via the app or public API and is not used for route calculation.
Voluntarily sharing a route problem
A route problem stays local at first. Only when you deliberately tap Share anonymously with beta on that report are the displayed GPS location, OSM way, app version and technical route context sent to the ScootRoute database at Cloudflare. The destination, your name, email address and a user account are not included. Reports older than 180 days are removed during periodic cleanup. Legal basis: consent, given again per report.
To limit spam, Cloudflare technically processes your IP address with every request. ScootRoute does not store the raw IP address; a secret key is used to create a short HMAC check key per time window. Temporary rate-limit keys are deleted after at most two days. You can remove a shared report from the central database again via My reports, as long as the local removal code is still on your device.
Accounts, ads and tracking
The app contains no user account, analytics SDK or tracking profile. No location data is sold.
The native Android/iOS app has an optional feature to unlock a random character for the map by watching ads, as a replacement for the default blue dot. Ads are never shown automatically: you tap Watch an ad yourself. This feature uses Google AdMob. Google and any ad partners may use cookies, local storage, IP addresses and device or browser data for ad delivery, security, measurement and reporting; this involves a transfer to a US provider. Consent is requested beforehand via Google's consent platform; without consent, the app shows no ad. Legal basis: consent, given in advance per user via that consent platform. This feature is not present in the web version/PWA: no ad SDK is available there.
ScootRoute Crew (invitation code)
ScootRoute Crew is an optional program for inviting friends. The app generates a random 8-character code locally on your device for this; this code contains no personal data and is not linked to an account or device ID. If you share the code (for example via WhatsApp) using Share via WhatsApp, only a ready-made message containing that code is opened in the app of your choice; ScootRoute itself sends nothing to your contacts. If someone else enters your code, the database only remembers that the code was entered and, once their first ride is completed, that one confirmed friend has been added. No name, phone number, IP address or location of you or your friend is stored alongside the code. Legal basis: consent, given again per code entry. Codes and confirmed-friend counts are kept for as long as the Crew program is active; you can always remove your local code and progress via Clear local app data.
Retention periods
- Locally learned routes: maximum 180 days.
- Local travel-time observations: maximum 365 days.
- Shared route candidates: maximum 90 days.
- Shared travel-time observations: maximum 365 days.
- Voluntarily shared route problems: maximum 180 days.
- Rate-limit keys: maximum 2 days.
- Crew invitation codes and confirmed-friend counts: for as long as the Crew program is active, until manually removed.
Your rights
You have the right to access, rectify, erase and restrict your personal data, and to object to processing based on legitimate interest. To exercise these rights, send an email to the address listed under Data controller. Because most data is deliberately collected anonymously (no account, no device ID), an individual contribution to the shared travel-time model cannot always be linked back to you one-to-one; local data can be removed directly via Clear local app data in settings.
You also have the right to file a complaint with the Dutch Data Protection Authority (Autoriteit Persoonsgegevens, autoriteitpersoonsgegevens.nl).
Deleting data
You can delete local app data in ScootRoute's settings or via your browser's or Android device's storage settings. Preferably remove voluntarily shared reports first via My reports; after clearing local storage, the associated removal code is lost. The app has no user account, so there is also no server account to delete.
Changes to this policy
When the services used, data processing, or features of the app change, this privacy policy is updated and the date at the top changes.
Contact
Questions about this privacy policy or about your data can be sent to svensite@proton.me.