Privacy Policy

1. What this policy covers

This Privacy Policy describes what information MacroSquad ("we," "us," "our," operated by Karan Sharma (sole proprietor)) collects, how we use and disclose it, the third parties that process it on our behalf, and your rights over it.

It applies to the MacroSquad mobile application, the MacroSquad website at getmacrosquad.com, and related services (collectively, the "Service"). [CONFIRM FINAL DOMAIN — getmacrosquad.com is used across the live landing pages; macrosquad.app appeared in an earlier draft. Pick one and use it everywhere.]

This policy does not cover third-party services you reach through links, or the independent data practices of the app stores and platforms you use to access the Service (e.g., Apple).

2. The short version

3. Information we collect

3.1 Information you provide

3.2 Information collected automatically

3.3 Information from third parties

3.4 Contacts-import (friend-finding): exactly what we do

This is the most sensitive optional feature, so we describe it precisely:

  1. The feature is off by default. It runs only after you tap "Find friends from contacts" and grant the iOS contacts permission.
  2. On your device, we read phone numbers and email addresses from your address book.
  3. We transmit one-way cryptographic hashes of those phone numbers/emails (normalized, then hashed; [CONFIRM HASH ALGORITHM + SALT STRATEGY]) to our server, where they are matched against hashes of registered MacroSquad accounts.
  4. We return only the matches that correspond to existing MacroSquad users.
  5. We do not store your raw address book, do not store contacts who are not MacroSquad users beyond the transient matching operation, and do not message or invite anyone on your behalf without a separate explicit action by you.

4. What we do with it

We process the categories of data above on the legal bases described in Section 12 (for EU/UK users).

5. Photo handling and the SHA-256 content-addressed cache

When you upload a meal photo:

Cache persistence and deletion: because cache rows are keyed on image bytes and contain no link to you, an individual cache row can persist after your photo is deleted from your meal log and after account deletion. The cached row is not personal data because it cannot be associated with you. Your stored photo itself (which is personal data) is deleted as described in Sections 6 and 10.

6. AI image recognition and model-training (READ CAREFULLY — accuracy-sensitive)

Your meal photos are sent to an AI image-recognition provider so the Service can identify foods and estimate macros. Specifically:

