Offline-first financial calculator — legal + support
Effective date: 2026-09-05
This is the privacy policy for FINCALC AI (“the app”), an offline-first financial calculator with optional AI features. The app is operated by the FINCALC AI team. Contact: privacy@fincalcai.com.
FINCALC AI is built to compute on your device. The 135-formula calculator engine, calculation history, favorites and exports (XLSX / PDF) all run locally. Nothing about a calculation leaves your device unless you export it, share it, or ask the AI about it.
When you choose to use an AI feature (AI Tutor, AI Assistant, “Explain this result”, or Elite Operator Mode), the app first asks for your permission. With your permission it sends the text of your question — and, when you ask about a calculation, that calculation’s inputs, result and steps — to our server proxy, which forwards them to one of two AI providers: Moonshot AI (Kimi K2.5) or OpenAI (GPT-4.1 Nano). The app removes obvious personal patterns (email addresses, phone numbers, identity-number and card-shaped numbers) on your device before sending, and the proxy applies the same redaction again. You can withdraw the permission at any time in Settings → AI data sharing.
We do not sell your data, do not run advertising, and do not use your prompts to train any model.
The app stores the following on your device only, in an SQLite database:
When you sign in, rows created while signed in are tagged with your account and are hidden from a guest or a different account on the same device. Signing out hides them; signing back in shows them again; deleting your account removes them.
This data never leaves your device unless you explicitly export or share it, or ask the AI about a specific calculation.
| Data | When | Why | Where it goes |
|---|---|---|---|
| Email address | Sign in with Apple / Google | Authentication | Supabase Auth |
| Pseudonymous user ID | Signed in | Identifies your account | Supabase, RevenueCat, Sentry |
| Subscription state (product, period, expiry, renewal flag) | Subscribed | Deliver the tier you paid for | RevenueCat, synced to Supabase user_subscriptions by webhook |
| Sign in with Apple refresh token | Sign in with Apple (when the server is configured for it) | Lets us revoke your Apple authorization when you delete your account (Apple requirement) | Supabase apple_sign_in_tokens, service-role only |
| Crash diagnostics (stack trace, device model, OS and app version, user ID) | A crash or handled error occurs | Fix defects | Sentry — email and IP address are stripped before sending |
| AI question text | You use an AI feature, after consent | Generate an explanation | ai-proxy → Moonshot AI and/or OpenAI |
| Calculation inputs, result and steps | You ask the AI about a specific result or use Operator Mode, after consent | Explain or analyse that calculation | ai-proxy → Moonshot AI and/or OpenAI |
| AI content report (the AI text you flag, your reason) | You tap “Report” on an AI response | Review harmful or wrong AI output | Supabase ai_content_reports |
| Spreadsheet sample (header row and up to 5 rows) | Elite Workspace Mode with the Google Sheets extension | Let the AI map your sheet to formulas | extension-command → AI providers |
The calculator, history and exports never require a network connection. No data is transmitted while you compute, save or export — only when you sign in, subscribe, or use an AI feature.
Before the first AI request the app shows what will be sent and asks you to agree. The choice is stored on your device and can be reversed in Settings → AI data sharing. Declining keeps every non-AI feature working.
[REDACTED]; the proxy repeats the same redaction and caps request size.Numerical results shown to you are never produced by the AI. Operator Mode asks the AI to plan and to narrate; every number is computed by the FinCalc deterministic engine on your device, and anything the AI could not compute is shown as missing rather than filled in.
Our server proxy (a Supabase Edge Function) routes each request to one provider and falls back to the other on failure:
Both providers act as processors on our instructions. They receive only the redacted text and a server-side API key.
Do not grant the AI permission, or withdraw it in Settings. Tiers without an AI quota see the offline Tutor, which is a template engine that sends nothing.
Deleting your account removes all server-side rows tied to your user ID, including the request log, monthly counters, Operator run history, extension sessions and AI content reports. Provider-side abuse-detection retention follows the provider’s own policy.
Sentry receives stack traces, error messages, device model, OS and app version, and your pseudonymous user ID when a crash or handled error occurs. Our beforeSend hook removes the email address and IP address before the event is sent. Sentry does not receive your financial inputs, results or AI prompts. Crash reports are deleted by Sentry after 90 days.
You can disable crash reporting at the OS level (iOS Settings → Privacy & Security → Analytics & Improvements; Android Settings → Google → Usage & diagnostics).
RevenueCat manages purchases and receives a subscriber ID linked to your user ID, purchase status (product, period, expiry) and device platform. It does not receive your financial inputs or AI prompts. RevenueCat notifies our server of subscription changes through an authenticated webhook so your tier stays correct across devices.
Supabase Auth handles Sign in with Apple and Sign in with Google and receives your email address (from Apple or Google) and a session token. Tokens are stored in the OS Keychain (iOS) or Keystore (Android). You can use the calculator without an account.
In-app: Settings → Account → Delete account. The app calls our delete-user function, which deletes your authentication record and every row tied to your user ID (user_subscriptions, ai_monthly_usage, ai_request_log, operator_runs, extension_sessions, ai_content_reports, apple_sign_in_tokens), revokes your Sign in with Apple authorization (when a token is on file), and deletes your RevenueCat subscriber record (when billing is configured). The app then removes your account’s rows from the device and signs you out, and shows you what was and was not completed.
On the web: the account-deletion page linked from the store listing (docs/delete-account.md) explains how to request deletion without the app. By email: privacy@fincalcai.com; we respond within 30 days (GDPR Art. 17).
| Data | Retention |
|---|---|
| On-device history, favorites, AI transcripts | Until you delete them, delete your account, or remove the app |
Supabase user record, user_subscriptions, apple_sign_in_tokens |
Until account deletion |
ai_request_log (rate-limit window) |
7 days |
ai_monthly_usage (quota counters) |
Current month + 12 months |
operator_runs, ai_content_reports |
1 year |
extension_sessions |
1 day after expiry |
| RevenueCat webhook receipts | 90 days |
| Sentry crash reports | 90 days |
| RevenueCat subscriber record | Until account deletion (or per RevenueCat’s policy if billing deletion is not configured) |
| AI provider prompt logs | Per provider terms (abuse detection only; no training) |
Server-side purges run daily.
FINCALC AI is built for students and professionals studying finance and accounting. The app does not knowingly collect personal information from children under 13. If a parent or guardian believes a child under 13 has provided personal information, contact privacy@fincalcai.com and we will delete the account.
If you are in the EEA or UK, you have the right to access, correct, erase, restrict, port, or object to processing of your personal data. To exercise any right, email privacy@fincalcai.com. We will respond within 30 days.
Legal basis: contract (authentication, subscription delivery), consent (AI features), legitimate interests (crash diagnostics, abuse prevention).
You are responsible for the physical security of your device and any files you choose to export or share.
We may update this policy. Material changes will be reflected in the “Effective date” above and in the app changelog. Continued use after a change constitutes acceptance.
privacy@fincalcai.comsupport@fincalcai.comdocs/STORE_LISTING.md (kept current for the public store listings)| Terms of Use | Support | Back to Legal & Support |