Courtesy translation. The Portuguese version is the only legally binding one; in the event of any discrepancy, the Portuguese text prevails.
Privacy Policy — Jyotish (Vedic Astrology)
Last updated: October 13, 2026
Effective: as of June 27, 2026 (version revised on October 13, 2026)
This document complies with Law No. 13,709/2018 (LGPD, Brazil's General Data Protection Law) and with the requirements of the app stores (Google Play / App Store). Official public version:
https://jyotish.maycow.cloud/privacidade.
1. Who is the controller of your data
The Jyotish — Vedic Astrology application ("Jyotish", "application", "app", "we", "us") is maintained by:
- Controller (natural person): Michael de Almeida Trindade
- Contact / Data Protection Officer (DPO): jyotishatmalabs@gmail.com
For any matter relating to personal data — questions, requests or complaints — use the email address above. We will reply as soon as possible and, in any event, within the legal deadlines.
2. Who this policy applies to
It applies to everyone who uses the Jyotish app on Android and iOS devices — with an account created with an email address, with Sign in with Google, or with no sign-up at all (see 3.1) — and to the backend that serves it (hosted in Brazil, in São Paulo).
3. What personal data we process
3.1. Account data
- Account with no sign-up (anonymous): you can use the app without providing anything. In that case we create an account identified only by an internal code (a random identifier), with no email address and no usable password. It exists in order to keep your profiles and your reading on the server, and it is not linked to you by any personal data. Whenever you wish, you add an email address and a password to that same account — nothing is recreated and nothing is lost.
- Email (identification and login) — optional: it exists if you create the account with an email address, sign in with Google, or add it later to an account created with no sign-up.
- Password — stored only as a hash (scrypt algorithm, with a unique salt). We never store your password in readable text.
- Google identifier (
sub) and email, only if you choose to use Sign in with Google. We receive an identity token from Google that we validate on the server; we keep the identifier in order to recognize you on subsequent sign-ins.
3.2. Birth profiles (you provide them so that reports can be generated)
The heart of the app. For each person you register, we process:
- Name (profile label — it may be a nickname);
- Gender (used in traditional compatibility techniques);
- Date and time of birth (the time is optional; there is an "unknown time" option);
- City of birth and the corresponding latitude, longitude and time zone — looked up in a worldwide city database (GeoNames, CC BY 4.0 license) served by our own servers: the text you type in the search is sent only to our backend (no third-party geolocation service receives your data). There is also an embedded list of Brazilian municipalities used as an offline alternative. City data © GeoNames, licensed under CC BY 4.0.;
- Ayanāṃśa (astrological calculation parameter that you select).
This data may belong to third parties (family members, partners, friends) whom you register. By entering it, you declare that you have a legitimate basis to do so and undertake to inform those people about this processing, where applicable.
Invite (Synastry and Friendship, as of version 2.4.0): instead of you typing the other person's data, they can enter their own birth data, in their account (which may be an account with no sign-up), using an invite code that you generate in the app and send however you prefer. Before filling it in, they see what will be shared (the birth data in this item), with whom (only the person who sent the code, in that person's account) and for what (only the Synastry or Friendship reading of the person who invited them), declare that they are 18 or older and give their consent. Only then does a copy of that data go into the saved pair of the person who invited them (item 3.5); their account, profiles and readings are not shared, and they get their own chart in the app. The app does not show them who invited them — neither name nor data — only the reading mode and the dates of the invite. They can withdraw consent at any time, under Profile → ⚙ Settings → Invites you accepted: the copy is erased from the inviter's saved pair, and the reading no longer opens; the profile created in their account remains theirs.
3.3. Purchase and subscription data
- Entitlement status per profile: which birth profile has been unlocked, under which product (subscription or one-time purchase) and until when.
- Purchase identifiers and events received from our subscription provider (RevenueCat). The identifier sent to the provider is the internal profile id (a pseudonymous code) — not your email or name.
- Important: the payment itself is processed by the store (Google Play / App Store). We do not have access to your card number or to your financial data.
3.4. Device and notification data
- Push notification token (FCM): an identifier generated by Firebase Cloud Messaging in order to deliver the app's notifications to your device — at most one a day, about the active profile. We link this token to the active profile at the time of registration.
- Platform of the device (Android/iOS) and an active/inactive flag for the token.
- Notification preferences: the app language, your device's time zone offset (in minutes, in order to deliver the notification at your local time — it is not your location), the sending time and which channels you have turned on ("Today's transit", "Daśā turn", "Window of the day" and "Events in my chart"). They are stored together with the token, only after you agree to receive notifications, and are erased with it.
- Sending dates: the date, in your device's time zone, of the last notification sent and of the last event notification, so that we never send more than one notification a day or more than one event a week. They are also stored with the token and erased with it.
- Events already notified: in the "Events in my chart" channel, which event of the profile has already been notified (for example, Saturn entering a sign), the date of the event and the sending date, so that the same notification is not sent twice. They are linked to the birth profile and erased with it or with the account.
- Daily notification rotation (from version 2.7.0): which notification template was sent last and the date on which each template was last sent, so that the text varies and the same template is not repeated on consecutive days; and the next step of the trail you chose in the app, which is a key from a fixed list of app destinations (for example, "Nakṣatra wheel"), never content of yours. They are stored with the token and erased with it.
- Calendar date reminders (from version 2.7.0): which Vedic calendar dates you asked to be reminded of (for example, Ekādaśī or the full moon), from a fixed list of date types. The reminder is sent the day before and counts toward the limit of one notification a day. It is stored with the token and erased with it.
The "Events in my chart" channel lets you know, a few times a year, when Saturn, Jupiter or Rāhu changes sign or when a Mahādaśā of the active profile begins. It follows the rules of the other channels: the events come from the birth profile you have already entered, with the data in this item; the notification counts toward the limit of one a day; and the channel depends on the same consent, given on the card where you turn on notifications, where it appears next to the other channels for you to choose. If you already received notifications before version 2.3.0, you will find it turned off and can turn it on under Profile → ⚙ Settings → Reminders.
3.5. Your reading data
- Reading progress: which section of the report you opened and when. It is what lets the app resume where you left off — including on another device and after reinstalling.
- Bookmarks: the passages of the report itself that you choose to keep, with the section they belong to and the date.
- Daily streak: on which of the last 31 days you opened the app and the calendar day of your last visit. It is what shows how many of the last 7 days you visited (up to version 2.6.0, we kept only how many consecutive days).
- Saved pairs: the shortcut to a relational reading you have already done — the mode (synastry, family or friendship) and the birth data of the other person, typed by you or, by invite, sent by that person themselves (item 3.2). We keep only the shortcut, never the result: reopening a pair recalculates the reading. Since this is third-party data, the same notice given in item 3.2 applies; a pair that came from an invite stays linked to it, and the copy disappears when the person withdraws consent.
- Invites (Synastry and Friendship): for each invite you generate, we keep the code only as a hash (with a server secret — the code itself is never stored, and we cannot recover it), the reading mode, the creation and expiry dates (7 days, single use, at most five open per profile), whether it was used or revoked and, after acceptance, the link between your profile, the profile created in the invited person's account and the saved pair. It is through this link that their withdrawal erases the copy, and that deletion on either side takes effect (item 8). To contain attempts to guess codes, we limit attempts per IP address and per account.
All of them are linked to the birth profile that was active at the time and are not used for advertising or for profiling. They go, only as counts, into the internal statistics described in item 3.8 (for example: how many accounts have read at least one section). Deleting the profile — or the account — removes everything in cascade.
3.6. Data stored locally on your device
- Session tokens (JWT) kept in the system's secure storage (Android Keystore / iOS Keychain).
- Local copy of the reports you have generated (local SQLite database), so that they open faster and, depending on your plan, can be consulted without a connection.
- Local notification preference (on/off).
- Sky for the coming days, for the home screen widget (Android only): when the Today tab loads the sky, the app stores on the device the next 7 days for the active profile — the Moon's nakṣatra, the tithi, the tārā and the Vedic calendar date — so that the widget can show them without accessing the internet or your account. This happens even if the widget is not on your screen. It does not include any name or date of birth.
- Progress on trails and app prompts (from version 2.7.0): the app destinations you have already visited, the trail you chose and the trails you have completed; and, so as not to repeat prompts, which of them have already appeared (turning on notifications, pinning the widget, saving the account, rating the app and a quick question) and the days on which you opened the app. The rating card is Google Play's own: the rating and the review go straight to the store, under Google's policy, and do not reach us.
This data stays on your device and is removed when you uninstall the app or sign out of your account.
3.7. Ads (Google AdMob)
People without a subscription may see ads in the app. They are provided by Google AdMob, whose SDK, included in the application, collects and sends to Google directly from your device:
- the device's advertising identifier (Android Advertising ID / IDFA) and the app set ID;
- the IP address, also used to estimate your approximate location (country or region);
- interactions with the app and with the ads (for example, app launches, ad impressions and taps);
- diagnostic information (performance and crashes of the SDK itself).
Google uses this data as an independent controller, to show and measure ads, produce statistics and prevent fraud, under its own policy (https://policies.google.com/technologies/ads). We do not receive this data and we do not send Google your name, email, birth data or reading data.
- Consent: where the law requires it (for example, in the European Economic Area, the United Kingdom and Switzerland), the app asks for your consent before personalized ads, through Google's consent form; where required, you can review it under Profile → ⚙ Settings → Ad privacy.
- Control on the device: you can reset or delete the advertising identifier in your system settings.
- Rewarded ads: as of version 2.5.0, the app may also offer rewarded ads: you choose to watch a video ad to the end in order to generate the PDF of a section or of a card — and, as of version 2.6.0, to see the full list of the Shared Sky mode (item 3.10) for 24 hours, on one profile; this unlock is recorded only on your device. If you do not watch it, the app keeps working normally. The data handled by the SDK for these ads is the same as already described in this item.
- Subscribers do not see ads.
3.8. Server access logs
Like every server, ours logs each request the app makes: the source IP address, the date and time and the address accessed — which may contain the internal code of a profile. We use these logs for:
- security and the prevention of fraud and abuse; and
- internal usage statistics: which countries the app is used from, how many accounts use it per day and at what times, and which types of report are requested most. The country is estimated from the IP on our own server, using a geolocation database stored on it (DB-IP Lite), without sending the IP to anyone. The calculation links each access to the account only in order to count (how many accounts per country, per day, per hour); all that comes out of it are counts — never the IP, never what you have read.
The logs are erased automatically by the rotation of the log files — currently, within about 6 months.
3.9. Anonymous statistics on app usage
As of version 2.0.0, the app sends to our own server an anonymous summary of each use, so that we know whether the app is working well and what to improve:
- What is sent: how long the app was open in the foreground; which screens and types of report were opened — only the name of the screen, taken from a fixed list, never the content and never a profile; milestones such as "report opened", "PDF generated", "ad shown", "rewarded ad completed" or "AI prompt copied"; the app version, the language, the time zone offset, the system version (Android/iOS), the brand of the device and whether it is a phone or a tablet, the light or dark theme and whether there is an active subscription; and, if you answer, the option chosen in a multiple-choice question about what you are looking for in the app (from version 2.7.0). When the app runs into an error, the type of the error and the point in the code where it occurred are sent — never the error message, which could contain data of yours.
- What is NOT sent: your account, your profiles, birth data, what you have read, text you have typed, the advertising identifier or any device identifier. Each summary carries only a random code for that session, used so that the same submission is not counted twice; it is not reused and it does not make it possible to link one session to another, or to you.
- Country: the server estimates the country from the IP at the moment it receives the summary, using the same local database as item 3.8, and stores only the country code — the IP is not recorded together with the summary. (The access log of item 3.8 still exists, as it does for any request.)
- How to turn it off: under the Profile tab → ⚙ Settings → "Help with anonymous statistics". It comes turned on; when you turn it off, the app stops recording and sending immediately, and erases whatever it had not yet sent.
- Third parties: none. These summaries stay on our server, in Brazil, for up to 25 months, and are then erased.
3.10. Data about public figures (Shared Sky mode)
As of version 2.6.0, the Shared Sky mode shows historical figures who have traits of the Vedic chart in common with yours. For this purpose, we keep on our server a database of these figures, built from Wikidata, whose data is in the public domain (CC0 license):
- Who is in the database: only people born between the years 100 and 1900 — all of them already deceased — whose date of birth is known down to the day. The best-known ones are included, and a curation of our own leaves some of them out.
- What we keep about each figure: the name; the date and place of birth, with the coordinates of the place (and, when the original record is in the Julian calendar, the original date as well); the occupation, the country and the continent; the gender; the titles of the Wikipedia articles about them; and the number of pages they have in the Wikimedia projects, which we use as a measure of how well known they are. From this data we calculate the field of activity and the chart traits.
- What we do not keep: no data about death — the date of death is not imported, and the app does not show anyone's date, age or cause of death — and no photos: in their place, the app shows an icon of the field of activity.
- What for: only to compare chart patterns — the traits that the date of birth allows us to calculate — with those of the profile you choose. It is similarity, not compatibility or prediction. The comparison is made on our server, with the birth profile you have already entered (item 3.2); nothing from your profile goes into the database.
- Where it is kept: on our server, in Brazil, for as long as the mode exists in the app. The database is not sold or handed over to anyone. For each request, the app receives only the figures of the requested list (up to 100) or of the page opened.
- "Read on Wikipedia" button: it opens the article in your browser, outside the app; from there on, Wikimedia's privacy policy applies.
- Correction or removal: the data comes from a public source and may contain errors. To request the correction of a piece of information or the removal of a figure from the database — for example, as a relative or representative of that person —, write to jyotishatmalabs@gmail.com, the same contact as in item 1. We review every request.
Historical figures data: Wikidata, in the public domain (CC0 1.0). The license does not require attribution; the credit is a courtesy.
4. What we do NOT collect
For the sake of transparency, we expressly declare that we do not collect:
- Device location (GPS) — the app does not ask for location permission; the city of birth is typed/chosen by you;
- Usage data for third-party analytics services — we do not use Google Analytics, Firebase Analytics or Crashlytics, nor any other service of the kind. The only third-party SDK that collects usage data is the Google AdMob advertising SDK, described in item 3.7. Our own statistics are the counts in item 3.8, produced on our server from the access logs, and the anonymous summaries in item 3.9, which you can turn off;
- The advertising identifier on our servers — it is read only by the Google AdMob SDK (item 3.7), does not reach our backend and is not linked to your birth or reading data;
- Contacts, calendar, photos, microphone, camera or files from your device;
- Financial data (card/account) — these remain exclusively with the app store;
- Data sent to artificial intelligence services — the app does not use AI to generate the readings and does not send anything of yours to AI services. If you use the "AI prompt" button, the text of that section of your report (without your name and without your birth data) goes to the AI app that you choose, by your own action and under its privacy policy; that text does not reach us. On the page of a historical figure in the Shared Sky mode (item 3.10), the text also goes without the figure's name: in its place goes "a historical figure", at most with the occupation and the century.
5. What we use your data for and on which legal basis (LGPD, art. 7)
| Purpose | Data involved | Legal basis (LGPD) |
|---|---|---|
| Create and maintain your account; authenticate the login | Email, password hash, Google sub | Performance of a contract (art. 7, V) |
| Generate astrological charts and reports | Birth profiles | Performance of a contract (art. 7, V) |
| Process purchases and release paid access per profile | Entitlements, purchase events | Performance of a contract (art. 7, V) |
| Send the notifications of the channels you have turned on ("Today's transit", "Daśā turn", "Window of the day" and "Events in my chart") and the reminders of the calendar dates you asked for, at most one a day | FCM token, active profile, notification preferences and sending dates, events already notified, notification rotation, next step of the trail and calendar dates to be reminded of (item 3.4) | Consent (art. 7, I) — you can turn them off at any time |
| Receive, by invite, the invited person's birth data and use it only in the Synastry or Friendship reading of the person who invited them | Invite code (hash), dates and link between the two accounts; the copy of the invited person's birth data (items 3.2 and 3.5) | Consent of the invited person (art. 7, I) — they can withdraw it at any time |
| Show ads to people without a subscription, measure them and prevent fraud | Advertising identifier, IP address, interactions and diagnostics (collected by the Google AdMob SDK) | Legitimate interests (art. 7, IX); consent (art. 7, I) for personalized ads, where the law requires it |
| Ensure security, prevent fraud and abuse | Account/session data, server access logs (item 3.8) | Legitimate interests (art. 7, IX) |
| Know which countries the app is used from, how often and at what times (internal statistics, item 3.8) | IP address, date and time from the access logs, converted into counts on our server; only the counts come out of the calculation | Legitimate interests (art. 7, IX) |
| Understand how the app is used and where it fails, anonymously (item 3.9) | Anonymous summaries of usage and errors, with no account and no device identifier | Legitimate interests (art. 7, IX) — you can turn it off at any time |
| Compare patterns of your chart with those of historical figures (Shared Sky mode, item 3.10) | Database of historical figures who are already deceased, built from Wikidata; your birth profile | Legitimate interests (art. 7, IX), as regards the figures' data; performance of a contract (art. 7, V), as regards your profile |
| Comply with legal obligations and respond to authorities | As required | Compliance with a legal obligation (art. 7, II) |
We do not carry out automated decisions with legal effects concerning you. The astrological content is informational (see the Terms of Use).
6. Who we share data with (processors and sub-processors)
We share the minimum necessary, only with providers that make the service possible:
| Third party | What it receives | What for | Location |
|---|---|---|---|
| Hostinger (hosting) | All backend data (stored on the VPS) | Host the server and the database | Brazil (São Paulo) |
| Google — Firebase Cloud Messaging | Device token + notification text | Deliver the daily push | USA (international transfer) |
| Google — Sign in with Google (optional) | Google identity token | Authenticate you, if you choose this login | USA (international transfer) |
| Google — AdMob (ads) | Advertising identifier, IP address, interactions and diagnostics, collected by the SDK on the device | Show and measure ads and prevent fraud — acts as an independent controller (see 3.7) | USA (international transfer) |
| RevenueCat | Pseudonymous profile id + purchase events | Manage subscriptions and purchases | USA (international transfer) |
| Resend (email delivery) | Your email address and the content of the message sent | Deliver the service emails (e.g. the password reset code) and the internal operational reports | USA (international transfer) |
| Google Play / Apple App Store | Payment transaction data | Process the payment and the refund | USA / global |
- We do not sell your data. Your account, birth and reading data are not shared for advertising purposes; Google AdMob only receives what the advertising SDK collects on the device (item 3.7).
- Between users of the app: the only case in which data of yours goes to another person's account is the invite (item 3.2), with your consent: your birth data goes into the saved pair of the person who invited you, and nothing else. That person does not receive your account, your profiles or your readings, and you receive nothing from them.
- These third parties act as processors/sub-processors, processing the data in accordance with our instructions and their own policies — except Google AdMob, which processes ad data as an independent controller.
7. International data transfers
The backend and the database are located in Brazil. Some processors and partners (Google — including AdMob —, RevenueCat, Resend, Apple) process data outside Brazil. These transfers rely on the grounds set out in art. 33 of the LGPD (notably contractual clauses and adequate protection standards offered by those providers) and are limited to what is necessary to provide the service.
8. How long we keep your data
- Account data and birth profiles: for as long as your account exists.
- Deletion of a birth profile: you delete a profile directly in the app. When you delete it, we remove its unlocked reports, notification tokens, events already notified and the invites it generated in cascade. If the profile was created by accepting an invite, deleting it also erases the copy of your data from the inviter's saved pair. Caveat: a profile with an active subscription or purchase must have the subscription cancelled at the store before it can be deleted.
- Reading progress, bookmarks, streak, saved pairs and invites: they follow the birth profile — deleting the profile, or the account, removes all of them in cascade.
- Deletion of the entire account: you can delete your account directly in the app (under the Profile tab → ⚙ Settings → Delete my account), which erases all of your data — all profiles, unlocked reports and tokens — in cascade. The invites you generated go with it; and, before the account is removed, every invite you accepted is revoked, erasing the copy of your data from the inviter's saved pair. You may also request deletion by email at jyotishatmalabs@gmail.com. Erasure from operational copies takes place within a reasonable period (up to 30 days), except where retention is required by law.
- Invites: an unused invite expires in 7 days and stops working; its record (hash, dates and link) follows the inviter's profile. The copy of the invited person's data stays in the inviter's saved pair until that person withdraws consent, deletes the profile created by the acceptance or deletes their account — or until the inviter deletes the pair, the profile or their account.
- Purchase events: retained for the period necessary to comply with legal and accounting obligations and for fraud prevention.
- Server access logs (IP, date/time, address accessed — item 3.8): erased automatically by the rotation of the log files — currently, within about 6 months.
- Anonymous usage statistics (item 3.9): up to 25 months; they are then erased automatically.
- Local data on the device: removed when you sign out of your account or uninstall the app.
9. Your rights as a data subject (LGPD, art. 18)
At any time, you may:
- Confirm the existence of processing and access your data;
- Correct incomplete, inaccurate or outdated data;
- Anonymize, block or erase unnecessary data or data processed in breach of the law;
- Request the portability of the data;
- Erase data processed on the basis of consent;
- Obtain information about the entities with which we share data;
- Withdraw consent (for example, by turning notifications off, reviewing ad privacy or withdrawing consent to an invite you accepted);
- Object to processing carried out on the basis of legitimate interests.
How to exercise them: several of these actions you can perform directly in the app (edit and delete birth profiles, delete the entire account, turn notifications on/off, turn the anonymous statistics of item 3.9 on/off, withdraw consent to an invite under Profile → ⚙ Settings → Invites you accepted). For all other requests, write to jyotishatmalabs@gmail.com. We may ask for information to confirm your identity before responding. Requests to correct or remove a historical figure from the Shared Sky mode go to the same email address (item 3.10).
You also have the right to file a petition with the National Data Protection Authority (ANPD) — https://www.gov.br/anpd.
10. Push notifications and consent
The app's notifications are optional and depend on your consent, given on the card where you turn on notifications. You can turn them on or off at any time in the app under Profile → ⚙ Settings → Reminders (the "Notifications" option) and in your operating system settings. When you turn "Notifications" off, we remove the link between your device's token and the profile. While notifications are on, each channel — "Today's transit", "Daśā turn", "Window of the day" and "Events in my chart" — can be turned on or off right there, one by one. Calendar date reminders (item 3.4) depend on the same consent: you tick and untick each date under Profile → ⚙ Settings → Calendar dates or with the "Remind me" button on the date itself.
11. Information security
We adopt appropriate technical and organizational measures, including:
- Encryption in transit (HTTPS/TLS) in all app↔server communication;
- Passwords protected by hashing (scrypt with salt), never in readable text;
- Session tokens kept in the system's secure storage (Keystore/Keychain) and with rotation/reuse detection;
- Server in Brazil, behind a proxy with TLS and a firewall;
- Data minimization principle in what is collected and shared.
No system is 100% immune. In the event of a relevant security incident, we will notify you and the ANPD in accordance with the LGPD.
12. Children and adolescents
Jyotish is not directed at persons under 18 years of age. We do not knowingly collect data of minors. Should you identify use by a minor without the consent of their guardians, write to our contact address and we will take steps to remove the data. Whoever accepts an invite (item 3.2) declares, in the app itself, that they are 18 or older; without that declaration the invite is not accepted. That is why invites exist only in Synastry and Friendship, and not in the Family mode.
13. Cookies and similar technologies
The application does not use cookies. The Google AdMob advertising SDK uses the device's advertising identifier to show and measure ads (item 3.7), and you can reset or delete it in your system settings. The app's page at the root of our domain (https://jyotish.maycow.cloud) uses no cookies or scripts; its link to Google Play carries only the source tag "site", so that we know how many installs came from there, with nothing that identifies you.
14. Changes to this policy
We may update this policy to reflect changes in the app or in legislation. Relevant changes will be announced in the app and/or by email, and the "Last updated" date at the top will be revised. Continued use after the new version takes effect implies agreement.
15. Contact
Questions, data subject rights requests or complaints:
Michael de Almeida Trindade — jyotishatmalabs@gmail.com