Range Stats
Privacy policy v1.6.2
Effective Date: June 10, 2026
Last Updated: July 5, 2026
Range Stats ("the App") is developed and published by Fourteener Labs, LLC ("we," "us," or "our"). We are committed to protecting your privacy. This policy explains what data the App collects, how it is stored, and your choices regarding that data.
1. Data Storage
By default, all data you enter into Range Stats is stored locally on your device using Apple's SwiftData framework. This includes your firearms collection, range trip logs, ammunition records, maintenance logs, accessories, target sessions, training courses, certifications (including CCW/CHL permits), range reviews, dealer/transfer records, and photos.
No data is transmitted to Fourteener Labs servers. We do not operate any servers that receive, process, or store your personal data.
Range Stats does not sync your data to iCloud or any other cloud service. All data remains on the device where it was entered. To move data between devices, use the App's built-in Export / Backup features.
2. Data We Collect
Range Stats does not collect, transmit, or share any personal data with Fourteener Labs or any third parties. Specifically:
- No account required. You do not need to create an account, provide an email address, or sign in to use the App.
- No analytics or tracking. We do not use any analytics SDKs or tracking frameworks. Crash diagnostics are handled on-device via Apple's MetricKit framework (see Section 10).
- No advertising. The App contains no ads and no advertising SDKs.
- No data sharing. Your data is never sold, shared, or transmitted to third parties by Fourteener Labs, except as described in Section 3 (AI Coaching) and Section 10 (Crash Reporting).
3. AI Coaching Feature
Range Stats includes an optional AI coaching feature powered by Google's Gemini API. Before using this feature for the first time, the App will present a one-time consent prompt disclosing that data will be sent to Google. You must explicitly agree before any data is transmitted.
When you use this feature:
- Target session data (shot counts, accuracy scores, group measurements, and caliber/distance information) is sent to Google's Gemini API to generate coaching feedback.
- Target photos may also be sent if you use the visual analysis feature.
- This data is transmitted directly from your device to Google's servers. It does not pass through Fourteener Labs servers.
- If you provide your own Gemini API key, it is stored securely in your device's Keychain and is never transmitted to Fourteener Labs.
- Google's use of this data is governed by Google's Gemini API Terms of Service.
- This feature is entirely optional. If you do not use AI coaching, no data is sent to Google. You may decline the consent prompt at any time and coaching features will remain unavailable until you agree.
4. Location Data
The App includes a range finder feature that uses your device's location services to display nearby shooting ranges on a map within a user-configurable search radius. Your location is used in real time only and is never recorded, stored, or transmitted by the App. You may also enter range locations manually without granting location access.
Location permissions can be revoked at any time in your device's Settings > Privacy & Security > Location Services.
5. Photos & Camera
You may attach photos to firearms, range trips, target sessions, training course certificates, and certification/permit documents within the App. When photos are imported or captured via the camera:
- Photo metadata is stripped at import. GPS coordinates and all other embedded photo metadata — including EXIF, TIFF, and IPTC data such as timestamps, camera make/model/serial information, and vendor-specific data — are removed from the image before it is saved to the App. This means your shooting location and camera details are not retained in stored photos even if your camera captured them. Image orientation is preserved.
- Photos are stored locally on your device.
- Photos are never transmitted to Fourteener Labs or any third party, except when used with the optional AI coaching feature as described in Section 3.
Camera and photo library access can be managed in your device's Settings > Privacy & Security.
6. Notifications
Range Stats may request permission to send local notifications for maintenance reminders and certification/permit expiration alerts. These notifications are generated entirely on your device. No notification data is sent to any server. You can manage notification permissions in your device's Settings > Notifications.
7. In-App Purchases
Range Stats offers a one-time in-app purchase ("Range Stats Pro") processed entirely through Apple's App Store. Fourteener Labs does not receive, process, or store any payment information. All purchase and billing data is handled by Apple under Apple's Privacy Policy.
8. App Lock (Face ID / Touch ID)
You may optionally protect the App with a biometric lock (Face ID, Touch ID, or your device passcode) in Settings. When enabled:
- Authentication is performed entirely on your device by Apple's LocalAuthentication framework. The App never sees, stores, or transmits your biometric data — it only receives a pass/fail result from iOS.
- Disabling the app lock requires confirming your identity first, so someone briefly holding your unlocked phone cannot switch the protection off.
- A "Lock Now" option lets you immediately re-lock the App at any time.
9. Data Export & Sharing
You may export your data as CSV, JSON, or PDF files from within the App. You may also generate Insurance Documentation Reports (per-firearm cards or full collection reports) and shareable firearm cards using the built-in export features. When you export or share:
- All export files are generated on your device.
- Export files are written with iOS file protection enabled and are automatically deleted from temporary storage after the share sheet is dismissed.
- Files are shared using iOS's standard share sheet — we do not receive copies of exported or shared data.
- Serial numbers, dealer information, and range GPS coordinates are excluded from exports by default. You may opt in to include them in Settings > Export Options.
- When an export will contain sensitive data (serial numbers, dealer contact details, or range coordinates), the App displays a warning before the export is created reminding you that the file is not encrypted and should be shared carefully.
- Backup files may optionally be encrypted with a user-supplied passphrase before export.
10. Crash Reporting
Range Stats uses Apple's MetricKit framework for on-device crash detection. This is a privacy-preserving approach with no third-party SDKs involved:
- On-device only. Crash diagnostic data is processed on your device by Apple's MetricKit framework. No crash data is automatically transmitted to Fourteener Labs.
- Xcode Organizer. Apple may make anonymized crash reports available to us via Xcode Organizer as part of your device's standard diagnostics sharing with developers, which you control in Settings > Privacy & Security > Analytics & Improvements.
- Optional user-initiated reports. If the App detects a crash from the previous session, it may present an optional prompt asking if you'd like to email a crash report to our support team. This is entirely voluntary. If you tap "Send Report," a diagnostic summary (containing device model, iOS version, app version, and crash stack trace — no personal data or firearm information) is opened in your Mail app for you to review and send. If you decline, no data is sent.
11. Data Deletion
You can delete individual records (firearms, trips, accessories, maintenance logs, target sessions, training courses, certifications, range reviews, photos) from within the App at any time. To delete all data, use the "Delete All Data" option in Settings or simply delete the App from your device. Since no data is stored on Fourteener Labs servers, deletion is immediate and permanent.
12. Children's Privacy
Range Stats is not directed at children under the age of 13. We do not knowingly collect any data from children.
13. Changes to This Policy
We may update this Privacy Policy from time to time. The "Last Updated" date at the top of this page reflects the most recent revision. Continued use of the App after changes constitutes acceptance of the updated policy.
14. Contact Us
If you have questions about this Privacy Policy, contact us at: