Privacy Policy

Last updated: 21 October 2026

ExaCalc is built with privacy as a core principle. This policy explains what data we collect, why we collect it, who processes it for us, how long we keep it, and your rights over it.

Free accounts are not open yet. Everything below that is marked "account" describes what will apply from the moment you can create one. Until then, ExaCalc collects only the anonymous data described in sections 2.1, 2.6 to 2.10 and 2.12.

Our commitment

We only use your information to give you a better, more personalised ExaCalc experience. We never sell your data and we don't share it with third parties, except the service providers that operate parts of ExaCalc for us (listed in section 5) — and only as needed to do so.

Running, securing and improving ExaCalc is part of giving you that experience, so sections 2 and 3 list everything we actually do with data, including security logs, usage statistics and advertising. The only other disclosures are those the law requires (section 5.1).

TL;DR: the short version

  • Calculations run in your browser. We only receive your inputs and results if you choose to save them to an account, email them to yourself, or click "Explain this for me".
  • You can use every calculator anonymously. An account is optional and only adds saving, syncing and higher limits.
  • Marketing email is a separate, unticked choice. You can unsubscribe in one click.
  • Our web servers keep standard access logs (including IP addresses) for up to 7 days.
  • We use privacy-first analytics, and the free version of the Android app shows ads (Google AdMob); the website currently shows none.
  • The Android app asks for the microphone only when you tap the mic, and for notifications only when you set a reminder. Ads in the app use your Android advertising ID, and in the EEA and the UK they appear only after you answer Google's consent form (sections 2.13 and 6).
  • We never sell your data. Section 5 lists every provider that processes data for us.
  • You can download your data and delete your account yourself.

1. Who we are

ExaCalc is an independent online hub of calculators, converters, and financial tools, operated by a small indie team based in India. We are the data controller for personal data collected through this website and the ExaCalc Android app. You can reach us at indigoworks28@gmail.com.

2. Data we collect

2.1 Tool inputs and results

Every calculator, converter, and tool on ExaCalc runs in your browser using JavaScript. Numbers you enter, files you process, and results that appear are computed locally and are not sent to our servers by default. We receive them only in these cases, all started by you:

  • Save to your account (history, scenarios). The inputs and results you save are stored on our servers so they sync between your devices.
  • "Email me this result". The tool name, inputs and results (and the share link, if included) are sent through our server and our email provider (Resend, section 5) to the address you type in. ExaCalc does not store the message or the address in its database (our email provider keeps its own delivery records); our server only keeps an in-memory counter by IP address, for about an hour, to limit abuse.
  • "Explain this for me" (AI explanation, where available). The tool name, inputs and results are sent from our server to Anthropic to generate a short plain-English explanation (see section 5). Nothing is sent unless you click the button.
  • Share links. A share link puts your values in the link itself. Anyone who opens it, and our access logs (section 2.8), will see those values.

2.2 Account data (account)

When you create an account we store:

  • your email address and whether you have verified it, plus the time you joined and last signed in;
  • an optional display name (if you sign in with Google, the name Google shares; otherwise it defaults to the part of your email before the @);
  • if you use Google sign-in, your Google account identifier (the "subject" ID), which we use to recognise you. We do not receive your Google password;
  • one-time sign-in codes, stored only as a keyed hash (never the code itself), valid for 10 minutes, together with the email address they were requested for and a keyed hash of your IP address for abuse control. If you request a code but never sign in, that address is kept only with the expired code, for about a day;
  • a hashed sign-in session token (refresh token) so you stay signed in;
  • your plan (free or Pro) and, if you subscribe, subscription status, billing cycle and dates. We do not store card details; see section 5;
  • older accounts created with a password store a bcrypt hash of it (never the password).

2.3 Optional profile (account)

After you sign up we may ask, once, what best describes you (for example student, professional, business owner, educator), which topics interest you, and how you heard about ExaCalc. Every question is optional and you can skip them all. Our systems can also store a two-letter country code on your profile, although the sign-up screens do not ask for one at the moment. We use these answers only to personalise which tools and content we recommend to you, and they are included in your data export.

2.4 Consent records (account)

When you give or withdraw consent to marketing email (at sign-up, in your account settings, via an unsubscribe link, or automatically when you delete your account), we append a record containing your internal user ID, a keyed hash of your email address, a keyed hash of your IP address, the version of the wording you saw, where the choice was made, and the time. These records are not deleted with your account (see section 7), and they cannot be used to read your email address or IP address back.

2.5 What you save (account)

