Last updated: July 29, 2026
Trip Cost Calculator (the "Service", "we", "us") is operated as an independent, privacy-first project. We do not require accounts, collect personal data, or store your route history on our servers. All trip calculations happen entirely in your browser. The only data leaving your device are (a) the route query sent to Google Maps so we can compute distances, (b) analytics — a cookieless, anonymous page count by default, or anonymised analytics with cookies if you accept the analytics category, and (c) ad requests, non-personalised by default and personalisable only if you accept the advertising category.
This page explains in detail what is and isn't collected, what cookies are used, who the third parties are, and how to change your preferences at any time.
We process the following limited categories of data:
localStorage. They never leave your device.The Service uses three categories of client-side storage. You can review and change your choice at any time via the "Cookie Preferences" link in the footer.
These are required for the calculator to function and to remember your settings between visits. Two are first-party cookies, which — like all cookies — are sent to our host with each page request, so that the right theme renders before the page paints and your consent choice is applied before any third-party tag loads:
theme — your light/dark mode choice. Expires after 1 year.tcc_consent — your cookie preferences, set by the consent banner itself. Expires after 6 months.Everything else in this category is kept in your browser's localStorage and is never sent to any server:
tripSettings — vehicle type, units, currency, language, consumption, price per unit.tripCalcHistory, parkingHistory, lastRouteState — your saved trips, recent route and parking searches, and the last route you calculated (so a reload doesn't lose it).ipCountryCache — the two-letter country code detected for your connection, cached for 7 days so we don't re-check it on every visit.email_trip_last_to — the address you last used for "Email this trip", so the field is pre-filled next time. This stays on your device; we do not keep it on our servers.travel_deals_route_count, travel_deals_last_shown — counters that stop the optional travel-deals prompt from reappearing too often.pwa_install_recorded — a flag so that installing the app to your home screen is only counted once.These cookies are set only after you accept the "Analytics" category. If you reject or later opt out, any existing cookies in this group are automatically cleared:
_ga, _ga_*, _gid — Google Analytics 4 (anonymised IP)._clck, _clsk, CLID, MUID, ANONCHK, SM — Microsoft Clarity.If you decline or ignore the banner, Microsoft Clarity is never loaded, and Google Analytics runs in Google's Consent Mode "denied" state: it stores no cookies and sends only an anonymous, cookieless signal that a page was viewed, which tells us how busy the site is without identifying you or letting us recognise you across visits.
These cookies are set only after you accept the "Advertising" category. Accepting it also allows Google and its partners to use your prior visits to show personalised ads — ad revenue is how the calculator stays free:
__gads, __gpi, IDE, _gcl_* — Google AdSense.If you decline or ignore the banner, the AdSense script still runs but with advertising storage denied and ad click identifiers redacted: you see non-personalised ads and no advertising cookies are stored. You can switch personalisation off again at any time from Cookie Preferences.
On your first visit you are shown a banner with three options: Accept all, Reject all, or Manage preferences. No analytics or advertising cookies are stored on your device until you click Accept all or individually enable a category. Before you decide — and if you decline — Google's tags stay in their "denied" state: aggregate, cookieless measurement and non-personalised ads only.
You can change your mind at any time:
Routing, distance calculation, and the embedded map use the Google Maps Directions and Maps JavaScript APIs. The Google Places API additionally powers place autocomplete and the parking, truck-parking, and EV-charging searches, which means the text you type into those fields and the coordinates you search around are sent to Google as you use them. All of these requests go directly from your browser to Google. Google's processing is governed by their Privacy Policy and Maps Platform Terms.
Used to count visits and understand which features are popular. Google Analytics 4 does not log or store IP addresses — IP anonymisation is applied automatically and cannot be switched off — and we additionally send the legacy anonymize_ip flag. Your IP is still transmitted to Google in order to derive an approximate location before being discarded. Without Analytics consent it operates cookieless and cannot identify you or link your visits. Google Privacy Policy.
We use Microsoft Clarity to capture aggregated behavioural metrics, heatmaps, and session replay (with text fields masked) to improve the Service. Website usage data is captured using first- and third-party cookies. Loaded only with Analytics consent. See the Microsoft Privacy Statement.
AdSense displays the ads that fund the Service. If you accept the Advertising category, Google and its partners may set advertising cookies and use your prior visits — on this site and others — to serve personalised ads. If you decline, ad storage is denied, ad click identifiers are redacted, and you see non-personalised ads instead. You can withdraw consent at any time from Cookie Preferences, and manage or opt out of personalisation directly at adssettings.google.com or via the EDAA at youronlinechoices.com (EU) and optout.aboutads.info (US).
When you use the "Email this trip" feature, the email you typed in the form is sent through Resend, our transactional email provider, with the trip summary as the message body. We do not store the email address or message on our servers; Resend keeps short-lived logs for delivery and bounce handling per their Privacy Policy.
To preset a sensible currency and unit system we detect which country you are connecting from. We first try Cloudflare's cdn-cgi/trace endpoint; if that is unavailable we fall back to ipapi.co and then ipwho.is. These requests necessarily expose your IP address to the provider in question, which may be located outside the EEA. We keep only the resulting two-letter country code, cached in your browser for 7 days.
The optional "travel deals" prompt links to Travelpayouts booking partners. Nothing is sent to them unless you click the link; if you do, you leave our site and Travelpayouts may set its own cookies to attribute any booking to us. See their Privacy Policy and our affiliate disclosure in the Terms & Conditions.
Fonts and a small number of libraries are loaded from Google Fonts (fonts.googleapis.com, fonts.gstatic.com), jsDelivr (cdn.jsdelivr.net, which serves our cookie-consent banner), and Tailwind's CDN (cdn.tailwindcss.com, on these static pages only). Requesting a file from any CDN discloses your IP address and user-agent to that provider. These requests are required to render the page and set no cookies.
The Service is hosted on Cloudflare Pages and served through Cloudflare's CDN, which processes connection metadata (IP address, user-agent) for security and performance under their Privacy Policy.
For visitors in the European Economic Area, the United Kingdom, and Switzerland, the legal bases we rely on under Articles 6 GDPR / UK GDPR are:
You have the right to access, rectify, erase, restrict, or object to processing, and to data portability, where applicable. Because we do not store personal data on our servers (only Resend keeps short-lived email logs), most of these requests resolve by clearing your browser's localStorage. For Resend-related requests, contact us and we'll relay to the provider.
We never sell your personal information for money. However, if you enable the Advertising category, the resulting personalised advertising counts as "sharing" personal information for cross-context behavioural advertising under the CPRA. We do not share it in any other circumstance, and we do not share the personal information of anyone we know to be under 16.
Do Not Sell or Share My Personal Information: turn the Advertising category off — open Cookie Preferences — and no advertising identifiers are stored or shared. We also honour the Global Privacy Control signal where your browser sends one, and ads default to non-personalised until you opt in.
You have the right to know, delete, and correct any personal information we hold, and not to be discriminated against for exercising those rights. In practice we hold almost nothing: everything is either on your device or with the third parties listed above. To exercise these rights, email email@tripcostcalc.com.
The Service is not directed at children under 16. We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, please contact us and we will delete it.
We do not retain personal data on our servers. Cookies set by third parties expire per the durations defined in their own privacy policies (typically 6–24 months). Local-storage entries persist until you clear your browser data or change the corresponding setting.
If we update this policy, we will revise the "Last updated" date at the top and, for material changes, re-prompt for consent via the cookie banner (we bump an internal revision counter to do this). Continued use of the Service after a change constitutes acceptance.
Questions, requests, or complaints about this policy or your data: email@tripcostcalc.com. We aim to respond within 48 hours.