✅ RESOLVED 2026-06-10 (HUMAN-TASKS #4b closed)

FatSecret confirmed no-training in writing (James Recto / api-support email, 2026-06-10, Gmail thread "Premier Free → paid tier … — MacroSquad"): images are processed for the requested output only; license §2.4.3 cited. FatSecret offered to review our compliance language. Sections 2, 6, 7, and 8 reconciled to this position.

You can delete any photo at any time from the meal log. Deletion removes it from our storage and from your friends' feeds within reasonable engineering time.

7. Processors and disclosures (GDPR Art. 28 / CCPA service-provider framing)

We disclose personal information to the third parties below only as processors / service providers acting on our behalf. Each is engaged under a written contract (a Data Processing Addendum under GDPR Article 28, and "service provider" / "contractor" terms under the CCPA/CPRA) that: (a) limits the provider to processing data solely for the purposes we specify; (b) prohibits selling or sharing the data or using it for the provider's own purposes; (c) requires appropriate security; and (d) requires deletion or return of data on termination. Engaging any of these in a way that meets the CCPA "service provider" exemption means these disclosures are not a "sale" or "share."

Processor Data shared Purpose Contract status (verify before launch)
Apple / RevenueCat Subscription status, entitlement, transaction IDs (no card numbers) Subscription management & billing DPA / service-provider terms — [CONFIRM EXECUTED]
FatSecret Meal photos, food queries Food database + AI image recognition (sole image-recognition provider) DPA — [CONFIRM EXECUTED] (requested 2026-06-10); no-training confirmed in writing 2026-06-10 (§2.4.3)
Nutritionix Restaurant/food queries Restaurant & branded-food database DPA / service-provider terms — [CONFIRM EXECUTED]
Supabase All stored data (account, logs, photos, body metrics, social graph) Backend hosting, database, object storage, auth DPA — [CONFIRM EXECUTED]
Cloudflare Request data, edge routing metadata Edge compute (Workers), routing, CDN, security DPA — [CONFIRM EXECUTED]
Expo Push (Expo Application Services) Push notification tokens, notification payloads Delivering push notifications (routes via Apple Push Notification service) DPA / service-provider terms — [CONFIRM EXECUTED]
Crash/analytics provider ([CONFIRM VENDOR]) De-identified crash & performance data Stability & performance DPA — [CONFIRM VENDOR + EXECUTED]

We do not disclose personal information to advertising networks, data brokers, or analytics resellers.

8. What we don't do

9. Your rights and how to exercise them

Depending on where you live, you have some or all of the following rights:

How to exercise: use the in-app controls above, or email privacy@getmacrosquad.com. We will verify your identity before fulfilling a request and respond within the timeframe required by applicable law (generally 30–45 days, extendable where the law allows). You may use an authorized agent where the law permits.

Appeals: if we decline a request, you may appeal by replying to our response or emailing privacy@getmacrosquad.com with "Appeal" in the subject line. [CONFIRM appeal workflow + statutory deadlines per state.]

10. Data retention and deletion

11. Security

We use industry-standard safeguards: TLS in transit, encryption at rest, restricted access controls, salted password hashing, dependency scanning, and incident response. Body-weight and other health metrics are treated as sensitive and access-restricted.

No system is 100% secure. If you suspect unauthorized access to your account, contact security@getmacrosquad.com immediately. [CONFIRM breach-notification process and statutory timelines per jurisdiction.]

12. Legal bases for processing (EU/UK / GDPR)

Where GDPR or UK GDPR applies, we process personal data on these bases:

We are the controller of your personal data; the providers in Section 7 act as processors under Article 28 contracts. [CONFIRM controller identity = Karan Sharma (sole proprietor).]

13. International data transfers

Data is processed in the United States and may be processed in other regions where our providers operate. For transfers of EU/UK/Swiss personal data to the US or other countries, we rely on appropriate safeguards such as the EU Standard Contractual Clauses (and the UK Addendum / Swiss equivalents) and, where applicable, provider participation in the EU–US Data Privacy Framework. [CONFIRM transfer mechanism per processor.]

14. Children (COPPA and minimum-age policy)

The Service is intended for users 13 and older and is not directed to children under 13. We do not knowingly collect personal information from anyone under 13. Because our minimum age is 13, the Service is not subject to COPPA's under-13 obligations. Users between 13 and 17 are subject to the additional terms in our Terms of Service (parental review and consent).

If we learn that we have collected personal information from someone under 13, we will delete it. If you believe a child under 13 has provided us information, contact privacy@getmacrosquad.com.

[CONFIRM App Store age rating is consistent with a 13+ minimum. A 13+ minimum requires parental-consent handling for 13–17 users in some US states and under GDPR (digital-consent age varies 13–16 by EU member state). The earlier draft used 17+ specifically to sidestep this; the product decision is now 13+. Counsel should confirm the consent flow for 13–17 users is adequate.]

15. US state privacy rights (California CCPA/CPRA and other states)

California (CCPA/CPRA). California residents have the rights in Section 9, plus the right to know the categories of personal information collected, the purposes, and the categories of third parties to whom it is disclosed (see Sections 3 and 7). We do not sell or "share" personal information for cross-context behavioral advertising. We collect the categories: identifiers; customer records; commercial information (subscriptions); internet/usage activity; sensitive personal information (health metrics such as body weight; account credentials). We use sensitive personal information only for permitted purposes and not to infer characteristics. We honor the Global Privacy Control (GPC) and other recognized opt-out preference signals where required. [CONFIRM GPC handling on web; the iOS app is the primary surface.]

Other US states (e.g., Virginia, Colorado, Connecticut, Utah, Texas, and others as enacted): residents have access, correction, deletion, portability, and opt-out rights as provided by their state laws; exercise them as described in Section 9.

16. Changes to this policy

We may update this Privacy Policy. Material changes will be communicated in-app or via email at least 30 days before they take effect (or sooner where the law requires immediate notice).

17. Contact

Karan Sharma (sole proprietor) Ann Arbor, Michigan, USA

EU representative (if required, GDPR Art. 27): Not yet appointed — EU availability deferred until a rep is appointed UK representative (if required): Not yet appointed — UK availability deferred until a rep is appointed Data Protection Officer / privacy contact (if appointed): Karan Sharma — ksharm@umich.edu


Effective date: June 11, 2026

Last updated: June 11, 2026

Version: 2.1 (DRAFT — pending attorney review; see docs/legal-review-checklist.md)


App Privacy "nutrition label" mapping (App Store Connect questionnaire)

This table maps our data practices to Apple's App Privacy ("privacy nutrition label") questionnaire required during App Store submission. Linked = associated with the user's identity. Tracking = used to track across apps/websites owned by other companies (ATT scope). Update as the schema locks. Current design intent: no Tracking.

Apple data type Collected? Linked to user? Used for Tracking? Purpose(s)
Contact Info — Email Address Yes Yes No App Functionality (account), Customer Support
Contact Info — Name Yes (optional) Yes No App Functionality (profile display)
Contacts (from address book, friend-finding) Yes (optional, opt-in) [CONFIRM Linked? — hashed match] No App Functionality (find friends)
User Content — Photos (meal + profile) Yes Yes No App Functionality (AI macro estimation, profile)
User Content — Other (comments, reactions) Yes Yes No App Functionality (social feed)
Health & Fitness (macros, body weight, height, goals) Yes Yes No App Functionality
Identifiers — User ID Yes Yes No App Functionality (account)
Purchases — Purchase History Yes Yes No App Functionality (subscriptions)
Diagnostics — Crash Data Yes No No App Functionality
Diagnostics — Performance Data Yes No No App Functionality
Usage Data — Product Interaction Yes No No Analytics (de-identified)
Identifiers — Device ID No
Location No
Financial Info — Payment Info No (handled by Apple)
Browsing / Search History No
Sensitive Info No
Advertising Data No

Open items / pre-launch checklist (carried from this draft)

This Privacy Policy is an engineering-accurate working draft. It has not been reviewed by an attorney and is not legal advice. See docs/legal-review-checklist.md for the full sign-off list.