App and website
Privacy Policy
Effective 10 October 2026 — referral processing added
Backgammon AI Coach is designed for anonymous play. Most game and learning data stays on your device. Remote coaching is contacted only after an action that requests it, and subscriptions are handled by the app store.
1. Who is responsible
The controller for Backgammon AI Coach is Computer Force SRL, Str. Gheorghe Lazăr nr. 3, 300078 Timișoara, Romania, registered under J35/1824/1994, VAT ID RO5833419 ("Computer Force", "we", "us").
Privacy or data-rights requests may be sent to Contact form or by post to that address, marked Backgammon AI Coach — Privacy. Product-help routes are described on our Support page.
2. Data stored on your device
The app can store onboarding choices, skill level and learning goals, appearance and accessibility settings, active and completed games, dice and move journals, local match history, coaching results, course and lesson progress, practice positions, privacy choices, and a pseudonymous app identity used to preserve coaching quotas and subscription access.
This information remains on the device unless a feature described below sends a bounded request. Local game and coaching records remain until you delete them with the in-app controls or clear the app's data. Some platform-protected identity and purchase evidence may survive an iOS reinstall so that access can be restored safely.
3. Remote coaching and analysis
When you explicitly request remote analysis, a hint, an explanation, or generated practice, the app may send the current canonical board position, dice, score and cube context, candidate or played move, teaching level, language, a pseudonymous identifier, entitlement information, and limited technical metadata needed to deliver and protect the request.
The service may use a specialist backgammon engine to evaluate positions and OpenAI or Google Gemini to turn verified game facts into an explanation. Language-model output is teaching text only; it is not the authority for legal moves or specialist scores. Remote coaching may be unavailable when a production provider is not configured or cannot be reached.
Encrypted analysis-result records expire after a short fixed period, normally 30 minutes and never more than 24 hours. A separate explanation cache may retain generated coaching text for up to one hour by default and no more than seven days. Reads do not extend those periods. Infrastructure backups may take longer to age out under controlled operational schedules.
4. Anonymous access, security and abuse prevention
No name, email address or social login is required for core use. Firebase Anonymous Authentication and Firebase App Check may provide short-lived proofs that the request comes from an authentic installation. The backend derives a pseudonymous subject, applies rate limits and quotas, and uses protected credentials stored by the operating system.
Security systems may process IP address, request time, route category, response status, duration, approximate payload size, device or app attestation, and coarse abuse counters. Ordinary application logs are designed not to include raw board payloads, tokens, purchase receipts, personal names, email addresses or payment details.
If you choose to create or sign in to an account, Firebase Authentication processes your email address, account identifier and authentication-provider information. Email/password, Google or Apple sign-in are available depending on the platform; the sign-in provider may also supply a name. Our backend uses a pseudonymous account identifier to manage access and explanation usage. Passwords and authentication tokens are not included in Analytics events or AI-coaching prompts.
5. Subscriptions and purchases
Apple or Google processes purchases and payment details. RevenueCat helps the app retrieve product information and decide whether the pseudonymous app user has Coach Pro access. We may process a pseudonymous RevenueCat App User ID, product and entitlement identifiers, purchase and expiry dates, renewal state, period type, and store environment. We do not receive your payment-card details.
Deleting app data does not cancel a subscription. Subscription management, cancellation and refunds are handled through the store account used for the purchase; see Support for the correct route.
5a. Optional invitations and referral rewards
This section applies when you choose to participate through a compatible app with the referral program enabled; publication of this policy does not activate the program. We process the invitation code, pseudonymous inviter and friend identifiers, invitation acceptance and eligibility status, relevant purchase and payment identifiers, verification dates, reward status and bonus credit/use records. The purpose is to apply the invitation, check the first eligible paid subscription, issue and administer rewards, handle refunds and prevent duplicate or abusive rewards. We use the requested service contract for administering the offer and our legitimate interest in preventing fraud and repeat rewards for necessary anti-abuse checks.
A keyed hash derived from the normalized account email helps detect repeat claims without storing the raw email in referral tables. These records are pseudonymous, not anonymous. Authentication services still process account email as described in section 4. RevenueCat and the app stores provide subscription/payment evidence; our backend performs eligibility and reward checks. Referral participation does not require enabling optional Analytics or Crashlytics.
The invitation URL contains a 12-character code, not your email or account identifier. Share it only where you intend it to be used. Anyone receiving it can see the code. The website validates its format, not its eligibility; opening the link does not register an account, claim a reward or automatically attribute a later installation. The URL, including its code, may appear in normal website/CDN request logs and browser history. NodeWorx and Cloudflare process the request to deliver and protect the page. We do not add advertising tracking or a referral cookie on the invitation page.
Retention and deletion: account deletion removes the active account association and spendable account balance, but limited pseudonymous anti-abuse records remain, including keyed email hashes and first-payment/attribution identifiers, so that deleting and recreating an account cannot generate the same reward again. Bonus explanations have no expiry while the account is maintained; that does not mean they survive account deletion. There is currently no automatic time-based deletion of these residual referral records.
Retention is assessed against whether a record is still needed to prevent re-awarding the same first payment, resolve an outstanding reward/refund/dispute, or meet an applicable legal obligation. Any further removal requires an operational review that also preserves duplicate-payment protection; we do not promise automatic deletion after a fixed number of days. You may request deletion or object through the protected privacy form. We will assess the request and explain any necessary retention exception. These records are not used for advertising profiles.
See the referral conditions and availability and invitation guide.
6. Analytics, diagnostics and advertising
Firebase Analytics and Firebase Crashlytics are integrated into the Android and iOS app. Product analytics and diagnostic reporting are optional, disabled by default, and controlled by separate choices in Settings. You can use the app without enabling either option.
If you enable product analytics, Google Analytics for Firebase helps us understand feature usage and improve the app. App-defined events cover gameplay, learning, viewing coaching explanations, and certain subscription or restore outcomes, using limited categories and counters. These app-defined analytics events do not contain your email address, board positions, moves, game history, AI explanation text, credentials or payment-card details. This does not change the remote-coaching processing described in section 3.
The Analytics SDK also processes app-instance identifiers, app and device information, sessions and standard usage events. It derives approximate location from masked IP addresses, not GPS. Standard purchase and subscription events can include product identifiers, names and prices. These identifiers make the data pseudonymous, not anonymous. The app does not assign your account identifier as an Analytics user ID.
If you enable diagnostics, Crashlytics helps investigate crashes and technical failures. Reports may include stack traces, limited error categories and technical context, together with app, device, operating-system, session, crash and installation information. App-defined reports use sanitized error labels rather than raw exception messages; the app does not assign your account identifier as a Crashlytics user ID. Native crash reports include SDK-managed information. When both options are enabled, recent usage events may appear as diagnostic breadcrumbs.
You can turn either option off independently in Settings. The app disables collection for that category and requests cleanup of pending SDK data and identifiers. If cleanup fails, Settings reports the problem and offers a retry. Turning an option off does not automatically delete data already sent to Google. Privacy and deletion requests can be made through our protected contact form; we may need limited information to identify the relevant records.
Google states that Crashlytics keeps crash traces and associated identifiers for 90 days before starting removal from live and backup systems. Analytics retention follows the property's configured retention controls; aggregated reporting can have different retention from individual event and user data. See Firebase privacy information and Analytics retention controls. Processing may take place outside the European Economic Area, as described in section 8.
We do not sell personal data, use advertising identifiers, serve behavioural advertising or create advertising profiles.
The current Analytics property retains event-level data for 2 months and user-level data for 14 months; new activity resets the user-data retention period. Standard aggregated reports are not covered by those limits.
6a. Aggregated service measurements
To understand service reliability and use, our API keeps daily aggregate counters by app version, Android or iOS platform, store country, approximate network country, and the device language and region settings. Store country comes from the device's billing storefront and may differ from your residence. Approximate network country is a country code supplied by our trusted network proxy; we do not use GPS. The device language or region is never treated as your location.
These service counters do not retain account or installation identifiers, email addresses, raw IP addresses, advertising identifiers, game positions, request bodies, or a history of individual users. Only bounded category labels, counts, response-time summaries and error classes are retained, for up to 90 days. Counts represent API requests, not unique people or retention cohorts. These aggregate service measurements are separate from optional Google Analytics; declining Analytics does not enable SDK analytics or identity-based measurement. Separate security processing is described in the security section above.
7. Website data
This website uses a first-party, cookieless counter for aggregate page views and Store-link clicks, grouped only by coarse source, page family and language. The counter does not use cookies, local storage or fingerprints; it retains no user profiles, raw referral codes, query strings, IP addresses or user-agent values. It honours Do Not Track and Global Privacy Control signals. Counts are not unique people or downloads and are kept for 90 days.
This website has no account, waitlist, advertising pixel or payment flow. The contact form collects the optional name and reply email address, message and selected topic that you provide.
A necessary session cookie protects the form against CSRF. Cloudflare Turnstile processes browser technical signals for anti-bot protection and validates the request on the server. Submitted requests are delivered to Backgammon AI Coach's dedicated Zammad support system and are accessible only to its support team. We do not use the form for advertising tracking. NodeWorx and Cloudflare may process technical request data to deliver, cache and protect the website.
8. Service providers and transfers
Depending on the feature and platform, data may be processed by Computer Force's backend infrastructure, NodeWorx, Cloudflare, Google Firebase, RevenueCat, Apple, Google and OpenAI or Google Gemini. These providers act under their own terms or data-processing commitments and may process data outside Romania or the European Economic Area using applicable transfer safeguards.
9. Purposes and legal grounds
We process data to provide the app and requested coaching, maintain subscription access, keep the service secure, prevent abuse, understand feature usage, diagnose faults and comply with legal obligations. Depending on the context, the legal ground is performance of the service contract, our legitimate interest in reliable and secure operation, compliance with law, or separate consent for optional product analytics and optional diagnostics.
10. Your controls and rights
The app provides controls to reset preferences and delete local coaching data or local history. Clearing application storage removes the app's local sandbox on Android; uninstall and protected-key behaviour is controlled partly by the mobile platform. Store purchases must be managed separately.
Where applicable, you may ask for access, correction, deletion, restriction, portability or objection, and may withdraw consent without affecting earlier lawful processing. Because the app is anonymous-first, we may need the pseudonymous installation information shown by the app to locate a server-side record safely. You may also complain to the Romanian data-protection authority or your local supervisory authority.
You can request account deletion from the app account settings or through our account and data deletion page. Account deletion removes the Firebase account and associated active backend account and stored analysis records; limited pseudonymous deletion-completion records may remain to prevent repeated processing or restore of a deleted account. Referral anti-abuse/payment records may also remain as explained in section 5a. It does not cancel store subscriptions or automatically erase local game history or data already sent to service providers. You can also request deletion of particular data without deleting the account, subject to necessary identity verification and applicable retention obligations.
11. Children
The service is not directed to children under 13 and does not knowingly collect a child's name, email address or precise location. A parent or guardian who believes a child has provided personal data should use the privacy contact above.
12. Changes
We may update this policy when the app, providers or legal requirements change. The effective date at the top identifies the current version. Material changes will be presented through the website, app or store listing as appropriate.
Optional referral analytics and discovery-source question
This clarification applies to app versions that include these optional features. It does not activate them or announce that an update is already available.
With your product-analytics consent, Firebase Analytics measures interactions with invitations: tapping Share, successfully copying a code, opening a valid invitation link, the result and limited source category of applying a code, and observed reward outcomes. These event fields do not contain your invitation code, full invitation URL, account identifier, name, email address or free text. A Share tap is not proof that a message was delivered; these measurements are not a complete count of people, installations or purchases.
You may optionally answer “How did you hear about us?” using one of six categories: Store search, an advertisement, a friend, a club or forum, social media, or other. There is no free-text field. The question is shown only while product analytics is enabled, and you can skip it. The app stores only a local marker that the question was shown; if you answer, the selected category is sent through the consent-controlled analytics path, not saved for later transmission after a new consent choice.
Firebase processes these events with SDK-managed app-instance identifiers and technical app/device information. This is pseudonymous data, not anonymous data. The app does not assign your account identifier as an Analytics user ID. You can withdraw product-analytics consent in Settings; this does not automatically delete data already sent. The existing Analytics retention and privacy-request arrangements in this policy apply.
Skipping the question or declining analytics does not remove access to valid invitations, purchases or earned rewards. Optional RevenueCat referral-attribution attributes and Apple AdServices collection are not enabled by this clarification; the existing RevenueCat purchase and subscription service is unchanged.