{"data":[{"category":"Account info","data_type":"Email address","collected":true,"shared":true,"optional":false,"purpose":"App functionality (sign-in, plan invitations)","retention":"While active; hidden for a 30-day recovery window after a deletion request, then purged","user_can_delete":true},{"category":"Contact info","data_type":"Group invitation recipient email","collected":true,"shared":true,"optional":true,"purpose":"App functionality (delivering and matching a recipient-controlled group invitation)","retention":"Until accepted, declined, cancelled, or 30-day expiry; also removed with the group, inviter account, or matching recipient account","user_can_delete":true},{"category":"Account info","data_type":"Display name","collected":true,"shared":true,"optional":false,"purpose":"App functionality (showing who you are to your group)","retention":"While active; hidden for a 30-day recovery window after a deletion request, then purged","user_can_delete":true},{"category":"Personal info","data_type":"Gender, if you choose to give it","collected":true,"shared":false,"optional":true,"purpose":"App functionality (choosing which Rally announcements reach you); never shown to other people","retention":"Until changed or cleared; hidden for a 30-day recovery window after a deletion request, then purged","user_can_delete":true},{"category":"User content","data_type":"Group names and colors","collected":true,"shared":true,"optional":false,"purpose":"App functionality (group scheduling)","retention":"Until group deletion; a group with other members passes permanently to a remaining member when its creator requests account deletion, while a sole-member group stays private during the 30-day recovery window","user_can_delete":true},{"category":"User content","data_type":"Group membership","collected":true,"shared":true,"optional":true,"purpose":"App functionality (member access and coordination)","retention":"Until the member leaves or the group is deleted; hidden during the 30-day account recovery window and restored or purged at its end","user_can_delete":true},{"category":"User content","data_type":"Plan titles, descriptions, locations, time slots","collected":true,"shared":true,"optional":false,"purpose":"App functionality (plan scheduling)","retention":"Until plan or group deletion","user_can_delete":true},{"category":"User content","data_type":"Availability responses (name, optional email/note, authenticated organizer response)","collected":true,"shared":true,"optional":false,"purpose":"App functionality (showing who can attend)","retention":"Until response or plan deletion; an authenticated response is hidden during the 30-day account recovery window and restored or purged at its end","user_can_delete":true},{"category":"User content","data_type":"Optional on-my-way status","collected":true,"shared":true,"optional":true,"purpose":"App functionality (short-lived day-of coordination)","retention":"Hidden after the locked time slot ends; deleted when cleared, with the plan/account, or during routine cleanup","user_can_delete":true},{"category":"Location","data_type":"One-time approximate ETA location","collected":true,"shared":true,"optional":true,"purpose":"App functionality (member-initiated rough ETA sharing)","retention":"Visible only before the locked start; deleted when cleared, with the plan/account, or during routine cleanup","user_can_delete":true},{"category":"Location","data_type":"Optional live plan location and ETA","collected":true,"shared":true,"optional":true,"purpose":"App functionality (positions, ETA and arrival for a plan share you explicitly start, including background updates with permission)","retention":"Latest position only, no location history; sharing stops on Stop, arrival, or plan expiry; the current presence expires with the plan window and is deleted on Stop or routine cleanup","user_can_delete":true},{"category":"Location","data_type":"Plan place coordinates chosen by the organizer","collected":true,"shared":true,"optional":true,"purpose":"App functionality (organizer picks where the Rally happens, so day-of ETAs resolve)","retention":"Stored with the plan; deleted with the plan or group. A transferred group and its plans outlive the former owner account","user_can_delete":true},{"category":"Location","data_type":"Circle location share (precise or approximate position)","collected":true,"shared":true,"optional":true,"purpose":"App functionality (a position you choose to share with one circle outside any meetup, at the precision you pick)","retention":"Latest position only, no location history; deleted when you stop, when you leave or are removed from the circle, or with your account at the end of the deletion recovery window; when the chosen window ends (1 hour, 4 hours, or up to 24 hours for \"until I stop\"), the position stops being visible to the circle at once and the stored point is removed by a later cleanup pass","user_can_delete":true},{"category":"User content","data_type":"Optional self-confirmed recap attendance","collected":true,"shared":true,"optional":true,"purpose":"App functionality (participant-controlled recap inclusion)","retention":"Until participant removal or plan/group deletion; hidden during the 30-day account recovery window and restored or purged at its end","user_can_delete":true},{"category":"App activity","data_type":"Push notification preferences","collected":true,"shared":false,"optional":true,"purpose":"App functionality (user-controlled plan and day-of updates)","retention":"Until changed or immediately removed when account deletion is requested; not restored","user_can_delete":true},{"category":"App activity","data_type":"Which activity items you opened, and when you last marked them all read","collected":true,"shared":false,"optional":false,"purpose":"App functionality (marking which activity items are unread)","retention":"While active; hidden for a 30-day recovery window after a deletion request, then purged","user_can_delete":true},{"category":"Device or other identifiers","data_type":"Expo push token","collected":true,"shared":true,"optional":true,"purpose":"App functionality (delivering opted-in push notifications)","retention":"Until the device is unregistered — including when you turn push off on the device that holds it — on sign-out, when the provider reports the device unregistered, or on immediate removal when account deletion is requested; not restored. Turning push off for the account does not remove another device's registration: it stays, and that device receives nothing while the preference is off","user_can_delete":true},{"category":"Messages","data_type":"Group chat messages, reactions and reports; the unmasked original of a message the chat filter masked","collected":true,"shared":false,"optional":true,"purpose":"App functionality (group chat) and safety (reviewing reports and filtered messages)","retention":"Until the group or plan is deleted, the author account is purged, or the message is removed in moderation; filter and report records are deleted with their message","user_can_delete":true},{"category":"App activity","data_type":"Anonymous pages viewed and buttons tapped, not linked to your Rally account","collected":true,"shared":false,"optional":false,"purpose":"Analytics (PostHog EU Cloud)","retention":"90 days","user_can_delete":false},{"category":"Diagnostics","data_type":"Exception messages and stack traces; app/device version; fixed or templated operation/route labels; status and request IDs","collected":true,"shared":false,"optional":false,"purpose":"App stability (Sentry and PostHog)","retention":"90 days","user_can_delete":false},{"category":"Device or other identifiers","data_type":"Transient apparent network address","collected":true,"shared":true,"optional":false,"purpose":"Security and abuse prevention for anonymous API requests","retention":"Rally application memory only for the active rate-limit window (up to one hour); infrastructure processes API traffic separately","user_can_delete":false},{"category":"Device info","data_type":"Device model, OS version, app version","collected":true,"shared":false,"optional":true,"purpose":"Diagnostics","retention":"90 days","user_can_delete":false}]}