Selovi — Privacy Policy
Effective date (last updated): 21 September 2026
Selovi ("the app") is a period and cycle tracker. It is built so that your health logs stay on your phone. When you first open it, the app asks for your date of birth, uses it on your phone to work out your age group and does not save it. Selovi is not available to children under 13. Users aged 13 to 17 can use the on-device cycle tracker. The account, the community, the end-to-end encrypted cloud backup and ads are limited to users whose age group is "18 or older". For them, an account is optional: you only need one to post in the community, for your profile and to use the encrypted cloud backup. For users aged 18 or older, the free version shows ads, and Selovi Plus, which can only be bought in this age group, removes them. Users aged 13–17 see no ads, cannot make purchases in the app, and get Selovi Plus's on-device features for free. This policy explains what the app stores, where, what goes to our service provider (Google Firebase) and to the ad provider (Google AdMob), and what you can do about it.
Who is responsible for your data (data controller)
The developer of Selovi is the data controller for the personal data that the app's account, community and cloud backup features process through our service providers. We never receive data that stays on your device.
- Developer / legal entity: RAVNHEIM LTD
- Postal address: 71–75 Shelton Street, Covent Garden, London, WC2H 9JQ, United Kingdom
- Privacy contact email: contact.selovi@ravnheim.co.uk
- Data controller details: RAVNHEIM LTD is a private limited company registered in England & Wales under company number 17403856; its registered office is the address above. Use the email address above for privacy questions and data subject requests.
The Google services we use are listed under "Service providers and where data is processed".
Summary
- No account needed. Core cycle tracking does not require an account.
Your cycle data remains on your device unless you explicitly enable encrypted cloud backup. An account is optional, available only to users whose age group is "18 or older", and only needed to take part in the community, your profile (display name and community alias) and the encrypted cloud backup.
- Your health logs are stored on your device. They are never sent to
the developer, to advertisers or to anyone else in readable form, and they are not linked to your account. They only leave your phone if you turn on the cloud backup, and then only after being encrypted on your phone with a passphrase that only you know. Nobody else, including us, can read them.
- Age groups. When you first open the app, it asks for your date of
birth. The app uses it only on your device, and only at that moment, to work out your age group ("Under 13", "13–17" or "18 or older"). Your date of birth is not saved and is never sent anywhere; only your age group and the time of your last age check are stored, and only on your device. After some time the app asks for your date of birth again to update your age group (see "Age"). Your age group is based on what you enter; Selovi does not verify your age or identity. Selovi is not available to children under 13. With "13–17" you can use the on-device cycle tracker only: no community, no account, no cloud backup, no ads and no in-app purchases (Selovi Plus's on-device features are free instead). The app does not start Firebase or any ad software, and it does not connect to Google Play Billing for purchases. The account, the community, the cloud backup, ads and Selovi Plus purchases are limited to users whose age group is "18 or older" (see "Age").
- If you create an account, your email address, the display name you
choose (optional), your sign-in method and a user ID are stored with Google Firebase, which runs the account system for us. You must be 18 or older.
- Community posts are public. Anyone who uses the community (which is
only available to users whose age group is "18 or older") can read them. They show only a random alias such as "Iris #14" and a color, never your name, email address or user ID. Public posts contain no account identifier; which account wrote which post is kept in private records on the server. The community is split by the app's languages, and community posts are associated with the language of the community in which they were posted. Don't share sensitive personal or health details that you don't want to be public.
- Protection against abuse. Community actions go through our server,
which applies rate limits and moderation. Firebase App Check (with Google Play Integrity) checks that requests come from the genuine app on a genuine device; it runs only for users whose age group is "18 or older" and is used only for security and fraud prevention, not for analytics or advertising. Records used for this are pseudonymous and are deleted after at most 90 days (rate-limit counters after at most 2 days).
- Ads (18 or older only). For users whose age group is "18 or older", the
free version shows non-personalized ads from Google AdMob, only after you allow them; where the law requires it, Google's consent form is shown before any ad is requested. Google's ad software then processes information such as your IP address, device and advertising identifiers, ad interactions and diagnostic data, which Google uses for advertising, ad measurement and fraud prevention (see "Advertising"). With Selovi Plus, or if your age group is "13–17", there are no ads and the ad software is not started at all.
- Selovi itself contains no analytics or crash-reporting tools (no Google
Analytics / Firebase Analytics). This is separate from ads: for users aged 18 or older who allow ads, Google's ad software does process data for ad measurement (see "Advertising"). We never sell your data and never use your health data for advertising.
- You can export or delete your data, delete your cloud backup and delete
your account in the app at any time.
What the app stores on your device
- Cycle information you enter: period dates, flow, estimated cycle and
period lengths.
- Daily logs: symptoms, mood, pain, discharge, sexual activity,
medication, sleep, exercise, weight, stress, body temperature and notes — only the categories you choose to track.
- Settings: language, theme, reminder times, app lock preference,
categories you track, and the name you entered.
- Your age group: one of three values ("Under 13", "13–17" or "18 or
older"), and the time of your last successful age check. The check time is not your date of birth: it contains no birth date, birth year or age, and it is not included in backups. Your date of birth is not stored: not in the app's storage, not in backups and not in your community profile. Your age group and the check time are never sent to us, to Firebase or to any other server.
- Selovi Plus status (whether you have purchased it; purchases are only
possible when your age group is "18 or older"). If you later switch to "13–17", this status stays on the device.
- Small counters the app needs to keep its own ad limits (for example
when the app was installed and when the last full-screen ad was shown), and, if your age group is "18 or older" and you allowed ads, your ad consent choices, which Google's consent tool stores on the device.
- If you use an account (18 or older only): the sign-in session that
keeps you signed in (sign-in tokens from Firebase), and when you confirmed the privacy policy and that you are 18 or older.
- Community settings: whether you have accepted the community guidelines
and the posts and replies you have reported (so they stay hidden for you). Your alias and the people you have blocked are kept in private records on the server (see "Community").
This data lives in the app's private storage on your device. The developer cannot see it and never receives it. It is also excluded from Android's automatic cloud backup, so it is not copied to your Google account.
Account (optional)
Core cycle tracking does not require an account. An account is only available to users whose age group is "18 or older". It is only needed for the community (posts, replies, likes, votes, reports and blocking), for your profile (your display name and community alias, kept in sync with your account) and to use the encrypted cloud backup. Reading the community does not require one. If your age group is "13–17", you cannot create an account or sign in.
How you sign up. With an email address and a password (at least 8 characters; you must confirm your email address before you can post), or with "Continue with Google" (Google Sign-In). Either way, before your account is created you confirm that you accept this policy and, once more, that you are 18 or older.
What is stored with your account (in Google Firebase Authentication):
- your email address;
- the display name you enter, if any (it is optional and can be a
nickname). It is also kept on your device and is shown only to you, never in the community;
- your sign-in method (email and password, or Google);
- a user ID generated by Firebase;
- if you use Google: the name, email address and profile picture link that
Google shares when you sign in. Selovi does not use the picture.
To keep you signed in, the app keeps sign-in tokens on your device. To protect accounts against abuse, Firebase Authentication also processes technical data such as your IP address and the app and SDK version; Google states that it keeps these logs for a few weeks.
What we use it for: signing you in; sending the email verification and password-reset emails (Firebase sends them for us); linking your community profile, your posts and your encrypted backup to you through private records, so that only you can change or delete them; applying rate limits and moderation; and keeping the service safe. We don't send newsletters or marketing emails.
Your health logs are not linked to your account. The only thing stored under your account that relates to them is the encrypted cloud backup, if you turn it on, and we cannot read it.
Community
The community is only available to users whose age group is "18 or older". If your age group is "13–17", you cannot read or post in it.
What is public. Posts and replies can be read by anyone who uses the community, even without an account. A public post or reply shows only: a random alias generated by the app (like "Iris #14") and a color, the text, the topic, optionally a mood, poll options, counters (such as likes, replies and votes), the time and, for posts, the language of the community in which the post was posted. Public posts and replies contain no account identifier: your name, email address and user ID are not in them.
Language communities. The community is split by the app's languages (Turkish, English, German, French, Spanish, Polish and Portuguese). Community posts are associated with the language of the community in which they were posted: when you post, the app's language at that moment is stored with the post. This language is part of the public post and only says which language community the post belongs to; it does not change if you later switch the app language. The feed shows only the posts of the community for the app's current language. Replies belong to the language community of their post, and no separate language is stored for them; poll options belong to their post. Your app language itself is not saved on the server, in your account or in your community profile; only the language of each post is stored.
What stays private. Which account wrote which post or reply is stored separately, in private records on the server that only you and our server can read. We use them so that you can delete your own content, and for blocking and moderation. Your community profile (alias and color) can be read only by you. Your likes and poll votes are private markers that only you can read: other people see only the totals, and who liked or voted for what is never public.
What you share
- The text of your posts and replies, the topic, and the poll options you
write.
- Optionally, a mood you choose (for example "tired").
Community posts and replies are public: anyone using the community can read them, shown under your alias. Please don't share sensitive personal or health details that you don't want to be public, and don't share your name, contact details or anything that could identify you or someone else. Community posts are not medical advice.
Our server handles every change. Posting, replying, deleting, reporting, blocking and changing your alias or profile go through our server (Google Cloud Functions), not directly into the database. The server checks each request, applies rate limits against spam and applies the moderation rules below. Posts, replies and poll options that contain a link, an email address or a phone number are rejected automatically (the community is anonymous and not a place for contact details or advertising). For the rate limits it keeps short-lived counters per account. These counters do not contain your user ID: they are stored under a pseudonymous code (a keyed hash, HMAC, of your user ID) and are deleted automatically after at most 2 days.
Reports and blocking. You can report a post, a reply or a user. No user can read reports. A report record contains what was reported, the reason, the time, the language of the reported content (our server takes it from the post, so that moderation can be organized by language), a pseudonymous code of your account and a pseudonymous code of the account that wrote the reported content (keyed hashes of the user IDs, so repeated violations can be recognised) instead of any user ID; it never contains a name or email address. Report records are deleted automatically after at most 90 days (by an automatic expiry rule in the database and a daily cleanup job); when either account is deleted, its code is removed from them. A post or reply you report stays hidden for you; that list is kept on your device. Reporting a user does not hide their content; you can block them for that.
You can also block a user: their posts and replies are hidden for you, and they can no longer reply to your posts. Blocks are stored privately on the server (which account blocked which account) and other users cannot see them. You can unblock someone at any time in the community settings. A block is deleted when either account is deleted.
Moderation. Before your first post you accept the community guidelines. Content that is reported by 3 different accounts is hidden automatically until it is reviewed. If someone's content is hidden automatically again and again, that person can be temporarily restricted from posting. Restriction records and moderation logs are pseudonymous (they use a keyed hash instead of the user ID) and are deleted after at most 90 days, in the same automatic way as reports. Like reports, moderation logs also record the language of the content concerned. We may review reported content and hide or remove content that breaks the guidelines or the law.
Deleting. You can delete your own posts and replies at any time. Deleting a post also deletes the replies under it. Deleting your account deletes all your posts, replies, likes, votes, blocks and your community profile (see "Retention and deletion"). Others may have read or copied a post before you deleted it.
Encrypted cloud backup (optional)
If you have an account (only available to users whose age group is "18 or older"), you can keep a backup of your data in the cloud. It is off until you turn it on. Users whose age group is "13–17" can use the local file backup and export instead.
- What is in it: the same data as the backup file: your cycle settings
and all your logs.
- How it is protected: before anything leaves your phone, the backup
is compressed (gzip) and encrypted on your device (client-side) with AES-256-GCM. The key is derived on your device (with Argon2id) from a backup passphrase (called "backup password" in the app) you choose, which is separate from your account password. The passphrase and the key never leave your device, are never sent to Firebase and are not stored anywhere.
- What the server sees: only the encrypted data (ciphertext), plus
non-secret technical parameters: the salt, the nonce and the key-derivation parameters needed to decrypt it with your passphrase, its size, when it was made and the app version. These reveal nothing about the content. Only your account can read the backup. Nobody else, including the developer and Google, can read what is inside.
- If you forget your backup passphrase, nobody can open the backup,
not even us, and it cannot be recovered. You can start over with a new passphrase; the new backup replaces the old one.
- A new backup replaces the previous one. You can delete it at any time on
the Encrypted cloud backup screen (Delete cloud backup), and it is also deleted when you delete your account. Deleting it does not touch the logs on your phone.
What leaves your device
If your age group is "13–17", Selovi does not initialize Firebase and does not start Google's ad or consent software. None of the account, community, cloud backup, integrity check or ad data flows described below take place, and your age group and your records stay on your device. In-app purchases are not available, and the app does not connect to Google Play Billing for purchases (see "Purchases" below). Data only leaves your device if you share an export or backup file yourself (see "Export and backup files" below). About the advertising ID permission in the app's manifest, see "Advertising".
- Account data, only if you are 18 or older and create an account.
Your email address, display name, sign-in method and user ID go to Firebase Authentication (see "Account"). If you use "Continue with Google", Google Sign-In confirms your Google account to the app.
- Community (18 or older only). When you open the community, the
app downloads the posts of the community for the app's current language from Google Firebase, which receives technical data such as your IP address to deliver them. When you post, reply, delete, report, block or change your alias, the request goes to our server (Cloud Functions), which receives your user ID and technical data such as your IP address to process it. When you post, the app's current language is also sent and stored with the post as the language of its community. Likes and votes are stored as private markers (see "Community").
- **Encrypted cloud backup, only if you are 18 or older and turn it
on,** and only in encrypted form (see "Encrypted cloud backup").
- Integrity check (Firebase App Check), 18 or older only. In the
released app, Firebase App Check with Google Play Integrity runs only when your age group is "18 or older": it starts together with Firebase once your age group is set to "18 or older" (on first launch or later in Settings), whenever the app's Firebase features are configured — even if you never create an account or open the community. If your age group is "13–17", neither Firebase nor App Check is started. App Check lets Firebase verify that requests come from the genuine Selovi app on a genuine Android device. For this, Google Play services creates an integrity token from information about the app (such as its package name, version and signing certificate) and the device, and Google processes these integrity signals. App Check is used only for fraud prevention, security and compliance. It is not used for analytics or advertising, and no health data is involved. Firebase also creates an installation identifier (Firebase Installations ID) for the app on your device, which Firebase services such as App Check use; it is not your user ID and is not used for advertising.
- Selovi announcements (push notifications), 18 or older only. If your
age group is "18 or older", the app's Firebase features are configured and you have allowed notifications, the app subscribes this installation to the announcements of your app language (for example "announcements-en") through Google's Firebase Cloud Messaging. For this, Firebase creates a messaging token for the app on your device; the token is not linked to your account, and it is not stored on our servers. Announcements are occasional news about the app (such as new features); they never contain health information and are not sent based on your health data. Announcements are on by default and you can turn them off at any time in Settings → Notifications → "Selovi announcements"; turning them off, or changing your age group to "13–17", unsubscribes the app and deletes the token. If your age group is "13–17", Cloud Messaging is never used.
- Export and backup files — only when you choose. When you export
(CSV, JSON) or create a PDF report for your doctor, the file is created on your device and the Android share sheet opens. Where the file goes (email, cloud drive, messaging app) is your choice; that service's own privacy policy applies from then on. The app never uploads your logs in readable form.
- Purchases (18 or older only). Selovi Plus is sold through Google
Play (Google Play Billing), only when your age group is "18 or older". Payment is handled entirely by Google; the app only learns whether the purchase is valid. See Google's privacy policy. If your age group is "13–17", the Selovi Plus purchase screen is not shown, no purchase can be started and the app does not connect to Google Play Billing for purchases; Selovi Plus's on-device features are free instead (see "Age").
- Ads (free version only, 18 or older only, if you allow them). The
ad software from Google exchanges technical data with Google to show ads, measure them and prevent fraud. It never receives your health data. Details in the next section.
Advertising
The free version of Selovi shows ads served by Google AdMob, Google's mobile advertising service. Ads are shown only to users whose age group on this device is "18 or older", who don't have Selovi Plus and who have allowed ads in the app (see "You decide first").
No ads for users aged 13–17. If your age group is "13–17", Selovi does not run the parts of the app that use the Google Mobile Ads SDK, Google's consent tool (Google User Messaging Platform) or Firebase, and it makes no ad requests. In our tests of this mode, the app made no calls to these SDKs and no activity from them appeared in the device logs. Please note that the app's Android manifest still declares the advertising ID permission (AD_ID), because the Google Mobile Ads SDK adds it automatically. In a test on an emulator, the app's own network data counter stayed at zero while it was used in this mode; we have not inspected the content of network traffic. Users under 13 cannot use the app at all.
Where ads appear
- A small banner at the bottom of the Today and Insights screens.
- A 300×250 ad box at the end of the Learn list and at the end of each
article.
- At most one full-screen ad per day, shown when you close an article in
Learn. No full-screen ads are shown during the first 3 days after you install the app, in the first minute after you open it, or right after you log something.
- Optional rewarded ads: you can choose to watch an ad to unlock the
doctor PDF report once, or the Patterns screen for 24 hours. Watching one is always your choice.
There are never ads on the log screen, the calendar, the age screen, the first-launch (onboarding) screens, the app lock screen, the Selovi Plus purchase screen or in settings.
Non-personalized ads only. Selovi asks Google for non-personalized ads only. These are chosen from context (such as the app itself and your general location), not from a profile of your past behavior. Google may still use identifiers to limit how often you see the same ad, for aggregated ad reporting, and to fight fraud and abuse. Selovi also limits ads to content suitable for a general audience with parental guidance (maximum ad content rating: PG).
Your health data is never used for ads. Ad requests from Selovi contain nothing you have logged: no cycle, symptom, mood or other health information, and no keywords, content links or targeting information.
What Google receives. According to Google's own disclosure for its Google Mobile Ads SDK (https://developers.google.com/admob/android/privacy/play-data-disclosure), when the SDK is active — only for users aged 18 or older without Selovi Plus who have allowed ads — it automatically collects the following and shares it with Google:
- Device or other identifiers: the Android advertising ID, the app
set ID and, if applicable, other identifiers related to accounts signed in on the device.
- IP address, which may be used to estimate your general
(approximate) location. Selovi itself does not ask for location permission.
- Interactions: for example app launches, taps on ads and video
views.
- Diagnostic information: performance of the app and the ad SDK, such
as app launch time, hang rate and energy usage.
- Technical information that comes with every ad request, such as
device type, operating system version, language, and the app's name and version.
Google uses this data for advertising, analytics (ad measurement), and fraud prevention, security and compliance. It is encrypted in transit (TLS). How Google uses information from apps that use its services is explained at https://policies.google.com/technologies/partner-sites, and Google's privacy policy is at https://policies.google.com/privacy.
You decide first. Ads are only possible if your age group is "18 or older". Before any ad software starts, Selovi asks on its own ads screen whether you allow ads and explains what Google receives. If you choose "Not now", the ad SDK is never started and Selovi works without ads. You can change this at any time in Settings → Data and privacy → Allow ads.
Consent. After you allow ads, Google's consent tool (Google User Messaging Platform) checks with Google whether a consent message is required where you are. Where the law requires it (for example in the European Economic Area, the UK and Switzerland, and in some US states, as set in our AdMob privacy settings), the app shows Google's consent message and asks for your choices before any ad is requested. You can reopen and change your choices at any time in Settings → Data and privacy → Ad privacy choices.
Changing your age group. If you change your age group from "18 or older" to "13–17" in Settings, ads stop: ads that were already loaded are discarded and no further ad requests are made (see "Age").
Resetting or deleting your advertising ID. You control the advertising ID in Android's settings, not in Selovi:
- Android 12 and later: Settings → Privacy → Ads, then **Reset
advertising ID or Delete advertising ID**. After you delete it, apps receive a string of zeros instead of an identifier.
- Older versions: Settings → Google → Ads (on some devices
Settings → Privacy → Advanced → Ads), then turn on Opt out of Ads Personalization, or reset the ID.
Menu names can differ slightly between device makers.
Selovi Plus. If you have Selovi Plus (which can only be bought when your age group is "18 or older"), the app does not start the ad SDK at all and requests no ads.
Service providers and where data is processed
We use the following services from Google (Google LLC and its affiliates):
- Firebase Authentication — the account (email address, display
name, sign-in method, user ID, sign-in security logs). Google states that it runs this service from data centers in the United States.
- Google Sign-In — only if you choose "Continue with Google": Google
confirms your Google account and shares your name, email address and profile picture link with the app.
- Cloud Firestore — community content, private community records
(ownership records, community profile, likes, votes, blocks), reports, rate-limit, restriction and moderation records, and the encrypted cloud backup.
- Cloud Functions for Firebase — the server functions that process
community actions and account deletion.
- Firebase App Check with Google Play Integrity — integrity checks
(see "What leaves your device").
- Google AdMob and Google User Messaging Platform — ads and the ad
consent message, in the free version only and only if you allow ads (see "Advertising").
- Google Play Billing — purchases of Selovi Plus (18 or older only).
Firebase Authentication, Google Sign-In, Cloud Firestore, Cloud Functions, Firebase App Check, Google AdMob, the Google User Messaging Platform and Google Play Billing (for purchases) are only used when the age group on the device is "18 or older". If your age group is "13–17", the app does not initialize Firebase, does not start the ad or consent software and does not connect to Google Play Billing for purchases.
Where data is processed. This app's Cloud Firestore database is configured in the eur3 (Europe) multi-region and its Cloud Functions are configured in the europe-west1 region. Other Google services we use (such as Firebase Authentication, Firebase App Check, Google Sign-In and AdMob) may process data in other countries, including the United States.
Google processes the Firebase data on our behalf and on our instructions, as a data processor under the Firebase Data Processing and Security Terms (https://firebase.google.com/terms/data-processing-terms). For AdMob, Google also uses data for its own purposes as described under "Advertising". We use no other service providers and we do not sell data.
International transfers. Your data may be processed outside your country, in particular in the United States (for example by Firebase Authentication, Firebase App Check, Google Sign-In and AdMob). Google states that it protects such transfers with safeguards such as the EU Standard Contractual Clauses and its certification under the EU–U.S. Data Privacy Framework.
Transfer safeguards / legal mechanism. Where a law requires a specific transfer mechanism (for example KVKK in Turkey or LGPD in Brazil), we rely on we rely on our provider's contractual safeguards (the EU Standard Contractual Clauses and the UK International Data Transfer Addendum under the Google Cloud Data Processing Addendum) and, where the law requires it, on your explicit consent for the transfer.
Why we may process your data (legal bases)
- Account, community and cloud backup: to provide the features you
asked for (performance of a contract).
- The encrypted backup of your health logs: your explicit consent,
which you give by turning on the backup and withdraw by deleting the backup.
- **Security logs, integrity checks (App Check), rate limits, reports,
restrictions and moderation logs:** our legitimate interest in keeping the service safe and preventing abuse.
- Ads: your consent (the ads panel and, where required, Google's
consent message).
Retention and deletion
Retention periods
- On your device: until you delete it (**Settings → Data and privacy
→ Delete local health data**) or uninstall the app.
- Community posts and replies: until you delete them or your account,
or until they are removed for breaking the guidelines.
- Community profile, ownership records, likes, votes and blocks: until
you remove them or delete your account. A block is also deleted when the blocked account is deleted.
- Rate-limit counters: at most 2 days, then deleted automatically.
- Reports, restriction records and moderation logs: pseudonymous; at
most 90 days, then deleted automatically (by an automatic expiry rule in the database and a daily cleanup job).
- Encrypted cloud backup: until you replace or delete it, or delete
your account.
- Account: until you delete it.
Account deletion
Deleting your account in the app: Settings → Account → Delete account. To confirm, you need to have signed in recently: re-enter your password or repeat the Google sign-in. Our server then deletes your Firebase account (email address, display name, user ID), your community profile, your encrypted cloud backup, your private ownership records, all your community posts (with the replies under them), your replies, likes and votes, your blocks (both the ones you made and the ones others made against you), and your rate-limit and restriction records. It also removes the link to you from the reports you submitted (the pseudonymous code is erased). This does not delete the health logs on your phone. To remove those, use Settings → Data and privacy → Delete local health data, or uninstall the app.
Changing your age group does not delete your account. If you change your age group from "18 or older" to "13–17", you are signed out, but your account and the data stored with it (for example your community posts and your encrypted cloud backup) are not deleted. To delete them, delete your account while your age group is still "18 or older", or ask us to delete it (see "Without the app").
Without the app: you can ask us to delete your account and its data at https://selovi.app/hesap-sil or by writing to contact.selovi@ravnheim.co.uk from the email address of your account. We delete it within 30 days.
What may remain
- Reports you submitted, without any link to you (what was reported, the
reason, the time and the language of the reported content), until they are deleted automatically after at most 90 days. Moderation logs are pseudonymous and are also deleted after at most 90 days.
- Content that other people copied or quoted before you deleted it.
- Copies in Google's systems: when data is deleted from Firebase, Google
removes it from its active systems and then from its backup systems according to its own retention schedule. For Firebase Authentication, Google states this happens within 180 days. Security logs with IP addresses are kept by Google for a few weeks.
- Data Google processes for ads is kept according to Google's policies.
- Information we are legally required to keep.
Things the app does not do
- It never sends your health logs anywhere in readable form. Without the
encrypted cloud backup they never leave your phone; with it, only encrypted data that only you can unlock leaves your phone.
- It does not link your health logs to your account. It never shows your
name, email address or user ID in the community, and public posts do not contain your user ID.
- It does not show personalized ads and never uses your health data for
advertising.
- It does not store your date of birth or send it anywhere; it uses it
only on your device to work out your age group. If your age group is "13–17", it does not start Firebase, the Google Mobile Ads SDK or Google's consent tool, it makes no ad requests, and it offers no in-app purchases (it does not connect to Google Play Billing for purchases).
- It does not sell your data, and it does not share your health data.
- It does not include analytics or crash-reporting tools (no Google
Analytics / Firebase Analytics, no Crashlytics, no other analytics SDK). This is separate from the ad measurement that Google's ad software carries out for users aged 18 or older who allow ads (see "Advertising").
- It does not ask for access to your location, contacts, camera or
microphone. (Google may estimate a general location from your IP address for ads; see "Advertising".)
Device features the app uses
- Notifications. Reminders are scheduled locally on your device. By
default, notification text is discreet and contains no health details.
- App lock. Uses Android's own fingerprint / face / PIN screen. The
app never sees your biometric data or PIN; it only learns "unlocked" or "not unlocked".
- Internet. If your age group is "18 or older": used for the
account, the community and the cloud backup (Google Firebase, including Cloud Functions and the App Check integrity check), and by Google's ad software in the free version if you allow ads. Also used by Google Play Billing for Selovi Plus purchases (18 or older only).
Predictions are estimates
Predictions of periods, ovulation and fertile days are estimates based on what you log. The app is not a medical device, is not a contraceptive and does not give medical advice.
Your rights and choices
Depending on where you live (for example under the GDPR in the EU/EEA and the UK, KVKK in Turkey or LGPD in Brazil), you have the right to access your data, have it corrected, have it deleted, receive a copy of it, restrict or object to its processing, and withdraw your consent at any time. You can also complain to a data protection authority (for example your local authority in the EU, the Turkish Personal Data Protection Authority (KVKK) or Brazil's ANPD).
You can do most of this yourself in the app:
- Copy of your health data: Settings → Export data, or Settings → Backup.
- Correct: change your display name in Settings or on the Account
screen, your nickname (alias) in the community settings, and your age group in Settings → Age group by entering your date of birth again (see "Age").
- Delete: your local health data (Settings → Data and privacy →
Delete local health data), your posts and replies, your likes and votes, your blocks (unblock in the community settings), your cloud backup, or your whole account (Settings → Account → Delete account).
- Ads: change your consent in Settings → Data and privacy → Ad
privacy choices, reset or delete your advertising ID in Android settings (see "Advertising"), or get Selovi Plus (18 or older) to turn ads off.
For anything else, write to contact.selovi@ravnheim.co.uk. We answer within 30 days, or sooner if your local law requires it. We may ask you to write from your account's email address so we can confirm it is you. We do not have your health logs (they are on your phone) and cannot read your encrypted backup, so we cannot hand those over; use export instead. For data Google processes for ads, see Google's privacy policy.
Age
The first time you open Selovi, before any other part of the app starts, it asks you to enter your date of birth (day, month and year). The app uses the date only on your device, and only at that moment, to calculate your age and work out your age group: "Under 13", "13–17" or "18 or older". Dates in the future and dates that are invalid or implausible are not accepted. This works without an account and without an internet connection.
Your date of birth is not saved anywhere: not in the app's storage, not in backups and not in your community profile. It is never sent to us, to Firebase or any other server, to the ad provider (Google AdMob) or to any analytics service (Selovi has none). Only the resulting age group (one of these three values) and the time of this check are stored, and only on your device (see "Checking your age group again" below); neither is sent to us, to Firebase or to any other server.
Your age group is based on the date you enter yourself. Selovi does not verify your age or identity.
- Under 13: Selovi is not available to children under 13. The app
shows "Selovi is not available for users under 13." and nothing else starts: no cycle tracking, no Firebase, no ads, no purchases and no account. Only the age group "Under 13" and the time of the check are stored on the device, not your date of birth. The app asks for your date of birth again 30 days later (see below).
- 13–17: you can use the on-device cycle tracker: period tracking,
the calendar, predictions, symptoms, moods, reminders, on-device insights, the doctor report and export, and local file backup. Selovi Plus's on-device features (the doctor report PDF, which is created on your device, Patterns and your own categories) are free in this age group. In-app purchases are not available: the Selovi Plus purchase screen is not shown, no purchase can be started and the app does not connect to Google Play Billing for purchases. Your records stay on your device. The community (reading and posting), the account (email or Google Sign-In), Firebase and the encrypted cloud backup are not available, and there are no ads: Selovi does not run the parts of the app that use Firebase, the Google Mobile Ads SDK or Google's consent tool (UMP), and it makes no ad requests (about the advertising ID permission in the app's manifest, see "Advertising").
- 18 or older: the full app: the cycle tracker, the optional account
(email or Google Sign-In), the community, the encrypted cloud backup, Firebase App Check with Play Integrity, Selovi Plus purchases through Google Play, and ads in the free version (only if you allow them; see "Advertising"). When you create an account, you are asked again to confirm that you are 18 or older and that you accept this policy.
Checking your age group again. Besides your age group, the app stores on your device only the time of your last successful age check. This is not your date of birth: it contains no birth date, birth year or age. It stays on your device, is never sent to us, to Firebase or any other server, to the ad provider (Google AdMob) or to any analytics service, and it is not included in backups. The app uses it to ask for your date of birth again:
- "Under 13": 30 days after the last check;
- "13–17": 180 days after the last check;
- "18 or older": normally not asked again automatically.
This uses the same date-of-birth screen as on first launch. When the app asks again at start-up, this screen comes first and nothing else starts before it: no Firebase, no ads, no Google consent tool, no purchases and nothing that uses the network. The date is used only on your device and only at that moment; it is not saved or sent anywhere. Afterwards, only the new age group and the new check time are stored. So if you were under 13 and have turned 13, you can use the on-device cycle tracker without clearing the app's data; if you were 13–17 and have turned 18, the features for adults become available (see below). You can also check your age group again at any time in Settings → Age group.
Changing your age group. You can change your age group in Settings → Age group by entering your date of birth again. As on first launch, the date is used only on your device to work out your age group, and only the new age group and the new check time are stored.
- From "18 or older" to "13–17": you are signed out, the community
and the cloud features are removed, and ads stop (ads already loaded are discarded and no further ad requests are made). Your records on the device are kept. Your account and the data stored with it in the cloud (such as your community posts and your encrypted cloud backup) are not deleted by this change. To delete them, delete your account while your age group is still "18 or older" (Settings → Account → Delete account), or contact us (see "Account deletion"). If you bought Selovi Plus on this device, the Plus status stored on the device is not removed, but "Restore purchase" is not available while your age group is "13–17".
- From "13–17" to "18 or older": the features for adults (the
account, the community, the encrypted cloud backup, Selovi Plus purchases, and ads only if you allow them and, where required, after Google's consent message) become available from then on. This happens when you enter your date of birth again: when the app asks again (180 days after your last check) or earlier in Settings → Age group. Moving to "18 or older" does not create an account or sign you in automatically.
If we learn that an account belongs to someone under 18, we will delete it.
Changes
If the app's data practices change (for example a new ad format, a different ad provider, or data leaving your device in a new way), this policy will be updated before that version is released and the change will be shown in the app.
Contact
Privacy contact email: contact.selovi@ravnheim.co.uk
Postal address and data controller details: see "Who is responsible for your data (data controller)".