Privacy Policy - LoopRipple

Effective date: 2026-10-19 Version: 1.0

This policy describes what the LoopRipple application (the "App") does with data, in line with the General Data Protection Regulation (GDPR) and Polish law. Every statement matches the shipped App; if the App changes, this policy changes in the same release.

1. Who we are

ASE Spolka Akcyjna, ul. Portowa 41, 78-100 Kolobrzeg, Poland, KRS 0000965347, NIP 6711850032, REGON 521363498 ("we", "us") is the controller of personal data processed through the App.

Contact for all privacy matters: sprzedaz@amazinggirl.pl. We have not appointed a data protection officer because the scale and nature of our processing do not require one.

2. Summary in plain language

3. Data we process, by category

3.1 Data that never leaves your device

Android may include the App's local data in the device backup to your Google Account (Android Backup). That copy is made and encrypted by Google under your Google Account settings; we have no access to it. You can exclude the App from backups in the Android settings.

3.2 Data sent to our server, only when you ask the AI Pattern Coach

Data Why How long we keep it
The numbers of your yarn: stitches per colour (in order), the work mode, the stitches per row, and the widths the App scored with their repeat periods and stability scores. No project name, no colour names, no grid. To let an AI model explain the scored widths in plain English and suggest which width to swatch next 24 hours, under a hash of the numbers, so a repeat returns the same result; physically deleted within 72 hours after that
A reported AI suggestion (the text you saw, the width it named, the reason and your optional comment) To review the quality and safety of AI-generated content 90 days
Anonymous user identifier (Firebase Anonymous Authentication) Usage limits, subscription entitlement, abuse prevention Until you delete your data (section 9)
App version, device language, first-use date Compatibility and support Until you delete your data
Usage counters (AI suggestions used: 3 in total on the free plan, 40 a month on LoopRipple Pro) Enforcing the allowance Monthly counters 45 days from the start of the month; the free-plan counter 400 days from its last use
A one-way hash (SHA-256) of the Android device identifier (ANDROID_ID), salted with the App's package name Applying the allowance per device as well as per installation, so that reinstalling the App or deleting your data does not grant a new free allowance With the counters above; the raw identifier never leaves your device and the hash cannot be reversed
Google Play purchase token and subscription state (when you buy LoopRipple Pro) Verifying the purchase with Google Play and keeping LoopRipple Pro active on your installation For the life of the subscription plus the accounting retention period in section 7
AI usage ledger (token counts, estimated cost, outcome, latency; no content) Cost control 400 days; your identifier is replaced by a pseudonym on deletion
Technical request logs (identifier, route, status, timing, counts; no content) Operating and securing the service 30 days

We do not log the content of AI suggestions or reports. Our logging is configured to remove such fields, and an automated test in our build checks it.

3.3 Data collected by third-party SDKs in the App

The App contains no advertising SDK and no analytics SDK in this version. If crash reporting or usage analytics are added later, this policy will describe them before they ship.

3.4 Data we do not collect

Name, email address, phone number, contacts, precise or approximate location, photos or camera access, your Google account data, advertising identifiers, and any data for advertising purposes. The App shows no ads and sends no notifications.

4. Purposes and legal bases (GDPR)

Purpose Data Legal basis
Providing the AI suggestion you request The yarn numbers and scored widths, the result Your consent (Art. 6(1)(a) GDPR), given on the consent screen before the first request and withdrawable in Settings; the paid allowance itself is part of the LoopRipple Pro contract (Art. 6(1)(b))
Providing paid features and verifying purchases Anonymous identifier, purchase token, entitlement state Performance of a contract (Art. 6(1)(b)) - the Terms of Service
Enforcing usage limits, preventing abuse and fraud, securing the service Identifier, hashed device identifier, counters, logs, App Check data Legitimate interests (Art. 6(1)(f)) in protecting the service and controlling costs
Reviewing reported AI-generated content Reported suggestion, reason, comment Legitimate interests (Art. 6(1)(f)) in content quality and safety, and legal obligations regarding unlawful content where applicable
Keeping accounting records of purchases Purchase records from Google Play Legal obligations on accounting and complaint handling (Art. 6(1)(c))

