Privacy Policy

Last updated: April 21, 2026

Shopforge B.V. ("we", "us", "our"), trading as Contrarian Analysis, operates the Contrarian Analysis mobile application and web app (the "Service"). This policy explains what personal data we process, why, on what lawful basis, who we share it with, and the rights you can exercise. It is written to meet the standard set by the EU General Data Protection Regulation (GDPR) and the UK GDPR. If you are an EU or UK resident, this policy forms part of your data-processing contract with us.

Data controller: Shopforge B.V., trading as Contrarian Analysis, Oosteinde 6, 1474 MB Oosthuizen, The Netherlands. KvK (Netherlands Chamber of Commerce) 42027447 · VAT NL00541246B85. Reachable at privacy@contrariananalysis.app. A formal data-protection officer has not been appointed; the email address above is monitored for all privacy-related correspondence.

1. Data we collect and why

We categorise data by source and purpose.

1.1 Account data

1.2 Usage data

1.3 Technical data

1.4 Payment data

When you subscribe, Stripe (web) or RevenueCat + Apple/Google (mobile) collects and stores your card or in-app-purchase details directly. We only store the resulting subscription ID, tier, and renewal date — never your card number, CVV, or billing address.

2. Lawful basis (GDPR Art. 6)

Each processing activity uses the lawful basis below. You can withdraw consent at any time; where the basis is "contract", withdrawing means terminating the Service.

ProcessingLawful basis
Creating and maintaining your accountArt. 6(1)(b) — contract
Delivering AI analyses, watchlist, alerts, portfolioArt. 6(1)(b) — contract
Community features (leaderboard, chat, comments, follows)Art. 6(1)(b) — contract
Push notifications (price alerts, copytrade, digest)Art. 6(1)(a) — consent (per-device opt-in)
Rate-limiting and abuse preventionArt. 6(1)(f) — legitimate interest (platform integrity)
Crash reporting and error logsArt. 6(1)(f) — legitimate interest (quality and security)
Billing and subscription managementArt. 6(1)(b) — contract
Responding to legal requestsArt. 6(1)(c) — legal obligation

3. Data storage and location

Your data is stored in Google Cloud Firestore in the us-central1 region (Iowa, USA). We rely on the European Commission-approved Standard Contractual Clauses (SCCs) incorporated into Google's Cloud Data Processing Addendum as the transfer mechanism for data exported from the EEA / UK. A copy of the applicable DPA is available on request.

Access is governed by Firebase Security Rules: your private subcollection (email, subscription, watchlist, tracked picks, FCM token) is readable only by you and by our Cloud Functions running as Firebase Admin. Public profile data is readable by other signed-in users.

4. Sub-processors we rely on

The providers below process data strictly to deliver the Service. We have executed a Data Processing Addendum with each, either directly or via the parent platform's standard DPA.

Sub-processorPurposeData shared
Google FirebaseAuthentication, database, hosting, Cloud Functions, Cloud Messaging, Crashlytics, reCAPTCHA EnterpriseAll account and usage data
Anthropic (Claude API)Generates AI analysesTicker, company name, your free-form thesis text; no account identifiers
StripeWeb subscription paymentsEmail, Stripe customer ID, your UID for webhook reconciliation
RevenueCatMobile subscription entitlement managementApp user ID (your UID), purchase receipts forwarded from Apple/Google
Apple App Store / Google PlayMobile in-app purchasesHandled by the platform — we receive only the validated receipt via RevenueCat
Financial Modeling Prep (FMP)Stock fundamentals and price dataTicker symbols only; no user data
FinnhubAlternative price providerTicker symbols only; no user data
Twelve DataAlternative price providerTicker symbols only; no user data
TiingoAlternative price providerTicker symbols only; no user data
Alpha VantageAlternative price providerTicker symbols only; no user data
Yahoo Finance (via public endpoints)Fallback price and quote dataTicker symbols only; no user data
ClearbitPublic company-logo fetchCompany domain names only; no user data

We do not sell or trade your data. No advertising networks, analytics brokers, or data-broker services are used.

5. Data retention

6. Your rights (GDPR Art. 15–22)

7. Cookies, local storage, tracking

The web Service uses:

The web Service does not use advertising cookies, analytics-broker pixels, or cross-site trackers. No ePrivacy consent banner is therefore shown for non-essential trackers because none are loaded — a one-time pre-signup banner still informs you of the essential / security cookies above.

8. Children's privacy (GDPR Art. 8)

You must confirm you are at least 18 years old before creating an account. We do not knowingly process data from anyone under 16 without verifiable parental consent. If you believe a minor has created an account, email us and we will verify and delete it.

9. Data security (GDPR Art. 32)

10. Breach notification (GDPR Art. 33)

If we become aware of a personal-data breach that is likely to result in a risk to you, we will notify the relevant supervisory authority within 72 hours and, where required by law, inform affected users without undue delay.

11. Changes to this policy

When we change this policy materially, we will surface a notice in the app the next time you sign in. The "Last updated" date at the top is authoritative.

12. Contact

Privacy enquiries, erasure requests, or complaints: privacy@contrariananalysis.app.