Calculation history, favourite tools, saved scenarios (name, inputs, results and an optional note), reminders (title, due date, related tool and region, and whether it has been sent), custom formulas and preferences. When you sign in, favourites and history already stored on your device may be merged into your account. Limits on how much you can save depend on your plan.

2.6 Usage counters and limits

To apply limits such as monthly PDF exports and daily AI questions, signed-in users have a per-feature counter per day or month on our servers (linked to your account, removed about two months after the period ends). Signed-out counters are kept only in your browser's local storage.

2.7 Security and abuse prevention

  • Sign-in and other sensitive requests are rate-limited using counters keyed to a keyed hash of your IP address (and of the email being used). These counters expire within an hour.
  • A general request limiter holds your raw IP address in our in-memory data store (Redis) for about one minute to stop floods of requests, and a few small in-memory limiters in our web application (for example on the "useful" votes) do the same for about a minute.
  • A short account activity log (which action, such as signing in with a password, saving or deleting a history item, creating a formula or API key, or a subscription change; which tool or item; and when) is kept for your account and erased with it. It does not record your IP address, except for sign-ins through an institution's single sign-on (SSO), where the IP address and browser type are recorded too.
  • If Cloudflare Turnstile is enabled on sign-in, your browser runs a bot check with Cloudflare and our server sends Cloudflare the check token and your IP address to verify it.
  • Customers who use an API key have their requests logged (endpoint, status, time, IP address and browser type) so usage limits and abuse can be handled.

2.8 Server logs

Our web server writes a standard access log for every request: date and time, your IP address, the page requested (including any query string, such as the values in a share link), the response status, and your browser's user-agent and referrer. We use it for security, debugging and to count visits. These log files are kept for up to 7 days and then deleted.

2.9 Analytics

  • ExaCalc's own visit counter (no cookies, no scripts). A service on our own server reads the access log to count page views and produce statistics such as popular pages, referring websites and the country of visits. The country is looked up on our server from your IP address using a downloadable database (IP-to-country data by DB-IP.com, CC BY 4.0), so your IP is not sent to a third party. To count unique visitors without cookies, it creates a pseudonymous visitor ID: a one-way hash of your IP address and browser type mixed with a secret that changes every month and is deleted after three months, after which the IDs can no longer be linked back to an address. Raw IP addresses are held in this pipeline for at most 2 days. Per-visitor daily records are kept up to 13 months, per-visitor page detail for 90 days, and only totals by page, country and referring site are kept long term.
  • Cloudflare Web Analytics is not currently switched on. If we enable it, it is a cookieless beacon that reports aggregate page views, referrers and countries to Cloudflare, and we will update this policy.
  • Google Analytics 4 is not currently used. If we ever switch it on, we will update this policy first and ask for your consent through the cookie banner before it sets any cookies.

2.10 Votes and feedback

The "was this tool useful" thumbs store your vote together with a random device ID created in your browser (no name, email or IP address), so one device can cast one vote per tool. The vote record holds the tool, your vote and that device ID, nothing else; it is stored in our database.

The feedback form sends what you write, the type and tool you chose, the optional email address you give, the page you were on and your browser type (user-agent) to our server. We store these in our database and, where it is configured, also email them to us through Resend (section 5). The feedback record has no IP address field (your IP appears only in the access logs, section 2.8). If delivery fails, the form keeps your message only in your own browser. If we ever connect a fallback form service (Web3Forms, section 5), the same details would be sent to it. Feedback and messages you email us are kept for as long as needed to deal with them; ask us by email (section 9) if you want yours deleted. Do not put sensitive personal information in feedback.

2.11 Payments

If you buy a Pro plan, checkout is handled by our payment processor, which acts as merchant of record. It receives your email address and payment details. We receive confirmation of the subscription and its status, not your card number.

2.12 Institutions, teams and other applications

If you apply for an institution licence, or create or join a team, we store the details you provide (for example organisation name, contact name and email, size, and membership and role information) for as long as the licence or team exists.

2.13 The ExaCalc Android app

The Android app (package com.exacalc.app) loads the ExaCalc website inside a native shell, so everything else in this policy applies in the same way: the pages you open are requested from our servers (section 2.8) and the app stores the same kind of local data as the website. The app has no analytics or crash-reporting SDK of its own, and it does not show the website's cookie banner. What the app adds:

