1) Scope And Purpose
This policy explains what data is handled when you use Decision Strategy, why it is handled, and what controls you have.
- This policy applies to the web app and API routes in this repository.
- If behavior changes in code (new storage, new integrations, or new analytics), this policy is updated.
- The goal is to explain handling clearly so you can decide what information you want to provide.
2) Data We Collect
We collect account, product-usage, support, and billing-related data needed to run the service.
- Account and identity data: full name (if provided), email, authentication provider, and account timestamps from Supabase Auth.
- Membership data: user_id, email, tier, credits, created_at, updated_at.
- Prediction Market data: prediction questions, votes, selected outcomes, vote timestamps, aggregate counts, token/reputation stats, rank history, and badges.
- Decision and questionnaire content is not stored in the app database as a long-term record.
- Voice transcription audio is not stored in the app database as a long-term record.
- Support inbox data: name, email, subject, message, reply, status, and related timestamps.
- Billing metadata: user_id, plan metadata, and customer email used in Stripe checkout/session validation.
3) How We Use Data
Data is used to authenticate users, generate decision outputs, manage credits/plans, and provide support.
- Authenticate users and maintain sign-in state via Supabase session cookies.
- Authorize access to protected routes and APIs.
- Consume and track decision credits by plan/level through the Members profile and consume_member_credit RPC.
- Generate AI-assisted decision outputs from context and answers you submit in that session (without storing a long-term decision archive in app storage).
- Transcribe voice-to-text input for the decision description field when you choose to use voice (without storing long-term voice files in app storage).
- Generate downloadable PDF reports from payload data you submit.
- Process upgrades and apply Strategist benefits (tier/credits) after Stripe checkout confirmation.
- Operate Prediction Market voting, enforce one vote per account per prediction, calculate aggregate community percentages, award in-product tokens, update ranks/levels, and show each signed-in user their own vote status.
- Enable support messaging and replies.
4) Third-Party Services And Data Sharing
Certain features send data to service providers needed to deliver those features.
- Supabase: authentication, session handling, and app tables (Members and SupportMessages).
- Major LLMs: receive decision context/answers sent to /api/decision-analysis to produce analysis output.
- OpenAI (Whisper): receives uploaded audio sent to /api/transcribe-audio and returns transcript text.
- Stripe: receives checkout data and payment metadata for subscription/payment processing.
- RSS/news providers: public news headlines and links may be fetched from providers such as Google News and publisher RSS feeds for the Prediction Market ticker. The app does not send your personal account data to those RSS providers for this ticker.
- We may disclose data if required by law, legal process, or to protect rights/safety.
5) Retention And Deletion
Retention varies by data type and feature.
- Decision analysis/report data: this app describes outputs as session-based and does not maintain a long-term report archive in app storage.
- Support messages: retention logic is automated. Messages are deleted 24 hours after a user has seen a reply, or after 1 month when unread/unseen.
- Members profile data: kept while your account exists (or as needed for plan/credit state).
- Prediction Market records: market questions, aggregate vote counts, user vote records, token totals, rank history, badges, and scoring data may be retained while your account or the prediction feature exists so the app can enforce one vote per market, maintain integrity, and show historical reputation state.
- Account deletion: /api/account/delete removes your auth account; Members row is deleted by cascade. SupportMessages user_id is set to null on auth-user delete and remaining records are later purged by retention rules.
- Stripe and other processors may retain records under their own policies and legal obligations.
6) Access Controls And Security
The app uses authentication checks, role checks, and row-level access controls.
- Protected operations require a signed-in user.
- Members and SupportMessages use row-level security patterns for user-owned access.
- We limit client-side persistence of sensitive workspace data (no localStorage/sessionStorage persistence in current app code).
- No security system is perfect; use prudent judgment when entering highly sensitive information.
7) Most Important Practical Boundaries
What matters most for privacy risk in normal usage.
- Do not put secrets (for example private keys, account passwords, or regulated identifiers) into decision prompts unless necessary.
- If you use voice transcription, audio is sent to OpenAI transcription API.
- If you use AI decision generation, submitted decision content is sent to major LLMs.
- Support messages include plain-text message bodies and are visible to the support team.
- Prediction votes are linked to your signed-in account for integrity and one-vote enforcement; ordinary users see aggregate results.
- Prediction tokens, levels, ranks, and accuracy are reputation indicators only. They are not money, financial assets, wagers, or payout rights.
- Billing actions are routed through Stripe checkout/session verification.
8) Your Choices
You can control several parts of your data lifecycle directly in product flows.
- Use email/password or Google sign-in based on your preference.
- Choose not to use microphone transcription if you do not want to send audio for transcription.
- Avoid sending sensitive personal data in support messages unless required.
- Delete your account from the account deletion flow if you want to remove access and member profile state.
9) Policy Updates
This policy may change as features and integrations evolve.
- Material updates should be reflected on this page with a new effective date.
- Continued use after an update means you accept the updated policy terms.
- If a future feature changes privacy impact (for example new storage or analytics), this policy should be revised before rollout.