Privacy Policy
Last Updated: August 17, 2026
Kwhit (“the App”) values your privacy. The App helps you organize EV charging records and ownership costs. Data is stored on your device by default, and you can use the App without creating an account.
Information We Process
Depending on the features you use, the App may process:
- Charging records — date/time, energy, cost, unit price, station, operator, notes, and optional ending state of charge (SOC) or dashboard odometer readings (from OCR, manual entry, post-charge check-in, or later edits). Records may also note the import channel (for example Photos screenshot or Share import).
- Charging stations & charging map — stations you create or bind (name, operator, optional address/coordinates, aliases, and pioneer flag), plus a personal map footprint derived from on-device sessions. “My charging map” is a private on-device footprint, not a public nationwide browse map. Stored on device by default.
- Station location lookup — when you search, enter, or resolve a station address, the query string may be sent to Apple’s geocoding service so the App can show a map pin.
- Charging screenshots — images you select from Photos, import via Share, or review on the confirm screen.
- OCR results — on-device text recognition output and parsed fields (including confidence and operator detection).
- Vehicle information — catalog brand, model, year, trim, and battery type; optional license plate and purchase date; dashboard mileage / tracking baseline for cost-per-km. Stored on device by default.
- Ownership expenses — maintenance, insurance, parking, accessories, and similar costs you enter (date, amount, category, optional odometer and notes), stored on device.
- Battery / range snapshots — SOC, estimated remaining range, notes, and timestamps you log for range trends and full-charge estimates, stored on device.
- Derived insights — AI Insights, Instant Coach tips, monthly reports, and cost-per-km calculated on device from your local charging, vehicle, ownership, range, achievement progress, career / station-mapping summaries, and import-method counts. Insight text and details stay on device by default and are not uploaded in full to our servers.
- Account information — if you use Sign in with Apple, we receive Apple’s identifier to bind and restore subscriptions; the App does not create its own passwords.
- Subscription status — purchase, expiry, and entitlement data from the Apple App Store and RevenueCat.
- App settings — for example OCR feedback prompts, whether to attach screenshots to feedback, auto-delete after import, reminder toggles, and whether to record mileage/SOC after charging (stored on device).
- APNs device token — if you allow notifications, we may send the token (plus minimal delivery metadata such as a local user id, platform, Bundle ID, and a kwhit Pro membership flag) to our push service so we can deliver product messages and optionally target Pro or free members. Used for delivery and audience filtering only — not for advertising tracking.
- In-app message state — read status and “hide for today” preferences for App Messages (stored on device).
- Achievements & Driver Card — unlock progress and showcase medal choices computed on device; Driver Card titles, theme, and share content (stored on device; Pro can sync achievement unlock state via iCloud — Driver Card theme/showcase settings are not synced to iCloud).
- Mileage alarms — reminders, interval km, recurring/advance notification preferences, and trigger state (stored on device; due or advance alerts may appear in “My Notifications” and as local push).
- My Notifications — read state for the local inbox (achievement unlocks, mileage alarms, etc.; stored on device, not uploaded to Kwhit servers).
- Product analytics events — via Firebase Analytics, anonymous/pseudonymous events such as screen views, feature toggles, funnel steps, and Pro adoption. We intentionally do not upload actual mileage, SOC percentages, license plates, charge-line item amounts, or full insight text as analytics parameters.
How We Use Information
- Create, edit, display, and summarize charging records.
- Manage vehicles, compute tracking-period cost per km, and show the vehicle dashboard.
- Track ownership expenses and range trends (including estimated full-charge range).
- Generate on-device monthly reports, charts, share cards, AI Insights, and post-save Instant Coach tips (some advanced features require kwhit Pro). Insights may also use on-device aggregates such as achievement progress, days owned, station-mapping rate, and import counts; full insight text is still not uploaded.
- Recognize charging information from screenshots.
- Verify, restore, and manage kwhit Pro subscriptions.
- Download and cache public operator catalogs, vehicle catalogs, searchable station catalogs, and in-app message catalogs (public copy/specs/links/image URLs only — not your personal charge history).
- When you use related features, send aggregated vehicle stats (not raw session logs) to our cohort benchmark service, and optionally make anonymous contributions of those aggregates to improve cohort quality (see “Vehicle Benchmarks & Anonymous Contribution”).
- Show a personal charging map, bind sessions to stations, and use community aggregated price ranges (cheapest / most expensive) as insight references; creating or binding a station may anonymously contribute a station fingerprint (see “Station Fingerprints, Community Prices & Pioneer Reports”).
- When you voluntarily report a missing vehicle, or add a station that is not in the searchable catalog, send the necessary fields to a review queue so we can consider adding it to the public catalog.
- With notification permission, send local and/or remote (APNs) reminders about logging, monthly reports, or product updates.
- Show summaries on Apple Watch and Home Screen widgets (from on-device data or phone–watch sync; this does not upload your full charge history to our servers).
- Improve OCR only when you voluntarily send feedback email.
- Provide achievements, Driver Card, and mileage alarms (mileage reminders are for personal reference only — not OEM warranty or service-contract alerts).
- Optionally sync selected data to your iCloud private database for cross-device restore (Pro; see “iCloud Sync (Pro)” below).
- Improve product quality and stability via analytics (not ad retargeting profiles).
Data Storage
Charging records, vehicles, ownership expenses, battery snapshots, mileage alarms, achievement progress, Driver Card settings, account data, and most settings remain on your device by default and are not automatically uploaded to Kwhit servers.
Other cases where data may leave your device — but Kwhit does not store your full personal records on our own servers — include:
- APNs device tokens (and minimal delivery metadata, including a Pro membership flag) may be stored on our push infrastructure (currently Cloudflare Workers / D1).
- Product analytics events may be processed by Firebase (Google) under its policies.
- Aggregated vehicle benchmarks and anonymous contributions, as well as missing-vehicle reports you submit, may be stored on our cohort service (currently Cloudflare Workers / D1); see “Vehicle Benchmarks & Anonymous Contribution” and “Voluntary Missing-Vehicle Reports”.
- Anonymous station fingerprints, pioneer-station review reports, and community price aggregates may be stored on our station service (currently Cloudflare Workers / D1); see “Station Fingerprints, Community Prices & Pioneer Reports”.
- Pro users who enable cloud sync may store selected data in Apple’s iCloud private database (see next section).
Remote data is used only for the purposes described and is not sold or used to build advertising profiles.
Sign in with Apple is only for subscription binding and restore; you can keep using local charging records without signing in.
iCloud Sync (Pro)
If you subscribe to kwhit Pro, enable “Cloud Sync” in the App, and are signed in to iCloud, the App syncs the following to your Apple ID’s iCloud private database (CloudKit) so you can restore on other devices signed in with the same Apple ID:
- Charging records
- Charging station profiles (name, optional address and coordinates, pioneer flag, etc.; not screenshots)
- Ownership expenses
- Vehicle profiles (including multiple vehicles)
- Battery / range snapshots
- Achievement unlock state
Sync does not include: charging screenshots, Driver Card theme/showcase settings, mileage alarm settings, or “My Notifications” inbox content. Synced data is hosted by Apple under its iCloud policies and is not relayed or backed up in full on Kwhit servers. You can turn off cloud sync anytime in the App; local data remains, but new changes are no longer uploaded to iCloud.
Sync may fail if iCloud is temporarily unavailable or the device is not signed in to iCloud. Check Settings → Apple ID → iCloud on your device.
Vehicle Benchmarks & Anonymous Contribution
To show peer references for the same vehicle catalog model (for example aggregated range, efficiency, or unit price), the App may:
- Download the public vehicle catalog and cohort benchmark summaries;
- Send already-aggregated on-device metrics (such as average price per kWh, cost per km, estimated full-charge range, monthly session counts) to the benchmark service to retrieve reference insights;
- Anonymously contribute those aggregates using an irreversible hash derived from a local user identifier plus a normalized vehicle ID, to improve cohort statistics.
This flow does not upload raw charging sessions, screenshots, license plates, full addresses, or full insight text. You can stop future contributions by not using related features or by deleting the App / account data. Anonymous samples already merged into cohort stats may not be removable record-by-record.
Station Fingerprints, Community Prices & Pioneer Reports
To improve station search and show reference price ranges for frequent or nearby stations in AI Insights, the App may:
- When you create or bind a charging station, send an anonymous station fingerprint to the station service. A fingerprint may include: an irreversible hash derived from a local user identifier, a local station id, a cleaned station name, operator id, coarsened coordinates (roughly 100-meter precision, not a precise pin), visit count, link source, app version, and — only when that station has enough paid sessions — the cheapest / most expensive paid price-per-kWh range. This flow does not upload per-session amounts, screenshots, OCR text, or full insight text.
- Query a station-price service for aggregated cheapest / most expensive ranges (including contributor counts). A lookup may send a normalized station name, operator id, and coarsened coordinates. Responses are cohort statistics, not other people’s individual records.
- If you choose “Add station” because search found no match, send the station name, optional address/note, coarsened coordinates, and the same anonymous identifiers to a review queue so we can verify it before adding it to the public searchable catalog. Approved public catalog entries do not include your personal charge history.
Anonymous fingerprints already merged into cohort stats, and pioneer reports in the review queue, may not be removable record-by-record.
Remote Content (Public Catalogs)
The App may download and cache:
- Charging operator catalogs (public names and aliases).
- Vehicle catalogs (public brand, model, year, trim, battery, and official range specs).
- Searchable charging-station catalogs (public names, operators, coordinates, aliases).
- In-app message / notification-center copy (title, body, links, image URLs).
These downloads do not include your personal charging records.
Notifications
The notification center is split into App Messages (product/ops copy) and My Notifications (personal alerts such as achievement unlocks and mileage alarms).
- iOS may ask for notification permission on first use. You can decline or later disable notifications in Settings → Notifications → Kwhit.
- If notifications are off, we cannot send system/remote alerts; the in-app message center may still show downloaded copy.
- To ask us to remove a stored push token, turn off notifications and contact us (see “Contact”).
Photos Access & Auto-Delete After Import
When you import charging screenshots, the App requests Photos read access (and optional write access to delete the imported screenshot).
- Auto-delete after import is optional and can be turned off anytime in settings.
- Deletion applies only to screenshots you designate for that import, via iOS Photos permissions.
- We do not background-scan or upload your entire photo library.
Post-Charge Mileage & Battery Logging
After you save a charging session dated today and you have a vehicle, the App may ask for dashboard mileage and ending SOC to improve cost-per-km and insights. The first time, we ask for your consent; you can also toggle this anytime under Profile → After-charge logging. If off, the prompt will not appear automatically; you can still enter values manually in Vehicle or session edit screens.
Voluntary OCR Feedback
If recognition looks wrong, or after you edit a record, the App can help you send feedback through your device’s Mail app. You must confirm and send; we never send email automatically.
Feedback may include:
- Recognized fields, your corrections, and OCR text (JSON attachment).
- App version, iOS version, and device model (for debugging).
- An optional screenshot (off by default; can be enabled in settings).
- Notes you write.
Mail is sent to kwhit.feedback@gmail.com via your chosen email provider, subject to that provider’s privacy policy.
Voluntary Missing-Vehicle Reports
If your vehicle is not in the catalog, you can submit a report. It may include brand, model, optional year/trim, a note you write, and the app version. Reports are stored on our vehicle-catalog service (currently Cloudflare Workers / D1) so we can consider adding the model to the public catalog. Reports do not include license plates, charging details, or screenshots. Submitted reports may not be removable record-by-record.
Third-Party Services
The App may interact with:
- Sign in with Apple — authentication
- Apple App Store — subscription billing
- Apple Push Notification service (APNs) — remote delivery
- RevenueCat — entitlement checks and paywall
- Apple Vision — on-device OCR
- Apple MapKit — maps and station-address geocoding (if used)
- Firebase Analytics (Google) — product analytics with de-identified events/parameters
- GitHub (public JSON/images) — operator catalog, vehicle catalog, and in-app message updates
- Apple iCloud / CloudKit — optional private-database sync for Pro users (data stored with Apple under Apple’s policies)
- Cloudflare — push token registration/broadcast APIs, vehicle benchmark / anonymous aggregate APIs, missing-vehicle reports, anonymous station fingerprints, pioneer-station review, and community station-price lookup
Important Notes
- OCR accuracy can vary with screenshot quality, brightness, or operator-app UI changes — please confirm before saving.
- You can always create records with manual entry without OCR.
- AI Insights and Instant Coach are estimates based on your on-device data — not battery health diagnoses, OEM guarantees, or financial advice.
- Kwhit is not a charging operator and does not provide charging, payment, invoicing, or control of third-party charging apps.
- The App does not use the advertising identifier (IDFA) for cross-app ad tracking.
Account & Data Deletion
Signed-in users can delete their account in the App, which removes local account data, charging records, charging stations, vehicles, ownership expenses, battery snapshots, achievements, mileage alarms, and Driver Card data on that device. Deletion cannot be undone.
Deleting your local account does not automatically delete Kwhit data already synced to your iCloud private database. You can turn off cloud sync in the App; existing iCloud data is governed by your Apple ID and iCloud storage settings. Anonymous vehicle samples and station fingerprints already merged into cohort stats, as well as missing-vehicle and pioneer-station review reports, may also not be removable record-by-record.
If you subscribed to kwhit Pro, manage or cancel under Settings → Apple ID → Subscriptions — separate from in-app account deletion.
Uninstalling the App also removes on-device data (unless covered by an iOS backup). After uninstall, push tokens may be cleared or marked invalid when delivery fails.
Policy Updates
We may update this policy for product or legal reasons and will revise the “Last Updated” date on this page. For material changes, we will provide appropriate notice in the App or on our site.
Contact
Questions about privacy, or requests to remove a push token: kwhit.feedback@gmail.com