Privacy policy

Katsuyokei · version 1.5.0 · updated: 15 October 2026

Katsuyokei helps you practice Japanese conjugation. Study material, exercises and progress work on your device, including offline. Version 1.5.0 adds voluntary anonymous usage statistics, off by default.

There is no account, advertising or AI help. Your answers and full study history stay on your device. Only after you consent do we send the limited statistical events described below to our own server.

Study data and progress backups

Progress, answer history, sessions, your day streak and settings are stored on your device. Your full history and typed answers are not sent to our server. Exported progress is saved where you choose; the app does not send it automatically. Deleting the app removes its local data. You can also erase progress in Settings.

The app family and widgets

Katsuyokei writes a local card for “Your Japanese”. It contains the percentage of material mastered, your streak, completed session count, a general description of your weakest area in Polish and English, and the time until which your daily goal is complete. It also contains the format, app name and update time. The next review date stays empty: Katsuyokei does not schedule SRS reviews.

Other family apps installed on the same device can read this card. Widgets use local shared storage to show family progress and the answers remaining towards your daily goal. These data never leave the device and do not sync between devices. They do not contain your full answer history.

Shared storage can survive uninstalling one app; it disappears after all family apps are removed. “Erase all progress” also removes Katsuyokei’s card and updates the widget’s local goal data.

Voluntary anonymous usage statistics

Statistics help us understand where learners stop practicing. They are off by default. Only after consent do we record events and send them to api.jd-japanese.pl. Earlier events are not reconstructed.

Events include the cohort week, day since its start, interface language, app version and experiment variant at consent and currently. Each event has its own random UUID to avoid double counting on retry. There is no person, device or installation identifier. We do not send text, answer history, content identifiers, email, location, device model, iOS version, product identifiers or Apple transaction identifiers.

Offline events wait on the device for up to 30 days, with a maximum of 500 events. The queue is excluded from progress exports and backups. Acknowledged events are removed from the queue. Raw server events are retained for 400 days and then replaced by daily totals without UUIDs.

The server processes an IP address to handle the connection and prevent abuse. We do not add it to statistical events. A separate abuse counter uses a keyed address hash; periodic cleanup removes entries whose window is more than 24 hours old. This is not a promise of deletion at exactly 24 hours. That key is not linked to events. Server error logs may contain an IP address; they are separate from statistical events. Log configuration specifies daily rotation and keeping 10 older files in addition to the current log. This is an archive count, not a guarantee that an entry is deleted after 10 days.

You can withdraw consent in Settings under Privacy. Turning statistics off stops collection, cancels uploads and removes the local queue and the current session’s measurement state. Events already received may remain until retention ends: without an installation identifier we cannot locate a particular person’s events. No consent, internet connection or available server is needed for study, progress or purchased features.

Network, advertising and reminders

Our server handles only the statistics described above after consent. iOS and the App Store handle purchases and restores. The app contains no advertising, IDFA, third-party analytics kit or crash reporter. It does not track you across apps or websites, sell data, or use statistics for advertising or profiling.

Goal reminders are optional local notifications. Denying notification permission does not affect study. With consent to statistics, we send only a flag indicating whether reminders are enabled.

Purchases

The App Store handles the one-time Premium purchase. The app checks its validity through the system and does not receive payment details, an address or your Apple Account identifier.

Contact and crash reports

“Suggest a feature” and “Report a bug” open your mail client. You can review and edit the message before sending. A bug report includes the app version, build, iOS version and device series model; you can remove that block. Nothing is sent automatically. System crash reports shared by Apple follow your iOS privacy settings.

Children and policy changes

The app is not directed at children under 13. Changes to data handling require an updated policy before the affected app release.

Contact

Privacy questions: katsuyokei@jd-japanese.pl.