Permissions the app asks for, and why

  • Internet and network state. To load ExaCalc, and to detect that you are offline so the app can show the calculators bundled inside it (see below).
  • Microphone (RECORD_AUDIO). Used only for voice input in "Ask ExaCalc anything", and asked for only when you tap the microphone button. While you speak, the audio is handled by the speech-recognition service of your device, which on most Android phones is provided by Google and may send the audio to its servers. ExaCalc does not record, save or receive the audio. The text that comes back is used on your device to fill the box and find a matching tool; the Ask box matches your words to a tool in the app itself and does not send what you type or say to our servers. You can refuse or remove the permission in Android settings and keep using the app by typing.
  • Notifications (POST_NOTIFICATIONS). Asked for only when you set a reminder, so the app can show it. Nothing is sent to our servers to do this.
  • Run after restart (RECEIVE_BOOT_COMPLETED). Lets the app set your saved reminders again after the phone restarts.
  • Advertising ID (AD_ID). Used by Google AdMob for the ads in the free version (see section 6).

What the app does with data

  • Ads through Google AdMob. The free version shows a banner and occasional full-screen ads. AdMob and Google Play services may collect your Android advertising ID, IP address, device and app information, ad interaction and diagnostic data, and share it with Google to serve, measure and secure ads. Ad content is limited to a "PG" maximum rating. In the EEA and the UK, Google's consent form appears before any ad is requested. Google AdSense is not used inside the app. See section 6.
  • Reminders you set in the app (a title, text, the ExaCalc page to open and the time) are stored only in the app's private storage on your device and are removed when they have been shown, when you cancel them, or when you uninstall the app or clear its data. They are not sent to us or anyone else.
  • Share. When you use the share button, the text or file (for example a PDF or image the page generated) is handed to the Android share sheet and the app you pick. Which app you choose decides what happens next. ExaCalc keeps only a temporary copy of a shared file in the app's cache.
  • Offline pack. The app contains bundled copies of many calculator pages. It uses them only when your device is offline; they contain no personal data and nothing is downloaded or collected to provide them.
  • The app may read the country code of your SIM or mobile network, or your device language region, to choose default currency and regional settings. This does not use location permission and is used on your device only.
  • Google sign-in in the app, when accounts are open, uses Google's native sign-in on your device and only sends us the identity details described in section 2.2. Accounts and sign-in are not switched on at the moment.
  • The app does not request location, contacts, camera, photos, files or SMS permissions, and does not sell data.

2.14 Cookies and local storage

We set very few cookies. Most of what ExaCalc remembers is kept in your browser's local storage and never leaves your device, for example theme, language, currency, favourites, recent tools, history when signed out, sign-in tokens, and counters for prompts and limits. We also guess your country on your device from your time zone and language (or in the app, your SIM country) to choose a default currency; this guess is not sent to us. The full list is in the cookie banner's "Manage preferences" panel (on the website; the Android app does not show the banner, and uses the same local storage inside its WebView). The categories are:

  • Strictly necessary and functional. Keep the site working and remember choices you made. They cannot be declined, and they are not used for tracking.
  • Analytics. Reserved for Google Analytics 4, which is not currently used (section 2.9). Our own counter and Cloudflare Web Analytics use no cookies.
  • Advertising. Reserved for website advertising, which is not currently loaded (section 6). The Android app's Google AdMob ads use the device advertising ID rather than browser cookies (sections 2.13 and 6).

You can change your cookie choices at any time from "Manage preferences" in the cookie banner or the site footer. You can also clear local storage in your browser settings.

3. How we use data, and our legal bases

  • To provide your account and the features you ask for (signing in, saving, syncing, reminders, emailing you results, quotas, Pro access, support). Basis: performing our contract with you.
  • To send marketing email (new calculators, tax and rate reminders, tips; at most about once a week, only if you opted in). Basis: your consent, which you can withdraw at any time.
  • To personalise the tools and content we recommend using your optional profile and usage. Basis: your consent and, for basic personalisation, our legitimate interest in a relevant service.
  • To keep ExaCalc secure and stop abuse (rate limits, bot checks, access logs, error diagnosis). Basis: our legitimate interests in security and reliability.
  • To understand and improve the site using our own aggregate statistics and Cloudflare Web Analytics. Basis: our legitimate interest; if we ever enable Google Analytics we will ask for your consent first.
  • To show ads that fund the free version: in the Android app (Google AdMob) and on the website (none are currently shown there). Basis: your consent where the law requires it, otherwise our legitimate interest.
  • To keep proof of consent (section 2.4). Basis: our legitimate interest and legal obligations in being able to show that consent was given.
  • To comply with the law, including tax and accounting rules for payments handled by our payment processor.

4. What we never do

  • We never sell your personal data to advertisers, data brokers, or anyone else.
  • We never use browser fingerprinting or track you across other websites ourselves.
  • We never require sign-in to use a calculator or graphing tool.
  • We never send marketing email unless you opted in, and the "Email me this result" feature sends one message to the address you enter, only when you ask, and never adds it to a mailing list.
  • We never store your card number, CVV or banking details.

