Legal
Privacy policy / Integritetspolicy
SIBO AI · Menudo Consulting AB · Last updated 12 September 2026
A German version of this policy is not yet available. It will be added before publication. Eine deutsche Fassung dieser Erklärung liegt noch nicht vor; sie wird vor der Veröffentlichung ergänzt.
Privacy policy (English)
1. Who is responsible for your data (data controller)
1.1 Controller. The controller responsible for the personal data described in this policy is:
- Menudo Consulting AB (Sweden) — registered office: ATT FYLLA I
- Company registration number / organisationsnummer: ATT FYLLA I
- Contact e-mail for privacy matters: ATT FYLLA I
- Postal address for privacy matters: ATT FYLLA I
1.2 The app and the service. "SIBO AI" (the "app") is a wellness and self-management tracking tool. It is not a medical device and does not diagnose, treat, or cure any condition. The app has two components that matter for privacy:
- the on-device app (iOS and Android), which stores and analyses your logs locally; and
- a small backend (a "Cloudflare Worker" proxy) that is used only when you use the AI Coach feature, and to verify app-store purchases.
1.3 Scope. This policy covers the app, the backend proxy, and the store listing for SIBO AI.
1.4 Review notice. Sections 4 (legal basis), 5 (third-country transfer), 6 (retention), and 8 (deletion) contain items marked ATT BEKRÄFTA. Those must be confirmed with the sub-processors and reviewed by counsel before this policy is published. Do not publish a version that still contains a ATT BEKRÄFTA in a place that makes a compliance statement.
2. What stays on your device
2.1 Local database. All of your logging data is stored in a local SQLite database on your device (file name sibocoach.db). This includes:
- Meals: timestamps, foods and ingredients, quantities, meal size.
- Symptoms: type, severity (1–10), timestamps, and related notes.
- Supplements: name, category, dosage, timing, frequency, start/stop dates, and your effectiveness ratings.
- Chat history with the AI Coach (as it is shown to you in the app).
- Tests / experiments you record, if you use those features.
- Settings, including your consent record (
consent_given,consent_version,consent_date) and the anonymous installation identifier described in §3.4.
2.2 No account, no server copy of your logs. The app requires no account and no login. We do not keep a server-side copy of your logs. There is no cloud sync of your health data. If you lose the device, the logs are lost with it unless you made your own backup (e.g. a device backup).
2.3 On-device analysis. The correlation engine (risk ratios, confidence intervals, Fisher/FDR-style significance) runs entirely on your device. No log data is sent anywhere to produce it.
2.4 What "stays on the device" therefore means. Meal/symptom/supplement records, the correlation analysis, and your chat history are stored and processed locally. The only exception is the AI Coach context described in §3.
3. What leaves your device — and to whom
3.1 The only routine outflow is the AI Coach. Health data leaves your device only when you actively send a question to the AI Coach. No background process sends your logs. If you never use the AI Coach (or never press send), no health data leaves the device.
3.2 Exactly what is sent in an AI Coach request. When you send a question, the app builds a "health context" string and sends it together with your message. The context is produced by the app's buildAiContext() function and contains:
- Symptoms — last 7 days: each symptom type, the number of occurrences, and the average severity out of 10.
- Current supplements — with dosages: supplement name, dosage (for example "Berberine 500 mg"), and how many days you have been taking it.
- Meals — last 7 days: the total number of meals, plus the last 5 meals with their food items and quantities.
- Key patterns: share of meals followed by symptoms within 3 hours, week-over-week trend (improving/worsening/stable with a percentage), potential food triggers, and any HCL-effect figure the engine has computed.
- The chat itself: the content of the last 10 chat messages (your messages and the AI replies).
The context is truncated server-side at a maximum of 12,000 bytes (MAX_HEALTH_CONTEXT_BYTES). Your request also includes a locale value (e.g. sv) and a time-zone offset header (X-Tz-Offset) used only to reset your daily quota at your local midnight.
> Note for the transparency review: the dosing detail is intentional but must be disclosed plainly. Sending "Berberine 500 mg" is a health-related detail about you, and it leaves the device as part of the AI context. Any copy that says health data never leaves the device is false for this reason alone.
3.3 Who receives it — the chain.
- The app sends the request over HTTPS to our backend proxy:
https://sibo-ai-proxy.ekonomi-b45.workers.dev(POST /v1/chat), hosted on Cloudflare (Cloudflare, Inc., USA, with Cloudflare's EU/global network). - The proxy holds the Anthropic API key server-side (the app itself has no AI key). It forwards the messages and health context to Anthropic's API (Anthropic PBC, USA), using the model
claude-haiku-4-5. - Anthropic returns the reply, which the proxy passes back to your app. The reply is scanned server-side for dosing strings and efficacy claims; the scan flags are logged (see §3.6).
So the recipients of the AI context are: Cloudflare (as our hosting/processing provider) and Anthropic (as the AI model provider). No other third party receives health data.
3.4 The anonymous installation identifier. The app generates a random per-installation identifier (a UUID). On iOS it is stored in UserDefaults; on Android in SharedPreferences. This identifier is sent to the proxy as the uid for quota counting. It is:
- not your name, e-mail address, phone number, Apple ID, or Google account;
- not linked to any account (there is no account);
- pseudonymous rather than strictly anonymous: the proxy can see that "this installation" made N requests, but it cannot tell who you are.
A signed device token (HMAC) is derived from the uid and used to authenticate requests; tampering yields 401.
3.5 Quota counting. To enforce fair-use limits, the proxy counts requests per uid per local day and per month, and it counts total tokens against a single organisation-wide daily ceiling. These counters are stored in Cloudflare Durable Objects. The counters contain the identifier and a number — not your health content.
3.6 Purchase verification. If you subscribe, the app passes a store receipt reference (ios:<originalTransactionId> or android:<purchaseToken>) to the proxy, which verifies it against the Apple App Store Server API or the Google Play Developer API. We keep a cached verification verdict per uid for up to 24 hours, keyed on a SHA-256 hash of the receipt. No card number, payment details, or billing address ever reach the app or our server — those stay with Apple or Google.
3.7 Server-side logs. The proxy logs operational metadata — including the uid, the entitlement tier, the outcome, and any response-filter flags (event: "response_flag") used to measure dosing/efficacy leaks. These logs are used for abuse prevention, cost control, and safety measurement. Log retention must be confirmed (see §6). ATT BEKRÄFTA: Cloudflare Workers log retention period.
3.8 The optional usage statistics — planned, NOT built. A future opt-in usage-statistics feature is documented but has not been built and is off by default. If it is ever shipped, it would collect counters only (app openings, number of logs, quota levels) linked to the same anonymous installation identifier, and it would be described as *"only if you choose to turn it on."* It must not be described anywhere as something already collected. This policy will be updated before any such feature ships.
3.9 What we never do. We do not show ads, do not sell your data, do not share it with data brokers, and run no third-party analytics or tracking SDKs. Health data leaves the device only as the AI context in §3.2, and only when you send an AI question.
4. Legal basis for each processing operation
Under the GDPR we must have a lawful basis for each purpose. Because health data is a special category of data (Art. 9), we need both an Art. 6 basis and an Art. 9 exception. For the AI Coach we rely on your explicit consent (Art. 9(2)(a)), collected in the app before use.
| # | Processing operation | Data | Lawful basis (Art. 6) | Special-category basis (Art. 9) |
|---|---|---|---|---|
| 4.1 | Storing and analysing your logs on the device | Meals, symptoms, supplements, settings | Not a "processing by the controller" in the usual sense (data remains under your sole control on your own device); where it is treated as processing, Art. 6(1)(a) consent | Art. 9(2)(a) — explicit consent |
| 4.2 | Sending the health context to the AI Coach and receiving the reply | 7-day symptoms, supplements with dosage, meals, key patterns, last 10 messages | Art. 6(1)(a) consent (and/or 6(1)(b) to perform the requested feature) | Art. 9(2)(a) — explicit consent (this is the basis specifically required for health data leaving the device) |
| 4.3 | Quota counting and abuse prevention | Anonymous install uid, counters, request metadata | Art. 6(1)(f) legitimate interest (service integrity, cost control) or 6(1)(b) | Not applicable (no health content in the counter) |
| 4.4 | Purchase / entitlement verification | Receipt reference, verification verdict | Art. 6(1)(b) contract (delivering the subscription you bought) | Not applicable |
| 4.5 | Security logging and safety filter measurement | uid, tier, response flags | Art. 6(1)(f) legitimate interest | Not applicable to the log fields themselves |
| 4.6 | Optional usage statistics (planned, opt-in) | Counters only | Art. 6(1)(a) consent | Not applicable |
4.7 Consent is the hinge. You give explicit consent via the in-app consent screen before any logging (consent_given / consent_version). You can withdraw consent at any time in Settings; withdrawal stops future AI processing. ATT BEKRÄFTA / JURIST: whether Art. 6(1)(b) should be relied on at all for §4.2, or whether consent alone is the correct and sufficient basis; and confirm the wording of the consent screen matches the Art. 9(2)(a) standard for explicit consent.
5. Transfer to a third country (USA)
5.1 Where the data goes. When you use the AI Coach, your health context is processed in the United States — by Cloudflare and by Anthropic. Both are US-headquartered companies. Some processing may occur on Cloudflare's global edge network.
5.2 Transfer mechanism. Transfers from the EU/EEA to the US are intended to be covered by the EU Standard Contractual Clauses (Commission Implementing Decision (EU) 2021/914), together with a Data Processing Agreement with each provider. ATT BEKRÄFTA: confirm that a signed DPA incorporating the 2021 SCCs is in place with Cloudflare and with Anthropic, and record the module used. Cloudflare and Anthropic may also rely on additional safeguards (e.g. a Data Privacy Framework certification); this must be verified rather than assumed. ATT BEKRÄFTA
5.3 Practical consequence. Because the transfer happens only when you send an AI question, not using the AI Coach means no transfer to the US. This is the single most effective way to keep your health data inside the EU/EEA.
5.4 JURIST. The transfer-impact assessment (TIA) for Cloudflare and Anthropic, and the choice between SCCs and any adequacy decision, must be confirmed by counsel.
6. Retention
| Data | Where | Retention |
|---|---|---|
| Meals, symptoms, supplements, chat history, settings | Your device (SQLite) | Until you delete it, clear app data, or uninstall the app. We have no copy. |
| AI health context in transit / at the model provider | Cloudflare + Anthropic | Processed to generate the reply. Anthropic API retention and zero-retention configuration must be confirmed: ATT BEKRÄFTA. |
Quota counters (per uid, day + month) | Cloudflare Durable Objects | Target: rolling window, counters expire after the period they measure (day / month) plus a short buffer — exact TTL to be confirmed ATT BEKRÄFTA. |
| Cached receipt-verification verdict | Cloudflare | Up to 24 hours (ENTITLEMENT_CACHE_HOURS). |
| Signed device token | Cloudflare + your device | Valid until invalidated / app data cleared. |
Operational logs incl. response_flag | Cloudflare | ATT BEKRÄFTA — confirm and document a defined retention limit, e.g. 30 days. |
| Optional usage statistics | (planned, not built) | [N/A until built] |
6.1 JURIST. A storage-limitation statement that says "ATT BEKRÄFTA" cannot be published. Replace every such field with a concrete, defensible period before go-live.
7. Your rights under the GDPR
You have the following rights, which you can exercise without charge:
- Access (Art. 15) — see the personal data we hold about you. Because your logs are on your device, you can view them in the app. For the pseudonymous server-side data (quota counters keyed to your
uid), contact us at ATT FYLLA I. - Rectification (Art. 16) — correct inaccurate data; edit it in the app.
- Erasure / "right to be forgotten" (Art. 17) — delete your data; see §8.
- Restriction (Art. 18) — restrict processing while a dispute is resolved.
- Data portability (Art. 20) — export your data in a common format; the app offers JSON/CSV export.
- Object (Art. 21) — object to processing based on legitimate interest (§4.3, §4.5).
- Withdraw consent (Art. 7(3)) — at any time, in Settings, without affecting the lawfulness of processing done before withdrawal.
- Lodge a complaint — with the Swedish Authority for Privacy Protection (IMY, Integritetsskyddsmyndigheten, imy.se) or your local supervisory authority.
7.1 Identifying you for server-side requests. Because there is no account, we may need your anonymous installation identifier to locate the server-side quota counters for an access or erasure request. See §8.
8. How to delete everything
8.1 Delete the data on your device. Uninstalling the app removes the local SQLite database and all logs. Alternatively, use "Delete All My Data" in the app's privacy settings, which permanently deletes your meals, symptoms, supplements, chat history, and settings. This cannot be undone. Once deleted, and once you stop using the AI Coach, no copy remains with us.
8.2 Delete the server-side quota counters. The proxy holds a small pseudonymous record (the counters in §3.5/§3.7 keyed to your uid). To have it deleted, e-mail ATT FYLLA I with your installation identifier and the subject "Data deletion request". We will delete the counters and associated logs within the statutory one month (Art. 12(3)). ATT BEKRÄFTA: confirm the internal process and the tooling to locate and delete a uid in the Durable Objects.
8.3 Withdrawn consent ≠ deleted data. Withdrawing consent stops future AI processing but does not itself delete data. To delete, follow §8.1 and §8.2.
9. Children
SIBO AI is not directed at children. It is intended for adults aged 16 and over. We do not knowingly collect data from anyone under 16. If you believe a child under 16 has used the app, contact us at ATT FYLLA I and we will delete the associated server-side data. ATT BEKRÄFTA / JURIST: confirm the age threshold against the app-store age rating and each market's rules.
10. Changes to this policy (version history)
We will update this policy when the data flow changes — for example, if the planned opt-in usage statistics (§3.8) ship, if a new sub-processor is added, or if the retention schedule changes.
| Version | Date | Summary of changes |
|---|---|---|
| 1.0 | 2026-09-12 | First version. States the real AI-Coach data flow (7-day symptom/supplement-with-dosage/meal context + last 10 messages to Cloudflare → Anthropic), corrects the false "health data stays on your device" claim, adds Art. 9(2)(a) basis, US-transfer mechanism, retention table, rights, deletion, children, and the copy-change annex. |
Integritetspolicy (svenska)
1. Vem ansvarar för dina uppgifter (personuppgiftsansvarig)
1.1 Personuppgiftsansvarig. Ansvarig för de personuppgifter som beskrivs i denna policy är:
- Menudo Consulting AB (Sverige) — säte: ATT FYLLA I
- Organisationsnummer: ATT FYLLA I
- Kontakt-e-post i integritetsärenden: ATT FYLLA I
- Postadress i integritetsärenden: ATT FYLLA I
1.2 Appen och tjänsten. "SIBO AI" ("appen") är ett verktyg för egenvård och livsstilsuppföljning. Den är inte en medicinteknisk produkt och diagnostiserar, behandlar eller botar inte något tillstånd. Två delar är relevanta för integriteten:
- appen på enheten (iOS och Android), som lagrar och analyserar dina loggar lokalt, och
- en liten serverdel (en "Cloudflare Worker"-proxy) som bara används när du använder AI-coachen, samt för att verifiera köp i butikerna.
1.3 Omfattning. Policyn omfattar appen, serverdelen och butikslistningen för SIBO AI.
1.4 Granskningsnotis. Avsnitt 4 (rättslig grund), 5 (överföring till tredjeland), 6 (lagringstid) och 8 (radering) innehåller punkter märkta ATT BEKRÄFTA. Dessa måste bekräftas med underbiträdena och granskas av jurist innan policyn publiceras. Publicera inte en version som fortfarande innehåller ett ATT BEKRÄFTA på en plats där ett efterlevnadsstämål påstås.
2. Vilka uppgifter som stannar på enheten
2.1 Lokal databas. All din loggdata lagras i en lokal SQLite-databas på enheten (filnamn sibocoach.db). Det gäller:
- Måltider: tidsstämplar, livsmedel och ingredienser, mängder, måltidsstorlek.
- Symtom: typ, svårighetsgrad (1–10), tidsstämplar och anteckningar.
- Tillskott: namn, kategori, dosering, tidsstyrning, frekvens, start-/stoppdatum och dina effektbedömningar.
- Chatthistorik med AI-coachen (så som den visas för dig i appen).
- Tester/experiment du registrerar, om du använder de funktionerna.
- Inställningar, inklusive din samtyckespost (
consent_given,consent_version,consent_date) och det anonyma installations-ID som beskrivs i §3.4.
2.2 Inget konto, ingen serverkopia av dina loggar. Appen kräver inget konto och ingen inloggning. Vi har ingen serverkopia av dina loggar. Det finns ingen molnsynkronisering av dina hälsodata. Tappar du enheten försvinner loggarna med den, om du inte själv har gjort en säkerhetskopia (t.ex. enhetens egen backup).
2.3 Analys på enheten. Korrelationsmotorn (riskvärden, konfidensintervall, Fisher/FDR-signifikans) körs helt på enheten. Ingen loggdata skickas någonstans för att ta fram den.
2.4 Vad "stannar på enheten" alltså betyder. Poster för måltider, symtom och tillskott, korrelationsanalysen och chatthistoriken lagras och behandlas lokalt. Det enda undantaget är det AI-sammanhang som beskrivs i §3.
3. Vilka uppgifter som lämnar enheten — och till vem
3.1 Det enda rutinmässiga utflödet är AI-coachen. Hälsodata lämnar enheten endast när du aktivt skickar en fråga till AI-coachen. Ingen bakgrundsprocess skickar dina loggar. Använder du aldrig AI-coachen (eller trycker aldrig skicka) lämnar inga hälsodata enheten.
3.2 Exakt vad som skickas i en AI-förfrågan. När du skickar en fråga bygger appen en "hälso-kontext" och skickar den tillsammans med ditt meddelande. Kontexten skapas av appens funktion buildAiContext() och innehåller:
- Symtom — senaste 7 dagarna: varje symtomtyp, antal förekomster och medelsvårighetsgrad av 10.
- Aktuella tillskott — med dosering: tillskottets namn, dosering (t.ex. "Berberine 500 mg") och hur många dagar du tagit det.
- Måltider — senaste 7 dagarna: totalt antal måltider samt de senaste 5 måltiderna med livsmedel och mängder.
- Nyckelmönster: andel måltider följda av symtom inom 3 timmar, veckotrend (bättre/sämre/stabil med procent), möjliga mattrigger och eventuell HCL-effekt som motorn räknat fram.
- Chatten i sig: innehållet i de senaste 10 chattmeddelandena (dina meddelanden och AI:ns svar).
Kontexten kapas på serversidan vid högst 12 000 byte (MAX_HEALTH_CONTEXT_BYTES). Din förfrågan innehåller också ett locale-värde (t.ex. sv) och en tidszonshuvud (X-Tz-Offset) som bara används för att nollställa dygnskvoten vid din lokala midnatt.
> Notis för transparensgranskningen: doseringsdetaljen är avsiktlig men måste redovisas öppet. Att skicka "Berberine 500 mg" är en hälsouppgift om dig, och den lämnar enheten som en del av AI-sammanhanget. All text som säger att hälsodata aldrig lämnar enheten är osann redan av detta skäl.
3.3 Vilka som tar emot — kedjan.
- Appen skickar förfrågan över HTTPS till vår serverproxy:
https://sibo-ai-proxy.ekonomi-b45.workers.dev(POST /v1/chat), driftad på Cloudflare (Cloudflare, Inc., USA, med Cloudflares EU/globala nät). - Proxyn håller Anthropics API-nyckel på serversidan (appen har ingen egen AI-nyckel). Den vidarebefordrar meddelanden och hälso-kontext till Anthropics API (Anthropic PBC, USA) med modellen
claude-haiku-4-5. - Anthropic returnerar svaret som proxyn skickar tillbaka till din app. Svaret skannas på serversidan efter doseringssträngar och verkan-påståenden; skanningsflaggorna loggas (se §3.6).
Mottagarna av AI-sammanhanget är alltså: Cloudflare (som leverantör av drift/hosting) och Anthropic (som leverantör av AI-modellen). Ingen annan tredje part tar emot hälsodata.
3.4 Det anonyma installations-ID:t. Appen genererar ett slumpat per-installations-ID (en UUID). På iOS lagras det i UserDefaults, på Android i SharedPreferences. ID:t skickas till proxyn som uid för kvoträkning. Det är:
- inte ditt namn, din e-post, ditt telefonnummer, ditt Apple-ID eller ditt Google-konto;
- inte kopplat till något konto (det finns inget konto);
- pseudonymt snarare än strikt anonymt: proxyn kan se att "denna installation" gjort N förfrågningar, men kan inte veta vem du är.
En signerad enhetstoken (HMAC) härleds ur uid och används för att autentisera förfrågningar; manipulering ger 401.
3.5 Kvoträkning. För att upprätthålla skälig användning räknar proxyn förfrågningar per uid per lokalt dygn och per månad, och räknar totalt antal tokens mot ett enda organisationsbrett dygnstak. Räknarna lagras i Cloudflare Durable Objects. Räknarna innehåller identifieraren och ett tal — inte ditt hälsomässiga innehåll.
3.6 Köpverifiering. Om du tecknar prenumeration skickar appen en kvittoreferens (ios:<originalTransactionId> eller android:<purchaseToken>) till proxyn, som verifierar den mot Apple App Store Server API eller Google Play Developer API. Vi behåller ett cachat verifieringsutlåtande per uid i upp till 24 timmar, nycklat på en SHA-256-hash av kvittot. Inget kortnummer, inga betaluppgifter och ingen faktureringsadress når någonsin appen eller vår server — de stannar hos Apple eller Google.
3.7 Serverloggar. Proxyn loggar driftmetadata — inklusive uid, nivå (entitlement), utfall och eventuella svarsfilterflaggor (event: "response_flag") som används för att mäta doserings-/verkanläckage. Loggarna används för missbruksskydd, kostnadskontroll och säkerhetsmätning. Loggarnas lagringstid måste bekräftas (se §6). ATT BEKRÄFTA: Cloudflare Workers logg-lagringstid.
3.8 Den valfria användningsstatistiken — planerad, INTE byggd. En framtida opt-in-funktion för användningsstatistik är dokumenterad men är inte byggd och är avstängd som standard. Om den någonsin lanseras skulle den samla in endast räknare (appöppningar, antal loggningar, kvotnivåer) kopplade till samma anonyma installations-ID, och den skulle beskrivas som *"bara om du väljer att slå på den".* Den får inte beskrivas någonstans som något som redan samlas in. Denna policy uppdateras innan en sådan funktion lanseras.
3.9 Vad vi aldrig gör. Vi visar inga annonser, säljer inte dina uppgifter, delar dem inte med datamäklare och har inget tredjepartsanalys- eller spårnings-SDK. Hälsodata lämnar enheten endast som AI-sammanhanget i §3.2, och endast när du skickar en AI-fråga.
4. Rättslig grund per behandling
Enligt GDPR krävs en rättslig grund för varje ändamål. Eftersom hälsodata är en särskild kategori av uppgifter (art. 9) krävs både en grund enligt art. 6 och ett undantag enligt art. 9. För AI-coachen vilar vi på ditt uttryckliga samtycke (art. 9.2.a), som inhämtas i appen före användning.
| # | Behandling | Uppgifter | Rättslig grund (art. 6) | Grund för särskild kategori (art. 9) |
|---|---|---|---|---|
| 4.1 | Lagring och analys av dina loggar på enheten | Måltider, symtom, tillskott, inställningar | Inte "behandling av den ansvarige" i vanlig mening (uppgifterna stannar under din egen kontroll på din egen enhet); där det ändå ses som behandling: art. 6.1.a samtycke | Art. 9.2.a — uttryckligt samtycke |
| 4.2 | Att skicka hälso-kontexten till AI-coachen och ta emot svaret | 7 dagars symtom, tillskott med dosering, måltider, nyckelmönster, senaste 10 meddelandena | Art. 6.1.a samtycke (och/eller 6.1.b för att utföra den begärda funktionen) | Art. 9.2.a — uttryckligt samtycke (den grund som specifikt krävs för att hälsodata lämnar enheten) |
| 4.3 | Kvoträkning och missbruksskydd | Anonymt installations-ID (uid), räknare, förfrågningsmetadata | Art. 6.1.f berättigat intresse (tjänstens integritet, kostnadskontroll) eller 6.1.b | Inte tillämpligt (inget hälsoinnehåll i räknaren) |
| 4.4 | Köp-/entitlement-verifiering | Kvittoreferens, verifieringsutlåtande | Art. 6.1.b avtal (att leverera den prenumeration du köpt) | Inte tillämpligt |
| 4.5 | Säkerhetsloggning och mätning av säkerhetsfiltret | uid, nivå, svarsflaggor | Art. 6.1.f berättigat intresse | Inte tillämpligt på själva loggfälten |
| 4.6 | Valfri användningsstatistik (planerad, opt-in) | Endast räknare | Art. 6.1.a samtycke | Inte tillämpligt |
4.7 Samtycket är gångjärnet. Du ger uttryckligt samtycke via appens samtyckesskärm innan någon loggning sker (consent_given / consent_version). Du kan återkalla samtycket när som helst i Inställningar; återkallelsen stoppar framtida AI-behandling. ATT BEKRÄFTA / JURIST: om art. 6.1.b alls bör åberopas för §4.2, eller om samtycket ensamt är korrekt och tillräcklig grund; samt bekräfta att samtyckesskärmens formulering uppfyller art. 9.2.a:s krav på uttryckligt samtycke.
5. Överföring till tredjeland (USA)
5.1 Vart uppgifterna tar vägen. När du använder AI-coachen behandlas din hälso-kontext i USA — av Cloudflare och av Anthropic. Båda är amerikanska bolag. En del behandling kan ske i Cloudflares globala edge-nät.
5.2 Överföringsmekanism. Överföring från EU/EES till USA avses täckas av EU:s standardavtalsklausuler (kommissionens genomförandebeslut (EU) 2021/914) tillsammans med ett personuppgiftsbiträdesavtal med respektive leverantör. ATT BEKRÄFTA: bekräfta att ett undertecknat biträdesavtal som införlivar 2021 års SCC finns med Cloudflare och med Anthropic, och dokumentera vilken modul som används. Cloudflare och Anthropic kan också stödja sig på ytterligare skyddsåtgärder (t.ex. certifiering enligt Data Privacy Framework); detta ska verifieras, inte antas. ATT BEKRÄFTA
5.3 Praktisk konsekvens. Eftersom överföringen bara sker när du skickar en AI-fråga innebär att inte använda AI-coachen att ingen överföring till USA sker. Det är det enskilt mest effektiva sättet att hålla dina hälsodata inom EU/EES.
5.4 JURIST. Konsekvensbedömningen för överföring (TIA) för Cloudflare och Anthropic, samt valet mellan SCC och eventuellt beslut om adekvat skyddsnivå, måste bekräftas av jurist.
6. Lagringstid
| Uppgift | Var | Lagringstid |
|---|---|---|
| Måltider, symtom, tillskott, chatthistorik, inställningar | Din enhet (SQLite) | Tills du raderar dem, rensar appdata eller avinstallerar appen. Vi har ingen kopia. |
| AI-hälso-kontext under transport / hos modell-leverantören | Cloudflare + Anthropic | Behandlas för att skapa svaret. Anthropics API-lagring och konfiguration utan lagring måste bekräftas: ATT BEKRÄFTA. |
Kvoträknare (per uid, dygn + månad) | Cloudflare Durable Objects | Mål: rullande fönster, räknarna upphör efter den period de mäter (dygn/månad) plus kort buffert — exakt TTL att bekräfta ATT BEKRÄFTA. |
| Cachat kvittoverifieringsutlåtande | Cloudflare | Upp till 24 timmar (ENTITLEMENT_CACHE_HOURS). |
| Signerad enhetstoken | Cloudflare + din enhet | Giltig tills den ogiltigförklaras / appdata rensas. |
Driftloggar inkl. response_flag | Cloudflare | ATT BEKRÄFTA — bekräfta och dokumentera en bestämd gräns, t.ex. 30 dagar. |
| Valfri användningsstatistik | (planerad, ej byggd) | [Ej tillämpligt förrän byggd] |
6.1 JURIST. Ett lagringstidsuttalande som säger "ATT BEKRÄFTA" kan inte publiceras. Ersätt varje sådant fält med en konkret, försvarbar period före lansering.
7. Dina rättigheter enligt GDPR
Du har följande rättigheter, som du kan utöva kostnadsfritt:
- Tillgång (art. 15) — se de personuppgifter vi behandlar om dig. Eftersom dina loggar ligger på enheten kan du se dem i appen. För de pseudonyma serveruppgifterna (kvoträknare knutna till ditt
uid), kontakta oss på ATT FYLLA I. - Rättelse (art. 16) — rätta felaktiga uppgifter; redigera dem i appen.
- Radering / "rätten att bli bortglömd" (art. 17) — radera dina uppgifter; se §8.
- Begränsning (art. 18) — begränsa behandlingen medan en tvist utreds.
- Dataportabilitet (art. 20) — exportera dina uppgifter i ett vanligt format; appen erbjuder export som JSON/CSV.
- Invändning (art. 21) — invänd mot behandling som vilar på berättigat intresse (§4.3, §4.5).
- Återkalla samtycke (art. 7.3) — när som helst i Inställningar, utan att det påverkar lagligheten av behandling som skett före återkallelsen.
- Lämna klagomål — till Integritetsskyddsmyndigheten (IMY, imy.se) eller din lokala tillsynsmyndighet.
7.1 Identifiering vid serverförfrågningar. Eftersom det inte finns något konto kan vi behöva ditt anonyma installations-ID för att hitta kvoträknarna på serversidan vid en begäran om tillgång eller radering. Se §8.
8. Hur man raderar allt
8.1 Radera data på enheten. Att avinstallera appen tar bort den lokala SQLite-databasen och alla loggar. Alternativt: använd "Radera all min data" i appens integritetsinställningar, vilket permanent raderar dina måltider, symtom, tillskott, chatthistorik och inställningar. Detta kan inte ångras. När det är raderat, och när du slutar använda AI-coachen, finns ingen kopia kvar hos oss.
8.2 Radera kvoträknarna på serversidan. Proxyn har en liten pseudonym post (räknarna i §3.5/§3.7 knutna till ditt uid). För att få den raderad: mejla ATT FYLLA I med ditt installations-ID och ämnet "Begäran om radering". Vi raderar räknarna och tillhörande loggar inom den lagstadgade månaden (art. 12.3). ATT BEKRÄFTA: bekräfta den interna processen och verktygen för att hitta och radera ett uid i Durable Objects.
8.3 Återkallat samtycke ≠ raderad data. Att återkalla samtycket stoppar framtida AI-behandling men raderar inte i sig några uppgifter. Följ §8.1 och §8.2 för att radera.
9. Barn
SIBO AI är inte riktad till barn. Den är avsedd för vuxna från 16 år. Vi samlar inte medvetet in uppgifter från någon under 16. Om du tror att ett barn under 16 har använt appen, kontakta oss på ATT FYLLA I så raderar vi tillhörande serveruppgifter. ATT BEKRÄFTA / JURIST: bekräfta åldersgränsen mot butikernas åldersklassning och respektive marknads regler.
10. Ändringar av denna policy (ändringshistorik)
Vi uppdaterar policyn när dataflödet ändras — t.ex. om den planerade opt-in-statistiken (§3.8) lanseras, om ett nytt underbiträde tillkommer, eller om lagringstiderna ändras.
| Version | Datum | Ändringar |
|---|---|---|
| 1.0 | 2026-09-12 | Första versionen. Redovisar det verkliga dataflödet i AI-coachen (7 dagars symtom/tillskott-med-dosering/måltider + senaste 10 meddelandena till Cloudflare → Anthropic), rättar det osanna påståendet "hälsodata stannar på din enhet", lägger till grund enligt art. 9.2.a, mekanism för USA-överföring, lagringstidstabell, rättigheter, radering, barn samt bilagan med textändringar. |
ANNEX A / BILAGA A — In-app- and store copy that must change / In-app- och butikstexter som måste ändras
These are the strings whose current wording contradicts §3 of this policy. The left column is the existing key; the columns propose replacement text per language. The current sentence "Your health data stays on your device" is inaccurate and must not survive publication. Apply to the relevant files (store-assets/STORE-LISTING.md for store copy; ios/SIBOCoach/*.lproj/Localizable.strings and android/res/values*/strings.xml for in-app strings), then re-check all four locales.
Dessa strängar motsäger §3 i denna policy. Vänster kolumn är befintlig nyckel; kolumnerna föreslår ersättningstext per språk. Meningen "Your health data stays on your device" är osann och får inte finnas kvar vid publicering. Ändra i respektive fil (store-assets/STORE-LISTING.md för butikstext; ios/SIBOCoach/*.lproj/Localizable.strings och android/res/values*/strings.xml för in-app-strängar), och kontrollera alla fyra språken.
| Key (existing) | Where used | English (proposed) | Svenska (förslag) | Deutsch (Vorschlag) | Español (propuesta) |
|---|---|---|---|---|---|
store_privacy_bullet *(currently: "Your health data stays on your device")* | Play/App Store full description, "Built for privacy" | "Your logs stay on your device. When you use the AI Coach, a summary of your recent logs — including your supplements and their dosages — is sent through our proxy to Anthropic (USA) to generate the answer. Nothing is sent unless you send a question." | "Dina loggar stannar på din enhet. När du använder AI-coachen skickas en sammanfattning av dina senaste loggar — inklusive dina tillskott och deras dosering — via vår proxy till Anthropic (USA) för att skapa svaret. Inget skickas om du inte skickar en fråga." | "Deine Einträge bleiben auf deinem Gerät. Wenn du den KI-Coach nutzt, wird eine Zusammenfassung deiner letzten Einträge — einschließlich deiner Präparate und deren Dosierung — über unseren Proxy an Anthropic (USA) gesendet, um die Antwort zu erzeugen. Ohne deine Frage wird nichts gesendet." | "Tus registros permanecen en tu dispositivo. Cuando usas el Coach de IA, se envía un resumen de tus registros recientes —incluidos tus suplementos y sus dosis— a través de nuestro proxy a Anthropic (EE. UU.) para generar la respuesta. No se envía nada a menos que envíes una pregunta." |
store_ai_bullet *(new — add next to the AI Coach feature)* | Play/App Store full description, AI Coach section | "The AI Coach looks at your last 7 days of symptoms, meals and supplements (with dosages) plus your last 10 chat messages. That context leaves your device only when you press send." | "AI-coachen tittar på dina senaste 7 dagars symtom, måltider och tillskott (med dosering) samt dina senaste 10 chattmeddelanden. Det sammanhanget lämnar enheten bara när du trycker skicka." | "Der KI-Coach sieht deine Symptome, Mahlzeiten und Präparate (mit Dosierung) der letzten 7 Tage sowie deine letzten 10 Chat-Nachrichten. Dieser Kontext verlässt dein Gerät nur, wenn du auf Senden tippst." | "El Coach de IA revisa tus síntomas, comidas y suplementos (con dosis) de los últimos 7 días, más tus últimos 10 mensajes de chat. Ese contexto solo sale de tu dispositivo cuando pulsas enviar." |
consent_how_1 *(currently: "✅ Store your logs locally on your device")* | In-app consent screen | "✅ Store your logs locally on your device (we keep no server copy)" | "✅ Lagrar dina loggar lokalt på din enhet (vi har ingen serverkopia)" | "✅ Speichert deine Einträge lokal auf deinem Gerät (keine Serverkopie bei uns)" | "✅ Guarda tus registros localmente en tu dispositivo (no conservamos copia en el servidor)" |
consent_how_2 *(currently: "✅ Send data to our AI service to generate pattern insights (Pro feature)")* | In-app consent screen | "✅ Only when YOU send an AI question: send a summary of your recent logs (symptoms, meals, supplements WITH dosages, last 10 messages) through our proxy to Anthropic (USA) to generate the reply" | "✅ Endast när DU skickar en AI-fråga: skicka en sammanfattning av dina senaste loggar (symtom, måltider, tillskott MED dosering, senaste 10 meddelandena) via vår proxy till Anthropic (USA) för att skapa svaret" | "✅ Nur wenn DU eine KI-Frage sendest: eine Zusammenfassung deiner letzten Einträge (Symptome, Mahlzeiten, Präparate MIT Dosierung, letzte 10 Nachrichten) über unseren Proxy an Anthropic (USA) senden, um die Antwort zu erzeugen" | "✅ Solo cuando TÚ envías una pregunta a la IA: enviar un resumen de tus registros recientes (síntomas, comidas, suplementos CON dosis, últimos 10 mensajes) a través de nuestro proxy a Anthropic (EE. UU.) para generar la respuesta" |
consent_ai_note *(currently: "AI Processing (Pro): When using AI Insights, your logs are sent to our AI provider for analysis. Data is not retained by the provider after processing.")* | In-app consent screen, AI note | "AI processing: When you send an AI question, a summary of your recent logs — including supplements with dosages — is sent via Cloudflare (our proxy) to Anthropic in the USA. Cloudflare and Anthropic are processors; transfers use the EU Standard Contractual Clauses. Do not use the AI Coach if you do not want this." | "AI-behandling: När du skickar en AI-fråga skickas en sammanfattning av dina senaste loggar — inklusive tillskott med dosering — via Cloudflare (vår proxy) till Anthropic i USA. Cloudflare och Anthropic är biträden; överföringen sker med EU:s standardavtalsklausuler. Använd inte AI-coachen om du inte vill detta." | "KI-Verarbeitung: Wenn du eine KI-Frage sendest, wird eine Zusammenfassung deiner letzten Einträge — einschließlich Präparate mit Dosierung — über Cloudflare (unser Proxy) an Anthropic in den USA gesendet. Cloudflare und Anthropic sind Auftragsverarbeiter; die Übermittlung erfolgt auf Basis der EU-Standardvertragsklauseln. Nutze den KI-Coach nicht, wenn du das nicht möchtest." | "Procesamiento de IA: cuando envías una pregunta, se envía un resumen de tus registros recientes —incluidos suplementos con dosis— a través de Cloudflare (nuestro proxy) a Anthropic en EE. UU. Cloudflare y Anthropic son encargados; la transferencia usa las Cláusulas Contractuales Tipo de la UE. No uses el Coach de IA si no quieres esto." |
privacy_ai_summary *(new)* | In-app privacy settings | "What leaves your device: only your AI questions and a summary of your recent logs (7 days of symptoms, meals and supplements with dosages, plus your last 10 messages). Sent via Cloudflare to Anthropic (USA), only when you send a question." | "Vad som lämnar din enhet: endast dina AI-frågor och en sammanfattning av dina senaste loggar (7 dagars symtom, måltider och tillskott med dosering, samt dina senaste 10 meddelanden). Skickas via Cloudflare till Anthropic (USA), bara när du skickar en fråga." | "Was dein Gerät verlässt: nur deine KI-Fragen und eine Zusammenfassung deiner letzten Einträge (7 Tage Symptome, Mahlzeiten und Präparate mit Dosierung, plus deine letzten 10 Nachrichten). Über Cloudflare an Anthropic (USA), nur wenn du eine Frage sendest." | "Qué sale de tu dispositivo: solo tus preguntas a la IA y un resumen de tus registros recientes (7 días de síntomas, comidas y suplementos con dosis, más tus últimos 10 mensajes). Se envía vía Cloudflare a Anthropic (EE. UU.), solo cuando envías una pregunta." |
privacy_delete_confirm *(currently lists local data only)* | In-app privacy settings, delete-confirm | "This permanently deletes your meals, symptoms, supplements, chat history and settings on THIS device. To also delete the anonymous quota counters on our server, e-mail ATT FYLLA I with your installation ID. This cannot be undone." | "Detta raderar permanent dina måltider, symtom, tillskott, chatthistorik och inställningar på DENNA enhet. För att även radera de anonyma kvoträknarna på vår server, mejla ATT FYLLA I med ditt installations-ID. Detta kan inte ångras." | "Dies löscht dauerhaft deine Mahlzeiten, Symptome, Präparate, Chatverlauf und Einstellungen auf DIESEM Gerät. Um auch die anonymen Kontingent-Zähler auf unserem Server zu löschen, sende eine E-Mail an ATT FYLLA I mit deiner Installations-ID. Dies kann nicht rückgängig gemacht werden." | "Esto elimina permanentemente tus comidas, síntomas, suplementos, historial de chat y ajustes en ESTE dispositivo. Para eliminar también los contadores anónimos de cuota en nuestro servidor, escribe a ATT FYLLA I con tu ID de instalación. Esto no se puede deshacer." |
store_review_notes *(currently: "Health data is stored locally on-device. The optional AI Coach sends ... a limited health-context summary")* | App Store/Play "Notes for review" | "Health data is stored locally on-device (SQLite); we hold no server copy. The AI Coach is the ONLY feature that sends health data off-device: on user send, a 7-day summary of symptoms, meals and supplements (with dosages) plus the last 10 messages goes to our Cloudflare Worker proxy and on to Anthropic (claude-haiku-4-5) in the USA. Anonymous per-install ID; no account; no identity. Store receipts are verified server-side. Privacy policy: ATT FYLLA I: URL." | "Hälsodata lagras lokalt på enheten (SQLite); vi har ingen serverkopia. AI-coachen är den ENDA funktionen som skickar hälsodata från enheten: när användaren skickar går en 7-dagarssammanfattning av symtom, måltider och tillskott (med dosering) samt de senaste 10 meddelandena till vår Cloudflare Worker-proxy och vidare till Anthropic (claude-haiku-4-5) i USA. Anonymt per-installations-ID; inget konto; ingen identitet. Butikskvitton verifieras på serversidan. Integritetspolicy: ATT FYLLA I: URL." | "Gesundheitsdaten werden lokal auf dem Gerät gespeichert (SQLite); wir halten keine Serverkopie. Der KI-Coach ist die EINZIGE Funktion, die Gesundheitsdaten vom Gerät sendet: Beim Senden durch den Nutzer geht eine 7-Tage-Zusammenfassung von Symptomen, Mahlzeiten und Präparaten (mit Dosierung) plus die letzten 10 Nachrichten an unseren Cloudflare-Worker-Proxy und weiter an Anthropic (claude-haiku-4-5) in den USA. Anonyme Installations-ID; kein Konto; keine Identität. Store-Belege werden serverseitig verifiziert. Datenschutzerklärung: ATT FYLLA I: URL." | "Los datos de salud se almacenan localmente en el dispositivo (SQLite); no conservamos copia en el servidor. El Coach de IA es la ÚNICA función que envía datos de salud fuera del dispositivo: al enviar el usuario, un resumen de 7 días de síntomas, comidas y suplementos (con dosis) más los últimos 10 mensajes va a nuestro proxy Cloudflare Worker y de allí a Anthropic (claude-haiku-4-5) en EE. UU. ID de instalación anónimo; sin cuenta; sin identidad. Los recibos de tienda se verifican en el servidor. Política de privacidad: ATT FYLLA I: URL." |
Notes for whoever applies this annex / Noter för den som genomför bilagan
- Do not translate the claim as-is. The four-language rewrite above replaces a single misleading sentence with an honest, specific one. Shortening it back to "stays on your device" reintroduces the defect. Översätt inte påståendet rakt av — skrivningen ovan ersätter en missvisande mening med en sann och specifik; kortar du tillbaka till "stannar på din enhet" är felet tillbaka.
- Replace every ATT FYLLA I: e-mail, installations-ID instruction, and the privacy-policy URL (§1.1, §7.1, §8.2, and the store notes) must be filled before publishing. ATT FYLLA I** får inte stå kvar i publicerad text.
- Still open for legal sign-off: the Art. 9(2)(a) consent wording (§4.7), the SCC/DPA confirmation with Cloudflare and Anthropic (§5.2), the retention schedule (§6), the server-side deletion process (§8.2), and the age threshold (§9). Kvar för jurist: samtyckesformuleringen (art. 9.2.a), SCC/biträdesavtal, lagringstider, raderingsprocessen på serversidan och åldersgränsen.
*End of document / Slut på dokument.*