Sub System for iPhone
Privacy Policy
Last updated: 15 November 2026
Sub System is a jiu-jitsu training and skill-tracking app operated by Pointworks Pty Ltd ("we", "us"). This policy explains the information the app handles, why it is used, and your choices.
Training data and iCloud
The app stores your skills, ratings, session history, notes, training focuses, belt details and preferences on your device. When iCloud sync is available, training records sync through Apple's CloudKit in your private iCloud database. Some preferences, including belt details and reminder settings, also sync through Apple's iCloud key-value storage. Sync depends on your device, iCloud settings and connectivity.
We do not receive your full training database through iCloud sync. Information you submit for AI-assisted logging passes through our processing service and third-party AI services as described below.
Sign in with Apple and the onboarding demo
Sign in with Apple provides a stable account identifier. The app does not request your name or email address from Apple. During sign-in, the app sends Apple's identity token and single-use authorization code to our processing service for verification. The service keeps the account identifier and an Apple refresh token to maintain your sign-in. The app stores the identifier and a separate service session token in the device Keychain and uses that session token to authorize AI requests and apply usage limits. Our proxy does not forward these identifiers or sign-in tokens to Groq or OpenRouter.
The live onboarding demo uses a randomly generated installation identifier stored in the device Keychain. Our processing service uses hashes of that identifier and the requesting IP address to limit demo usage. This identifier does not sign you in or give access to the full app. Network requests also expose connection information, including your IP address, to the service infrastructure.
Optional AI-assisted logging
Before an AI upload, the app asks you to allow third-party processing. Choosing Continue with AI records your consent on that device. Microphone permission is separate from this consent. Manual logging does not send your notes to our AI processing service.
If you choose AI-assisted logging:
- Voice transcription: The app records audio when you use the recording controls. It sends the recording over HTTPS to our Cloudflare Worker, which forwards it to Groq for speech-to-text transcription using a Whisper model. The transcript is returned to the app.
- Session analysis: The text you submit, including a voice transcript or typed note, passes through our Cloudflare Worker to OpenRouter, which routes it to a provider serving a DeepSeek model. The request includes the names and types of skills in your app inventory so the model can match your note to skills. It does not include your full session history or skill-rating history.
- Review: The app returns suggested session entries for you to review and edit before saving. Saved notes and entries become part of your training data.
The same processing applies to the live onboarding demo. Information you include in audio or notes is part of the upload; avoid including details about other people that you do not want shared with these services.
You can withdraw consent in Settings → Data → AI-assisted logging. Consent is checked before each upload, including retries. Turning it off prevents new AI uploads on that device; it does not recall a request already sent or delete saved notes or information already processed. Consent is stored locally and is not synced through iCloud.
Retention
- Training records and preferences: These remain on your device and, where sync is available, in your iCloud account until you change or delete them.
- Temporary recordings: The app attempts to delete the on-device audio file after successful transcription or when the recording is discarded or the capture interface is closed. A failed upload may keep the recording temporarily so you can retry. Audio is not saved as part of your training history.
- Our processing service: Our proxy forwards audio and text without saving a content archive. Sign-in challenges expire after five minutes. Verified sign-in sessions contain the account identifier and Apple refresh token and are scheduled for deletion after 30 days without use. The service checks active sessions with Apple at most once a day after successful validation. To invalidate sessions across devices and allow a deletion request to be retried, the service keeps account and session hashes and a deletion timestamp for up to 30 days after deletion. Idle sessions from earlier versions that the service has not yet indexed are blocked on use and erased on use or at their original expiry, whichever comes first. Signed-in usage and abuse-prevention counters use hashed account or IP identifiers, request type and time window; they are scheduled for deletion after two days without an accepted request. Legacy signed-in counters from earlier builds expire 24 hours after their last update. Demo counters use hashed installation and IP identifiers; their current implementation has no automatic deletion. A daily network quota reset does not delete the stored quota record.
- Groq: Zero Data Retention is enabled for our organisation. Groq processes uploaded audio to return a transcript without retaining the content for system reliability or abuse monitoring under that setting. Groq still retains usage metadata that does not contain the audio or transcript.
- OpenRouter and model-hosting providers: Input/output logging and OpenRouter use of our inputs/outputs are disabled. Our account disallows endpoints that train on submitted data or publish prompts. Both signed-in and demo analysis requests enforce Zero Data Retention routing and disallow provider data collection. OpenRouter permits temporary in-memory prompt caching under its Zero Data Retention policy and retains request metadata, such as token counts and timing, separately from session content.
- Cloudflare: Persistent Workers Observability logging is disabled for our proxy. Cloudflare still processes connection and infrastructure metadata to operate its services. Disabling these logs does not delete the usage counters described above.
Subscriptions, reminders and backups
Apple handles subscription purchases and payments. The app reads subscription entitlements through StoreKit to determine access. We do not receive your payment card details through the app.
Training reminders are local notifications scheduled on your device. You can change them in the app or disable notification permission in iOS Settings.
If you export a backup, it includes training records and notes. The destination you choose receives that file. Exported copies must be deleted separately from the app's data.
Your choices and deletion
- You can edit or delete individual sessions in the app.
- Reset all data in Settings deletes saved training records and restores the default skill list. When CloudKit sync is working, record deletions can sync to other devices. This action does not clear all preferences, Keychain identifiers, server usage counters, provider records or exported backups.
- Sign out removes the app's stored sign-in identifier and session token from the device and attempts to end that service session. If the service cannot be reached, its record remains until it expires after 30 days without use. Sign-out does not delete training data or revoke the app's Apple authorization.
- Deleting the app does not by itself delete iCloud data, previously exported backups, service records or all Keychain items. You can manage iCloud storage and Sign in with Apple authorization in your Apple Account settings.
- In versions that offer Delete account, open Settings → Account or use the link on the subscription screen. Deletion revokes Sign in with Apple authorization and removes signed-in sessions and account usage counters. Sub System clears training data and preferences on the device, and where iCloud sync is available, those changes sync to other devices. Network and demo abuse-prevention counters, exported backups and App Store subscriptions are separate. Manage or cancel an active subscription through Apple.
- Contact us at admin@pointworks.au for privacy questions or requests concerning information held by Pointworks.
Advertising, analytics and service providers
The app does not include third-party advertising or analytics SDKs, does not use cross-app advertising tracking, and we do not sell your data. Operational usage counters and provider metadata described above support the processing service.
The services involved are:
- Apple: iCloud/CloudKit, Sign in with Apple and App Store purchases. Apple Privacy Policy.
- Cloudflare: Hosts our processing service and usage-limit storage. Cloudflare Privacy Policy.
- Groq: Transcribes uploaded audio. Groq data-handling documentation.
- OpenRouter and model-hosting providers: Process submitted session text with a DeepSeek model. Hosting providers can vary with routing. OpenRouter Privacy Policy, data collection and provider policies.
These services may process information outside Australia. Their policies and the configured service settings govern their handling of that information.
Contact and changes
For questions, access or deletion requests, or privacy complaints, contact Pointworks Pty Ltd at admin@pointworks.au.
We may update this policy as the app or its services change. The date above shows when it was last revised.