Privacy Policy — iOS App
Last updated: 18.08.2026
RoastMyPortfolio (“we”, “our”, or “us”) is committed to protecting your privacy. This policy applies to the RoastMyPortfolio iOS app and explains what data the app collects and how it is used. For the website, please see the website privacy policy.
Information We Collect
Portfolio Data
When you analyze a portfolio — by pasting holdings or uploading a screenshot — we temporarily process:
- Investment holdings (ticker symbols, quantities, percentages)
- A screenshot of your brokerage app, processed transiently to extract your positions (OCR)
- The generated analysis report
Retention: portfolio data is stored in Cloudflare KV with a 24-hour time-to-live and is automatically deleted after that period.
Device ID (App Functionality)
To provide your free first roast and prevent abuse, the app uses:
- Apple DeviceCheck — a per-device token that establishes your “first roast free” entitlement
- Firebase app-instance ID — a random per-install identifier used to deliver analytics
These are not linked to your identity, name, or any account.
Analytics (Opt-In Only)
If you enable the “Share anonymous usage data” setting (off by default), the app collects two anonymous categories:
- Product Interaction — usage events such as a portfolio being submitted or a paywall being viewed
- Other Diagnostic Data — app/OS version, session information, and Firebase SDK technical diagnostics
On-Device History
Your past analyses are saved locally on your device so you can read them offline. This history is never transmitted to us.
What We Do Not Collect
- No account, no name, no email, no phone number
- No location data, no contacts, no photos library access
- No tracking across apps or websites (ATT does not apply)
- No advertising, and we never sell your data
Payments
The full report is unlocked with a one-time in-app purchase processed by Apple through the App Store (StoreKit). We never collect or store your payment card details or billing information.
Analytics Are Opt-In
Analytics are off by default. You can turn “Share anonymous usage data” on or off at any time in the app’s Settings. When off, no analytics events are sent.
How We Use Your Information
- Generate your portfolio analysis
- Provide the free first roast and prevent fraud
- Improve the app using aggregated, anonymous analytics
- Comply with legal obligations
Data Sharing & Third Parties
We share data only with essential providers:
- Apple — in-app purchases and DeviceCheck anti-fraud
- Google Firebase — analytics, only when you opt in
- AI model providers (e.g. Google Gemini, xAI Grok, OpenAI, Anthropic) — receive your portfolio structure (holdings and quantities only, never personal identifiers) to generate the analysis
- Cloudflare — infrastructure and temporary storage
We never sell your data and do not use your portfolio data for marketing.
Data Retention
- Portfolio data: deleted after 24 hours (Cloudflare KV)
- Analytics: retained for a limited period (14 months), then automatically deleted
- On-device history: kept until you delete the app or clear it
Your Rights (GDPR)
If you are in the European Economic Area (EEA), you have the right to access, rectify, erase, restrict, and port your data, and to object to or withdraw consent for processing. Since the app collects no personal data linked to you, most of these rights are rarely applicable — but you can contact us at any time.
To exercise these rights, contact support@roastmyportfolio.com.
Data Security
All data transmission is encrypted (HTTPS) and processed in a secure Cloudflare Workers environment. No personal identifiers are stored. However, no method of transmission over the internet is 100% secure.
Children’s Privacy
The app is not intended for children under 13, and we do not knowingly collect personal information from children.
Changes to This Policy
We may update this policy from time to time. The “Last updated” date at the top will reflect the most recent changes.
Contact Us
If you have questions about this policy, contact support@roastmyportfolio.com or see our Imprint for full contact information.