5. Who processes data for us

These are the service providers that operate parts of ExaCalc for us. They receive only what they need for the job described, and we do not share personal data with anyone else except as described in section 5.1.

  • Hetzner Online GmbH hosts our servers and database (data centre in Nuremberg, Germany) and provides server and storage-box backups.
  • Backup storage. Encrypted copies of our database (encrypted on our server before upload, so the storage provider cannot read them) and aggregate, non-personal visit-counter snapshots may be stored with Hetzner (Storage Box), Cloudflare (R2) and Google (Drive), and counter snapshots in a private GitHub repository.
  • Email delivery. A third-party transactional email service sends your sign-in codes, reminders, account notices, results you ask us to email you, and (if you opted in) marketing email. It receives the recipient address and the message.
  • Resend (Resend, Inc., United States) delivers the "Email me this result" message to the address you enter, and the e-mail copy of feedback sent to us. It receives the recipient address and the message content. resend.com/legal/privacy-policy
  • Google provides Google sign-in, Google AdMob (ads in the Android app) and, for encrypted backups, Google Drive. Google receives your IP address and device data when your browser or the app loads its scripts. For AdMob ads in the app, Google (AdMob and Google Play services) may also receive your advertising ID, app information and ad interaction and diagnostic data. policies.google.com/privacy If you use voice input in the Android app, the speech-recognition service on your device (usually Google's) processes the audio under its own terms; ExaCalc does not receive it.
  • Cloudflare provides Turnstile (bot check on sign-in, when enabled), and R2 storage for encrypted backups. cloudflare.com/privacypolicy
  • Dodo Payments, our payment processor and merchant of record, handles Pro checkout, tax and refunds. Razorpay is named in our terms as an alternative processor for payments in India and will only process data if and when we enable it. Their privacy policies apply to payment processing.
  • Anthropic generates the optional "Explain this for me" text. It receives the tool name, inputs and results you send, and nothing that identifies your account. anthropic.com/legal/privacy
  • Web3Forms would receive feedback messages only if we connect the feedback form to it (see section 2.10).
  • Our server fetches public exchange rates from the ECB-sourced Frankfurter API for the currency converter. No personal data is sent to it.

5.1 Legal and business disclosures

We may disclose information where required by law, court order or a valid legal request, or to protect our rights, users or the security of ExaCalc. If ExaCalc is ever merged with or acquired by another business, your data may transfer to the new owner, who must honour this policy, and we will tell you first. Links to third-party or affiliate websites take you away from ExaCalc; we do not pass them your personal data and their own policies apply.

6. Advertising

ExaCalc does not currently show ads on the website. The free version of the Android app shows ads through Google AdMob: a banner and occasional full-screen ads. Google AdMob and Google Play services may collect your Android advertising ID, device and app information (such as device model, operating system version and app version), your IP address, and ad interaction and diagnostic data, and share this with Google to serve, measure and secure ads. ExaCalc itself does not receive your advertising ID. We limit app ads to a "PG" maximum content rating and the app is intended for people aged 16 and over (section 10). In the EEA and the UK, Google's consent form appears before any ad is requested, and no ad is requested until it has been completed. Google AdSense is not used inside the app.

Your choices for app ads

  • Advertising ID. On Android you can reset or delete your advertising ID (usually Settings > Privacy > Ads > Delete advertising ID; the exact menu depends on your device and Android version) and opt out of ad personalisation. Google describes this at policies.google.com/technologies/ads. Ads can still appear but are less relevant.
  • Consent (EEA and UK). You choose in Google's consent form. The app does not currently have a button to reopen that form; to be asked again, clear the app's storage in Android settings (Settings > Apps > ExaCalc > Storage) or reinstall the app. Email us if that does not work for you. Outside the EEA and UK the form is not shown.
  • Ad personalisation in your Google account: adssettings.google.com.
  • More about Google's practices: How Google uses information from sites or apps that use its services and the data the Google Mobile Ads SDK collects. Ads are provided under Google's own policies; we do not choose individual advertisers, but we set AdMob controls that aim to keep sensitive categories such as gambling and dating out of the app.

Under laws such as the California CCPA, ad personalisation by Google can count as "sharing" for cross-context advertising; we do not sell your data.

7. Retention and deletion

  • Account data is kept while your account exists. If you delete your account, sign-in is disabled immediately, reminders and marketing email stop, and your account and everything you saved (history, favourites, scenarios, reminders, formulas, preferences, profile, usage counters) is permanently erased after a 7-day grace period. Copies in our encrypted backups are not edited; they age out on their own, normally within a further 30 days, and occasional safety copies taken before a database change within 60 days.
  • Consent records (section 2.4) are not deleted with your account. This minimal, hashed proof that consent was given or withdrawn is kept only as long as we need to be able to demonstrate consent, and it contains no readable email address or IP address.
  • Sign-in codes expire after 10 minutes and are removed within about a day after that. Usage counters are removed about two months after their period ends.
  • Access logs (raw IP addresses): up to 7 days. Rate-limit counters: from about a minute (raw IP, in memory) to an hour (hashed).
  • Analytics: see section 2.9.
  • Payment records are held by our payment processor for as long as tax and accounting law requires. We keep only subscription status, and that is erased with your account.
  • Votes use a random device ID that is not linked to your identity; they are kept while the tool exists. You can remove your vote by clicking the thumb again.
  • Feedback (section 2.10) is kept until we have dealt with it and no longer need it; there is no automatic deletion schedule, so email us to have yours removed.
  • On your Android device (reminders, bundled offline pages, local storage) data stays until it is used, cancelled, or you uninstall the app or clear its storage. Data held by Google for ads and speech recognition is governed by Google's own policies and retention.

8. International data transfers

We operate from India, our servers are in Germany (Hetzner, Nuremberg), and some providers (Google, Cloudflare, Anthropic, Resend) process data in the United States and other countries, so your data may be transferred across borders. Where the law requires safeguards for such transfers, we rely on those the providers offer, such as standard contractual clauses or participation in recognised data-transfer frameworks.

9. Your rights

Under GDPR and UK GDPR, India's Digital Personal Data Protection Act 2023 (DPDP), California's CCPA and similar laws, you may have the right to:

  • Access and portability: download your account data (account details, profile answers, history, favourites, scenarios, reminders, formulas, consent records, usage counters and subscriptions) as a machine-readable file from your account page (once accounts open).
  • Correction: edit your profile answers in your account, or email us to correct your name or other details.
  • Erasure: delete your account at /account/delete (once accounts open), or email us if you cannot sign in.
  • Withdraw consent at any time: turn off marketing email in your account or use the unsubscribe link in any email, change cookie choices from the cookie banner, and for app ads delete your advertising ID in Android settings or reset your consent choice (section 6). Withdrawing does not affect what was done before.
  • Object to processing based on legitimate interests, or ask us to restrict it.
  • Nominate another person to exercise your rights if you die or cannot do so (DPDP), and complain to us or to your data protection authority.
  • Under CCPA: to know, delete and correct personal information, and to opt out of sale or sharing. We do not sell personal information and we do not discriminate against you for using your rights.

To exercise a right that is not available in your account, email indigoworks28@gmail.com. We may need to confirm it is you, and we respond within 30 days or the time the law requires. If you use ExaCalc without an account, we mostly hold no data that identifies you (see sections 2.8 to 2.10); we can delete feedback you sent, but we cannot look up data that is only on your device, or data held by Google (ads, speech recognition) or other providers, which you manage with them. If you are in the EEA or UK you may also complain to your data protection authority.

10. Children's privacy

ExaCalc's calculators may be used by anyone, but ExaCalc and the Android app are intended for people aged 16 and over (the Google Play target audience is 16-17 and 18+) and are not directed at younger children. Accounts, the optional profile and marketing email are for people aged 18 or older. We do not knowingly collect personal data from children under 16 (and in particular under 13), and we do not knowingly track younger children. Ads in the app are limited to a PG maximum content rating, and in the EEA and the UK Google's consent form is shown before any ad is requested; ads shown to users under 18 follow Google's own policies. If you believe a child has created an account or given us personal data, contact us and we will delete it.

11. Security

Connections use HTTPS. One-time codes, refresh tokens and passwords are stored only as hashes, IP addresses and email addresses in consent and abuse records are stored as keyed hashes, and access to our servers is restricted. No system is perfectly secure. If a breach affects your personal data, we will notify you and the authorities as the law requires.

12. Changes to this policy

When we make changes, we update the "Last updated" date at the top of the page. If a change materially affects how we handle existing users' data, we will give notice by an in-app banner or by email to account holders at least 14 days before it takes effect, and we will ask for your consent again where the law requires it.

13. Contact and grievances

For privacy questions, data requests, complaints or to reach our grievance contact, email indigoworks28@gmail.com with "Privacy" in the subject. We are a small team and read every message personally.

Privacy Policy: ExaCalc | ExaCalc