Clarity — published by JSCreatorPro. Last updated: 3 May 2026. Effective: 3 May 2026.
This Privacy Policy explains what personal information the Clarity mobile application and related websites (together, the “Service”) collect, how we use it, and the choices you have. If you disagree with anything below, please do not install or use the Service.
JSCreatorPro (“we”, “us”, “our”) is the data controller for personal data processed through the Service. Questions, access requests, or deletion requests: privacy@jscreatorpro.app.
| Permission | Why we ask | Stays on device? |
|---|---|---|
| Microphone | Voice journal, speech-to-text, speaking practice | Yes by default (processed on your device). Cloud speech-to-text only runs when you explicitly tap “transcribe with cloud”. |
| Camera | Statement scan, meal scan, barcode scan, Snap & Translate, Canvas reference | ML Kit OCR/recognition runs on-device. If you choose cloud features (e.g., StatementIQ extraction, cloud translation, Canvas generation), selected media may be sent securely for processing. |
| Location (GPS) | Route tracker (#19) | Always. Routes are saved only in local SharedPreferences; never uploaded. |
| Activity recognition / pedometer | Step counting for Step-Up; also used on-device for Auto-SOS no-movement detection when that feature is enabled | Yes. Processed on-device only. |
| Health Connect / HealthKit | Sleep stages, heart rate, weight, exercise | Yes. Granular read-only, per permission you grant. |
| Notifications | Reminders, streak nudges, session summaries | Yes. |
| Contacts | Only asked for Secret Santa / Wishlist shares (opt-in) | Only the specific contact you choose is transmitted. |
Firebase Crashlytics and Google Analytics for Firebase collect anonymous crash reports and aggregated usage counts (“opened Learn tab 4 times”). No free-text content of your notes, journals, or statements is ever included. You can disable analytics in Profile → Privacy & Sync.
This is the canonical per-feature breakdown. “Required” means the feature cannot work without that data; “Optional” means you can use the feature without it (you may lose part of the experience). “On-device” means the data never leaves your phone unless an explicit opt-in cloud sub-feature is used.
| Feature | Required data | Optional data | Where it lives | Retention |
|---|---|---|---|---|
| Account & sign-in | Email + password (or OAuth identity), Firebase UID, subscription tier | Display name, avatar | Firebase Auth + our PostgreSQL DB (asia-southeast1) | Until you delete your account |
| Clarity Browser (web tab) | None — browsing is anonymous and not linked to your account | Open-tab URLs (only if you enable session restore); bookmarks; lite-mode and incognito toggles | Local AES-encrypted Hive box on device only | Until you tap “Clear browser data” or uninstall |
| Browser safety check | None | First 5 chars of a SHA-256 URL hash, sent only when you enable the safety toggle (k-anonymity — server cannot reconstruct your URL) | Hashes processed in-memory on our edge; never logged with account | Not retained per-user |
| Browser Downloads (zip / mp4 / mp3 / wav / pdf / any file type) | None server-side. The OS download manager (Android DownloadManager / iOS URLSession) streams bytes direct from the source server to your device. Bytes never touch our backend. |
Download history (filename, URL, size, status) stored locally only | On device only — saved files in your OS Downloads / Files app, history in encrypted Hive box | Until you tap Remove or Clear completed |
| Browser autofill | None | Saved passwords are stored by the OS credential manager (Android Autofill / iOS Keychain) — not by Clarity | OS keystore on device | Controlled by the OS, not Clarity |
| PWA install & tab groups | None | Installed-PWA list, tab-group names and colors | Local Hive box only | Until removed |
| Step-Up (steps, route, leaderboard) | Daily step count + activity-recognition permission for the live counter | GPS route track (local only); leaderboard publish is opt-in in Settings → Privacy → Cloud sync — when enabled we publish only your daily step count and chosen display name, never raw GPS | Steps + routes on device. Leaderboard step counts in our DB only when opted in. | Local: until cleared. Leaderboard: rolling 30 days. |
| SOS / Safety | None unless you trigger SOS |
Emergency contacts are stored on-device by default. If you enable cloud-backed SOS/live tracking link sharing, selected contact phone details and active safety session metadata are sent to our server to deliver that feature. If you enable the optional SOS settings cloud backup (toggle in SOS Settings → Cloud Backup), your SOS configuration (emergency contacts, emergency country / number choice, and other SOS preferences) is synced to our cloud so you can restore it on a new device. This sync is off by default and requires explicit opt-in. If you enable Shake-to-SOS, the app listens to the accelerometer sensor continuously in the background while SOS is armed — this data is processed entirely on-device and is never sent to our servers. If you enable Auto-SOS (no-movement detection), the app monitors your device's motion sensors for a 10-minute window of inactivity while SOS is armed — again on-device only, nothing is transmitted unless the SOS alert actually fires. |
On device by default; selected safety-session contact metadata and live-tracking data are processed server-side while active, then cleared from active tables after the session ends (event retention up to 30 days). SOS settings cloud backup (if enabled) is retained until you disable it or delete your account. | Active event window only; SOS settings backup: until disabled or account deletion |
| Journal & Mind | Numeric metadata (mood score, timestamp) when you log an entry | Device-first by default. Eligible Mind/Flow records can be cloud-synced only when you enable cloud sync. | Local Hive by default; optional cloud sync for eligible records when enabled | Local: until deleted. Cloud copy (if enabled): until removed or account deletion. |
| Creator Studio / PDF Studio / Resume Builder / E-Sign Vault | None server-side for history storage | Some generation actions may use cloud processing, but generated history/output state remains local on your device | On device only (local app storage) | Until you clear history/data or uninstall |
| Money / Vault | None — we never connect to your bank | Transactions, budgets, balances you self-enter — stored on device. Optional encrypted backup is opt-in. | Local SQLite. Backup blob (if enabled) is client-encrypted. | Until you delete it |
| StatementIQ (bank statement → CSV/Excel) | The PDF you choose to upload (processed in-memory only, deleted within ~60 seconds of conversion) | Account numbers, IBAN, card numbers, email, phone, gov IDs are stripped on our server before any text is sent to AI sub-processors for low-confidence-row repair | Original PDF: never persisted. Extracted transactions: returned to your device only. | PDF: ~60 seconds in memory. Transactions: not stored on our servers. |
| Learn / Lessons / Flashcards | Lesson progress, flashcard reviews | Mistake history (on-device only, never uploaded) | Local Hive + cloud sync of progress counters | Until you delete or close account |
| Canvas (image gen) | The text prompt you submit (sent to the cloud AI provider for generation) | Reference image (if you opt in to image-to-image / pose / upscale) | Generated image returned to your device + saved to your Hive gallery; provider does not retain prompt for training | Output: until you delete it |
| Coach chat / AI features | The message you send (forwarded to AI sub-processor for that turn only) | Conversation history (kept on device by default; cloud backup is opt-in) | Local Hive. Cloud only if backup is enabled. | Until you clear chat |
| Voice features (TTS / STT) | None for on-device modes | Audio bytes are sent to a cloud STT provider only when you tap “transcribe with cloud”; cloud TTS is invoked only when you choose a cloud voice. Otherwise audio stays on device. | Cloud provider processes in-memory; not retained for training | Per-request only |
| Camera (OCR, scan, meal scan, barcode, Snap & Translate) | Camera frame (processed by on-device ML Kit only) | None | On device — frames never uploaded | Discarded after recognition |
| Location (GPS) | None unless you start route tracking or trigger SOS share | Route tracks stored locally; SOS share is per-event and opt-in | Local SharedPreferences; not synced to our servers | Until cleared |
| Health Connect / HealthKit | None unless you grant access | Per-permission read access (sleep, heart rate, weight, exercise) — read-only, processed on device, numeric summaries may sync if Cloud sync is on | OS health store + local Hive | Mirrors your OS health-store retention |
| Notifications | FCM token (so reminders can be delivered) | Reminder times, streak prefs (on device) | FCM token in our DB, prefs on device | Until you disable notifications |
| Ads (free tier only) | OS device advertising identifier (resettable in OS settings) — required by the ad SDK | None — ads are disabled entirely on Pro / Elite | Google AdMob SDK | Per ad request |
| Rewarded surveys (BitLabs) | None unless you choose to participate | Firebase UID + transaction ID only — survey answers go to BitLabs / sponsor under their policy; we never see them | Provider only | Per survey |
| Contacts | None | Only the specific contact you pick for Secret Santa / Wishlist share | Only that contact transmitted, on demand | Per share only |
| Diagnostics | Anonymous crash stack traces (Crashlytics) | Aggregated event counts (you can disable in Profile → Privacy & Sync) | Firebase | 90 days rolling |
Reading the table: if a row has only “Optional data” and the “Where it lives” column is on-device, then by default nothing about that feature ever leaves your phone.
Clarity uses both on-device AI (deterministic, private, free) and cloud AI (billed in credits).
| Feature | Runs on | Credits charged |
|---|---|---|
| OCR, ML Kit text recognition, on-device translation, ML Kit barcode, ML Kit face detection | Your device | 0 |
| On-device text-to-speech, on-device speech-to-text, local embeddings | Your device | 0 |
| Offline AI packs (writing, learning, wellness, voice, and semantic search) — optional downloads. All inference runs on your device. Model files are delivered by Clarity, are not used to train any service, and do not send your prompts to third parties. | Your device | 0 |
| Soundscapes (bundled ambient audio) | Your device | 0 |
| GPS route tracking, sleep-stage summary, nutrition DB lookup | Your device | 0 |
| Statement conversion to CSV / Excel / QIF / OFX (all modes) | Clarity cloud | From 1 credit + 1 credit / page (server processing & export) |
| Daily Calm reflection | Clarity cloud | 0 (absorbed as daily freebie) |
| Sleep story, Learn lessons, Journal reflection, Coach chat | Clarity cloud | 1–5 credits |
| Credit coach, Bill negotiator, Portfolio rebalance advice | Clarity cloud | 3 credits each |
| Canvas text-to-image | Clarity cloud | 1 credit |
| Canvas image-to-image, upscale, pose/reference | Clarity cloud | 8 credits |
| Cloud text-to-speech, cloud speech-to-text | Clarity cloud | 15/min, 5/min |
Cloud requests include only the minimum content needed (e.g. the sentence to translate, the prompt to generate). They are sent over TLS. Our AI sub-processors (listed in §10) contractually agree not to retain request content for training.
Clarity is not a bank, broker, credit reporting agency, or lender. We do not access your bank accounts; we only parse statement PDFs or CSVs that you upload, and we do not store the original file. The Credit Coach and Bill Negotiator features provide coaching suggestions only based on numbers you self-report. They are not credit repair services and are not governed by the US Fair Credit Reporting Act (FCRA), the Gramm-Leach-Bliley Act (GLBA), nor equivalent regimes. The Portfolio Rebalance feature provides educational guidance only; it is not personalised investment advice and does not recommend specific securities.
Regardless of where you live, you can:
EU/UK residents also have the right to lodge a complaint with a supervisory authority. California residents have additional rights under the CCPA/CPRA (right to know categories sold — we do not sell personal data — and right to limit use of sensitive data). Indian residents have rights under the DPDP Act 2023.
Health Report, Food Log, and Cycle Tracking exports are user-initiated personal exports through the operating system share sheet (for example WhatsApp or personal email). StepUp chat is text-only and does not accept user file attachments.
Clarity is an 18+ service and is not directed to minors. We do not knowingly collect personal data from anyone under 18. Contact us and we will delete it.
Clarity is operated globally by JSCreatorPro Pte. Ltd. (incorporated in Singapore) and uses the sub-processors listed in §10 below, based in the US, EU, and Singapore. International transfers are protected by Standard Contractual Clauses (SCCs) and, where applicable, the EU–US Data Privacy Framework.
These are the only third parties that ever receive any data associated with your account, and only the minimum listed below. None of them receive your journals, AI prompts, AI outputs, health metrics, financial data, statement PDFs, or location history.
| Provider | Purpose | Data shared | Region |
|---|---|---|---|
| Google Cloud SQL (PostgreSQL, managed) | Primary app database — accounts, encrypted journals, health / finance / learning records | All your account data (journal bodies are client-side-encrypted before upload) | asia-southeast1 |
| Google Firebase (Auth, Crashlytics, Analytics, FCM) | Sign-in, crash reports, aggregated analytics, push notifications | Email, UID, crash stack traces (no user content), aggregated event counts, FCM token | US/EU |
| Approved secure AI processing providers | Language and vision inference, image generation, speech services | Only the minimum request payload for the specific task; no retention for training | US / EU |
| Approved secure document-processing provider | StatementIQ — bank statement OCR and layout extraction. Files are processed only for the duration of parsing, then deleted. | Document page images for OCR; no retention for training | US / EU |
| Approved secure AI processing providers | StatementIQ low-confidence row repair and other optional cloud AI tasks. Sensitive identifiers are redacted before processing where applicable. | Task-specific redacted text or prompt content only; no retention for training | US / EU |
| Licensed stock-media libraries | Stock media search (Canvas module) | Only the search query text (for example, "mountain landscape") is sent. No account content is transmitted. | Global |
| Stripe / Google Play Billing / Apple App Store | Payment processing | Purchase receipt, subscription state (handled by the store — we never see your card) | US / global |
| RevenueCat, Inc. | Subscription and entitlement management | Firebase UID, store purchase receipt, subscription tier | US |
| Google AdMob (Google Mobile Ads SDK) — free tier only | Rewarded and interstitial ads for free-tier users | Device advertising identifier (resettable in OS settings) as required by the ad SDK. Disabled for Pro / Elite users. | Global |
| BitLabs (opt-in surveys) | Rewarded surveys — users choose to participate in exchange for credits | Firebase UID and transaction ID only. Survey answers you give go to BitLabs and the survey sponsor under BitLabs' own privacy policy. You can ignore surveys entirely. | Global |
| MyMemory (Translated.net) | Browser "Translate page" feature — translates the selected page text into the user's chosen language. The feature is user-initiated (opt-in per page). Only the text fragment is sent; no URL, user ID, or account data is transmitted. | Selected page text fragment (max ~500 chars per call). No retention for training under MyMemory's fair-use policy. | EU (Italy) |
| Cloudflare | CDN, DDoS protection | IP address and request metadata at the network edge | Global |
Under no circumstances do we share any of the following with advertising networks, survey providers, analytics vendors, or any third party for their own purposes:
When a feature needs a third party to work (e.g. a rewarded survey), we share only the minimum identifier required (typically a Firebase UID). We do not build or sell marketing segments, look-alike audiences, or data-broker profiles.
TLS 1.2+ in transit; AES-256 at rest on Google Cloud SQL (PostgreSQL, managed by Google Cloud in asia-southeast1); Firebase App Check on every API call; secrets scoped to Cloud Run service accounts; no third-party JS on authenticated screens. Sensitive free-text content (journal bodies, AI reflections) is additionally encrypted client-side with AES-GCM using a user-held key before upload. We support biometric lock on the app (Profile → Privacy & Sync → Require Face ID / Fingerprint).
We will notify you in-app and by email at least 14 days before any material change to this Policy takes effect.
We keep communication simple and limited:
JSCreatorPro Pte. Ltd. (incorporated in Singapore) — privacy@jscreatorpro.app
EU representative: available on request.