Privacy Policy

Effective 2026-11-05

The short version

Last Chance Japanese stores your learning progress, answers, any exercise reports you choose to send, and a few preferences. Your first onboarding lesson is available as a guest, without an account or membership. Daily lessons and reviews require a membership. In the iOS and Android apps, you can buy or restore a membership as a guest, without an account. In the web app, buying a membership requires signing in to an account. Linking an account is otherwise optional; it carries your progress and membership across devices.

If you save your progress with Apple or Google, we receive the stable identifier that provider assigns to you for this app and, if you allow it, your email address. If you buy or restore a membership, RevenueCat processes your account identifier (or, without an account, a random identifier for this installation) and store transaction information so the app can check and restore access. In the iOS and Android apps, Apple or Google handles payment. In the web app, Stripe handles payment through RevenueCat Web Billing and receives your email address, payment details, and billing country. We never receive your full payment card details.

Product analytics use PostHog in its EU region with a pseudonymous analytics identifier. Our regional policy asks for consent in the EEA, UK, Switzerland, Quebec, South Korea, China, India, Brazil, Colombia and Peru. It also asks for consent if the country or Canadian subdivision cannot be verified. In verified Canadian provinces and territories outside Quebec, analytics are on by default with an information notice on Welcome and a withdrawal control only in Settings. In other recognized countries, analytics are on by default with an information notice and no in-app switch. Previously saved refusals remain respected. Once Russia or Belarus is detected, PostHog analytics are unavailable even with a previously saved opt-in. Analytics do not include your answers, Japanese text, account details, or the app’s guest learner identifier. Technical crash reporting uses Sentry in its EU region automatically to help keep the app working.

We configure crash reporting without default personal-information capture, screenshots, screen recordings, console logs, session tracking or performance tracing. JavaScript error reports retain technical stacks, with dynamic error messages and app state removed.

Ideas & feedback is optional and available without a membership. You can read the board as a guest; publishing ideas and voting require a linked account. Approved idea titles, descriptions, scores, status, and team responses are visible to other learners. We do not publish your name, email, or account identifier. Please leave personal information out of submissions.

The first lesson is free. Daily lessons and reviews require a membership; choosing “Not now” keeps Progress and Settings available without one. We do not sell your data, show advertising, or track you across other apps or websites.

What we collect

Learning data: the exercises you answered, whether each answer was correct, your typed answers, mastery estimates, session history, onboarding answers (previous attempts, reasons for stopping, self-selected level), and the moments the app showed you as proof of progress.

Exercise reports: the exercise and curriculum version, your selected reason, and any optional details you submit. Reports are associated with your random guest identifier so we can review them and remove them if you delete your data.

Feedback board: submitted titles and descriptions, publication and moderation state, dates, account-associated votes, and participation blocks. Reports about board content include the selected reason and optional details and are associated with your guest or account learner identifier. These reports remain private. Short-lived write-quota records prevent spam and expire after 48 hours as the board processes new writes.

Device and account data: a random installation identifier, a random guest identifier, an access credential used to sync, your time zone, and the app version. The guest identifier is stored in secure device storage on Android and iOS, or in your browser’s local storage when you use the web app. If you save your progress with Apple or Google, the identifier that provider assigns to you for this app and, if shared, your email address (with Apple, this may be a private relay address).

Membership data: the account identifier linked to your app account or, for a membership bought without an account, RevenueCat’s random customer identifier for this installation, the subscription product and transaction status, and relevant purchase, renewal, and expiration information. RevenueCat processes store transaction information to validate purchases and restores. Our API may receive membership status and subscription dates from RevenueCat so the app can keep access in sync. Apple or Google processes payments made in the iOS and Android apps. For a membership bought in the web app, Stripe processes the payment through RevenueCat Web Billing. Stripe receives the email address you enter at checkout, your payment method details, your billing country, and the transaction, so it can charge you, issue receipts, calculate any tax, and prevent fraud. RevenueCat links that purchase to your app account. We do not receive your full payment card details.

Preferences: your chosen display name (stored only on this device), appearance, audio autoplay, your usage-analytics choice, and your selected reminder types, days, time, quiet hours and pauses if you enable reminders. Notification scheduling, suppression and coarse interaction records help prevent duplicate or excessive reminders. When remote push is enabled, the API also stores an Expo push token for each opted-in device and the local calendar date of the most recent completed session so it can suppress same-day reminders and choose an appropriate message.

When usage analytics are enabled: screen names, session and exercise types, answer outcomes and response times, story progress, dictionary and audio use, reminder choices, and exercise report categories. The PostHog SDK also sends app version and build, device model and type, operating system name and version, screen dimensions, locale, and time zone. PostHog receives a separate pseudonymous identifier; it does not receive answer text, Japanese content, optional report details, account identifiers, or the app’s guest learner identifier.

Technical diagnostics: error types and stack traces, app version and technical crash information. Native crash reports may include device and operating-system details collected by the crash SDK. We do not attach your account, guest learner identifier or answers. Default personal-information capture, breadcrumbs, screenshots, replay, session tracking and performance tracing are disabled; dynamic JavaScript error messages are removed.

To choose the analytics policy, our server uses the approximate country and, for Canada, province or territory available from the network request. It returns only the policy decision to the app; this feature does not store the IP address, country or subdivision, use GPS, or request location permission. If the country cannot be verified, analytics require your choice to enable them. We do not collect your contacts, photos, microphone audio or advertising identifiers. The app does not request microphone access.

