2v2

Data Inventory

Last updated: June 27, 2026

About This Inventory

This inventory describes what 2v2 collects, why it is collected, where it is stored, who can access it, and how long it is retained. For the full privacy statement, see our Privacy Policy. For location-specific detail, see the Location Data Disclosure. For account and data deletion procedures, see Account and Data Deletion.

Where implementation does not yet enforce exact deletion timelines, this inventory says so rather than stating a deadline that is not yet implemented.

Account and Profile Data

Account and Profile Data

Collected
Display name, home area, profile photo URL, account status, date of birth, activity interests, skill comfort preference, availability preferences, user role, account timestamps.
Why
Operate your account, display your profile to challenge participants, enforce the 18+ age requirement, support moderation and role-based access.
Stored
Supabase database (public.profiles). Profile photos stored in Supabase storage bucket (profile-avatars).
Access
You can read and update your own profile. Other authenticated users see your display name, home area, activity interests, and avatar in challenges you participate in. Moderators and admins can access profiles for trust and safety review. Row-level security (RLS) enforces access.
Retained
Retained while your account is active. After deletion is requested, retained for a period to support dispute resolution and legal obligations. Exact deletion timelines are covered separately.
Notes
Date of birth is used for age verification only and is not shown to other users.

Authentication Data

Authentication Data

Collected
Email address, password hash, auth session tokens.
Why
Create and secure your account, verify your identity, maintain your login session.
Stored
Supabase Auth (auth.users table and session management). Not in the public profiles table.
Access
You can update your email and password through account settings. 2v2 does not have direct access to password hashes. Supabase processes authentication data under its own privacy and security policies.
Retained
Retained while your account exists. Deleted when your account is removed.
Notes
Passwords are stored as hashed credentials, not in plain text. Your email is not visible to other users.

Challenge Data

Challenge Data

Collected
Challenge title, description, category, format, rules, skill level, participant limit, visibility setting, status, scheduled time, cancellation or completion data. Venue: location name, neighborhood, city, geocoded latitude and longitude.
Why
Display challenges to participants, power the discovery feed, connect hosts with participants, record challenge outcomes, support dispute resolution and moderation.
Stored
Supabase database (public.challenges). Venue coordinates stored in the same row as text fields.
Access
Public challenges are readable by any authenticated user. Private challenges by the host and invited participants. Moderators and admins can access all challenge data. RLS enforces access.
Retained
Retained while the challenge record exists. After host account deletion, records may be retained for dispute resolution. Exact timelines are covered separately.
Notes
Venue coordinates are geocoded from location text entered by the host, not the host's device GPS.

Participation Data

Participation Data

Collected
Participation records: challenge ID, user ID, status (joined / left / removed), join and leave timestamps. Participant removal records: challenge ID, removed participant, removing host, reason, details. Challenge invites and invite grants.
Why
Track who is in each challenge, enforce participant limits and leave deadlines, record host removals, support dispute resolution, power participant notifications.
Stored
Supabase database (public.participations, public.participant_removals, public.challenge_invites, public.challenge_invite_grants).
Access
You can read your own participation records. Hosts can read records for their challenges. Hosts and removed participants can read removal records. Moderators and admins can access all participation and removal data. RLS enforces access.
Retained
Retained while the challenge record or your account is active. Exact deletion timelines are covered separately.
Notes
Removal reasons are stored and accessible to moderators. Direct INSERT on participations is revoked; joins go through backend RPCs.

Location Data

Location Data

Collected
Discovery area: area name (manual mode) or approximate GPS coordinates (GPS mode) stored on your device. Challenge venue: location name, neighborhood, city, geocoded coordinates stored server-side. Location snapshots: venue details and coordinates stored in reports for location concerns.
Why
Show challenges near you in the discovery feed, display venue details to joined participants, support moderation review of location reports.
Stored
Discovery location: on-device only (not stored server-side). Venue location: Supabase database (public.challenges). Location snapshots: Supabase database (public.reports).
Access
Your discovery location is not stored as a server-side user record. Venue neighborhood and city are visible to all users. Full venue name is visible only to joined participants and the host. Venue coordinates are not shown to users. Moderators and admins can view location snapshots in reports.
Retained
Discovery location: cleared when you switch to manual mode or uninstall the app. Venue location: retained with the challenge record. Location snapshots: retained with the report record.
Notes
2v2 requests foreground location access only, at balanced accuracy. See the Location Data Disclosure for full detail.

Reports and Safety Data

Reports and Safety Data

Collected
Reporter account ID, reported user ID or challenge ID, report type (user / challenge / location), reason, optional details, report status, priority, location snapshot (for location reports).
Why
Review safety concerns, enforce community guidelines, support moderator decisions, prevent abuse, maintain a record of safety actions.
Stored
Supabase database (public.reports).
Access
You can read reports you submitted. Moderators and admins can access all reports. Reported users cannot read reports filed about them. RLS enforces access.
Retained
Retained for the lifetime of the report record. Exact deletion timelines are not yet defined.
Notes
In-app reports are not a substitute for emergency services. Contact local emergency services for immediate danger.