The numbers describe a yarn, not you; the App does not profile you and we do not analyse your requests for any purpose other than producing the result you asked for.

Outside the EEA and the UK we process personal data for the same purposes under the laws applicable to you.

5. Recipients and processors

Recipient What Where
OpenAI, L.L.C. (our AI provider; provider policies: https://openai.com/policies/) The yarn numbers and the scored widths, as numbers. No identifier, no project name, no grid. United States (OpenAI API). Processing under the provider's API data processing terms: the data is not used to train the provider's models and is not retained by the provider beyond abuse monitoring
Google Cloud (Cloud Run, Firestore, Cloud Logging, Secret Manager) Hosting of our server and database europe-central2 (Warsaw, Poland)
Google Firebase (Authentication, App Check) Anonymous identity, app integrity Google's infrastructure per Firebase terms
Google Play Purchases and subscriptions Google's infrastructure

We do not sell personal data and do not share it for advertising. If the AI provider changes, this policy is updated in the same release.

6. International transfers

Our server runs in europe-central2 (Warsaw, Poland). Our AI provider and Google may process data outside the European Economic Area, including in the United States. For those transfers we rely on the European Commission's adequacy decision for the EU-US Data Privacy Framework, under which both OpenAI and Google LLC are certified, and on the Standard Contractual Clauses contained in the data processing terms of each provider. You may ask sprzedaz@amazinggirl.pl for details of the safeguards used.

7. Retention

Retention periods are stated per data type in section 3.2. Time-based deletion is applied by our database automatically; expired records are never served, and physical deletion completes within 72 hours of expiry. Accounting records of purchases are kept for the period required by Polish accounting and tax law (six full calendar years from the end of the year of the transaction), without the link to your anonymous identifier once you delete your data. Data on your device stays until you delete it or uninstall the App.

8. Age

The App is intended for adults aged 18 and over and is listed in the app store for that audience. It is not directed at children, and we do not knowingly collect personal data from anyone under 18. Because the App requires no account, we cannot verify age; if you believe a person under 18 has used the App in a way that provided us personal data, contact sprzedaz@amazinggirl.pl and we will delete it.

9. Your rights and how to exercise them

Under the GDPR you have the right to access, rectify and erase your data, to restrict or object to processing, to data portability, to withdraw consent at any time without affecting earlier processing, and to lodge a complaint with a supervisory authority. In Poland this is the President of the Personal Data Protection Office (Prezes Urzedu Ochrony Danych Osobowych, ul. Stawki 2, 00-193 Warszawa, uodo.gov.pl).

How to exercise them:

10. Security

Data is encrypted in transit (TLS). The App contains no server credentials or AI provider keys. Our server verifies every request with a signed token and checks that it comes from a genuine copy of the App. Content fields are removed from logs. Access to production systems is limited to named team members. No method of transmission or storage is completely secure; we cannot guarantee absolute security.

11. AI-generated content and automated processing

AI Pattern Coach suggestions are generated automatically by an AI model from the numbers the App computed for your yarn. They are labelled "AI-generated suggestion" in the App and on exported cards. The model can only name a width that the App's own simulator already scored and may only use numbers from that table; our server rejects anything else, but it cannot judge whether the finished piece will look as simulated. The simulator itself is deterministic mathematics, not AI, and its results are geometric forecasts, not guarantees. You can report any AI suggestion from the App. Reports are used to improve the quality and safety of generated content; they do not train the AI provider's models under our provider terms. We make no decisions about you that have legal or similarly significant effects based on automated processing.

12. Changes to this policy

We will publish changes at https://loopripple-dev.web.app/legal/privacy and update the effective date. For material changes (new data types, new recipients, longer retention) we will inform you in the App before the change takes effect.

13. Contact

ASE Spolka Akcyjna, ul. Portowa 41, 78-100 Kolobrzeg, Poland, sprzedaz@amazinggirl.pl.