How we use it

To choose what you study next, schedule review, and keep your progress across devices and reinstalls when you have saved it to an account.

To validate, restore, and manage membership access associated with your account, including showing whether your subscription is active or in a trial.

To review and correct reported curriculum issues. Optional report details are not included in analytics exports.

To review suggestions, rank them by votes, communicate development decisions, and moderate the feedback board. Idea text, board-report details, and team responses are not sent to product analytics or crash breadcrumbs.

To send the optional learning, continuation, progress, membership-option and trial reminders you choose, respecting your notification preferences. They are scheduled on your device by default. If remote push is enabled, the Expo push service and Apple or Google push infrastructure deliver them; a local session date and a coarse return-gap category select a gentle, relevant message.

To keep the service working by preventing abuse and diagnosing technical crashes and faults. When usage analytics are enabled under the regional policy and your saved choice, we measure aggregate use of the app, such as how many learners finish their first lesson. Free-text answers are excluded from analytics.

Where it is stored

On your device, in the app’s private storage. Learning data is held on our servers, hosted on Cloudflare (Workers, D1 and R2); Cloudflare stores it in the location it selects and does not guarantee a single country or region. If enabled, product analytics events are hosted in PostHog’s European Union region, and crash reports in Sentry’s European Union region (Germany). Data is encrypted in transit.

These service providers process data only to run the app for us: Cloudflare (hosting and storage) and Google Cloud (request forwarding), PostHog (usage analytics), Sentry (crash reports), Expo (push delivery, when enabled), RevenueCat (subscription validation, membership status, and web checkout), Stripe (payments made in the web app), Apple or Google (sign-in and store payments, when you choose them), and Web3Forms (delivering website sign-up emails to our inbox). Approved feedback-board submissions are shared publicly as described above. We do not otherwise share your data with anyone else, except where the law requires it.

How long we keep it

Feedback submissions and votes remain until you delete them or your account, or the team removes the content. You can delete your own ideas from the board. Account deletion removes your submissions, votes, board reports, and participation block from active records; guest deletion removes guest reports. A personal-data copy includes these records. Team moderation can hide an idea without deleting it.

Learning data is kept for as long as you use the app. You can delete your account and synced learning data in Settings. The app removes the account and associated data from our active server records and this device; encrypted server backups expire within 30 days. Records of purchases made in the web app are kept by Stripe and RevenueCat for as long as tax, accounting, and fraud-prevention rules require, even after you delete your app account. If enabled, pseudonymous product analytics events are retained in PostHog for up to one year, and crash reports in Sentry for up to 90 days; neither is linked to your guest learner identifier or saved account. To request deletion of analytics records, contact us at the address below.

Your rights

To delete your account and synced learning data, use “Delete my account and data” in Settings. Deleting your app account does not cancel a subscription purchased through Apple or Google; cancel it separately in that store’s account settings. To request a copy of your personal data or get help with a deletion request, email [email protected].

More information about account deletion is at https://lastchancejapanese.com/delete-account.

If you are in the EU, UK, or another region with data-protection rights, you may also ask us to correct or restrict processing, or lodge a complaint with your supervisory authority. Write to [email protected].

The legal basis for providing the app is performance of our contract with you. We rely on our legitimate interest in reliability for minimized technical diagnostics, where applicable. Usage analytics rely on consent in consent-required regions. In other regions, processing must have an applicable legal basis, such as valid implied consent or a qualifying legitimate interest, and comply with any applicable notice, objection and international-transfer requirements. A regional default is not itself a legal basis or an exemption from those requirements. Where the app provides an analytics control, you can withdraw consent or disable analytics in Settings. In all regions, you may contact us to exercise applicable privacy rights, including requests to stop processing where the law provides them. Turning analytics off does not affect core learning features or paid features. You may contact us to exercise applicable objection rights for technical diagnostics.

Who is responsible

Last Chance Japanese is run by the independent developer of Last Chance Japanese, who is the controller of the personal data described here. You can reach us at [email protected].

Children

The app is not directed at children under 13 (or the age of digital consent in your country) and we do not knowingly collect data from them. If you believe a child has provided data, contact us and we will delete it.

Changes

If this policy changes in a way that matters, the app will tell you before the change applies. The effective date at the top always reflects the current version.

Contact

Questions or requests: [email protected].

Website analytics

We use Cloudflare Web Analytics for aggregate website performance and PostHog in its EU region to measure page visits, campaign sources and clicks to the web app. PostHog follows our regional analytics policy and your saved website choice. You can change that choice using “Analytics preferences” on the website. Browser Do Not Track and Global Privacy Control signals disable this additional tracking.

Website events use a random visit identifier that expires after 30 minutes of inactivity in your browser tab. It is separate from app accounts and learning data. We send only known page paths, campaign labels and coarse device type, without your email, form contents, full referring URL, URL query strings or page fragments. We disable person profiles and geolocation enrichment and do not enable session recording or automatic click capture. Your analytics choice and an explicitly enabled test-device flag are saved locally; visit information is stored in session storage only while analytics are allowed. The App Store link remains available regardless of your analytics choice. These events are subject to the PostHog retention period described above.