Moderation and Audit Data

Moderation and Audit Data

Collected
Moderation queue items: status, severity, assigned reviewer, lock state, timestamps. Moderator actions: actor, action type, target user, reason, metadata. Audit log entries: actor, action, entity type, entity ID, metadata. Content moderation flags.
Why
Track moderator review decisions, maintain accountability for moderation actions, support appeal review, detect abuse patterns, preserve audit records.
Stored
Supabase database (public.moderation_review_queue, public.moderation_actions, public.audit_logs, public.content_moderation_flags).
Access
Moderators and admins can access moderation queue and action data. Regular users cannot read moderation records directly. Users can access their moderation history through appeals. Moderator role is required for most operations.
Retained
Retained for the lifetime of the moderation records. Exact deletion timelines are not yet defined.
Notes
Audit logs are append-only. This data is not visible to regular users.

Appeals

Appeals

Collected
Your account ID, the queue item or moderation action being appealed, appeal reason, optional details, appeal status, reviewer notes, reviewer account ID, review timestamp.
Why
Allow users to contest moderation decisions, support fair review of appeals, maintain a record of appeal outcomes.
Stored
Supabase database (public.appeals).
Access
You can read your own appeal records. Moderators and admins can access all appeals. Direct INSERT and UPDATE are revoked; appeals are submitted through backend RPCs. RLS enforces access.
Retained
Retained for the lifetime of the appeal record. Exact deletion timelines are not yet defined.
Notes
Appeals can be submitted from the Profile section or by emailing support@2-v2.com.

Blocks

Blocks

Collected
Your account ID, the account you blocked, optional reason, block timestamp.
Why
Prevent blocked users from contacting or joining challenges with you, support safety controls, enforce join restrictions.
Stored
Supabase database (public.blocks).
Access
You can read blocks you created. The account you blocked cannot see that they are blocked. Moderators and admins can access block data for trust and safety review. RLS enforces access.
Retained
Retained until you unblock the user or your account is deleted. Exact post-deletion timelines are covered separately.
Notes
Blocking a user does not remove them from a challenge they have already joined.

Support Contact Data

Support Contact Data

Collected
Emails sent to support@2-v2.com: email address, message content, and any context you include. Data export requests submitted in the app are tracked in the database.
Why
Respond to support requests, account help, appeals, and safety concerns. Track data export request status.
Stored
Support emails: handled through standard email infrastructure, not stored in the 2v2 database. Data export requests: Supabase database (public.data_export_requests).
Access
2v2 team members with email access can read support emails. Data export request status is readable by the user who submitted it.
Retained
Support emails: retained per standard email practices, not in the 2v2 database. Data export request records: retained while the account is active.
Notes
Support is email-based only. If a future in-app support ticket system is added, this inventory will be updated. Data export fulfillment is not yet automated.

Device, App, and Diagnostics Data

Device, App, and Diagnostics Data

Collected
Device type and model, operating system version, app version, error and crash data, sanitized app session breadcrumbs (console breadcrumbs filtered), Sentry event metadata. In-app notification records: type, title, body, read status, timestamps.
Why
Diagnose errors and crashes, monitor app stability, improve the app, deliver in-app challenge notifications and reminders.
Stored
Error and crash data: Sentry (third-party service). In-app notifications: Supabase database (public.notifications).
Access
2v2 team members with Sentry access can review error reports. Sentry processes data under its own privacy and security policies. You can read your own in-app notification records.
Retained
Sentry data: governed by Sentry's own retention policies. In-app notifications: retained while your account is active.
Notes
We do not collect device advertising identifiers. Push notification tokens are not currently stored.

Local Device Storage

Local Device Storage

Collected
Selected area name, location mode status, GPS coordinates (when GPS mode is active), onboarding state flags.
Why
Persist your location preference and app state between sessions without a server round-trip.
Stored
On your device only (AsyncStorage). Keys: 2v2:selectedArea, 2v2:locationStatus, 2v2:selectedLatitude, 2v2:selectedLongitude, 2v2:onboardingIntroDismissed, 2v2:onboardingLocationPrompted. Not transmitted to 2v2 servers as a user record.
Access
Only the 2v2 app on your device. 2v2 servers do not store or access this data as a user record.
Retained
Cleared when you change settings, switch area mode, or uninstall the app.
Notes
GPS coordinates stored locally may be at a higher precision than the balanced accuracy level requested from the device.

Data Not Currently Collected

2v2 does not currently collect:

  • Push notification tokens: notifications are in-app database rows. External push delivery is not implemented.
  • Payment or subscription data: no paid features exist yet.
  • Ratings or reviews: deferred to a future release.
  • Background location: foreground access only.
  • Advertising identifiers: no IDFA, GAID, or equivalent.
  • Detailed behavioral analytics: beyond Sentry error and crash reports.

If any of these are added, this inventory and the Privacy Policy will be updated.

Contact

For questions about this data inventory or your personal information, contact support@2-v2.com.