PRIVACY
POLICY

PuckMetrix

Last Updated: December 28th, 2025 • Version 1.3

Introduction

PuckMetrix ("we," "our," or "the app") is committed to protecting your privacy. This Privacy Policy explains how we collect, use, and safeguard your information when you use our iOS application for tracking hockey game statistics.

Summary (TL;DR)

What we DO

  • Store your game data locally on your device AND sync to secure cloud storage
  • Let you sign in with Apple, Google, or email magic link
  • Sync your data across devices when you're signed in
  • Collect anonymous analytics through Apple's privacy-focused system

What we DON'T do

  • Share your data with other users (your data is private to you)
  • Track you across apps or websites
  • Sell your data to anyone
  • Show ads or collect data for advertising
  • Share your personal information with third parties (except for authentication)

Data Collection and Usage

1. Account Information

When you sign in with Apple, Google, or email:

  • • User ID (anonymized identifier from the authentication provider)
  • • Name (optional, provided by the authentication provider)
  • • Email address (used for account recovery and magic link sign-in)

Purpose: To create and maintain your account, and sync your data across devices

Storage: Stored securely in Firebase Authentication

Account Linking:

You can link multiple sign-in methods (Apple, Google, email) to the same account:

  • • Linking allows you to access your data using any of your linked sign-in methods
  • • All linked methods access the same user data - no duplication
  • • Linking is managed securely by Firebase Authentication
  • • You can unlink methods at any time in Settings
  • • Your data remains private - linking only affects how you authenticate, not what data other users can see

2. Game and Team Data

  • • Team names, player rosters, and jersey numbers
  • • Game schedules, scores, and venues
  • • Game events (shots, goals, assists, faceoffs, penalties, hits)
  • • Event locations on rink diagrams
  • • Season and tournament information

Purpose: To provide core game tracking functionality and generate statistics

Storage: Stored locally on your device using Apple's SwiftData framework AND synced to Google Cloud Firestore when signed in

3. Subscription and Purchase Information

When you purchase a subscription or make an in-app purchase:

  • • Subscription status (free, premium, or lifetime)
  • • Product ID and transaction ID
  • • Purchase date and expiration date (for subscriptions)
  • • Platform (iOS, Android, web)

Purpose: To manage your subscription and provide premium features

Storage: Stored locally on your device (SwiftData) AND in Google Cloud Firestore when signed in

Apple's Role: Purchase transactions are processed by Apple through the App Store. We only receive confirmation of successful purchases.

Privacy: Your payment information (credit card, billing address) is handled exclusively by Apple. We never see or store your payment details.

4. Voice Input Analytics (Premium Feature)

When you use voice input features, you can choose to share anonymized analytics to help improve recognition accuracy:

Basic Analytics (opt-out available):

  • • Command types recognized (shot, goal, penalty, etc.)
  • • Confidence scores and whether commands were auto-executed or required manual entry
  • • Jersey numbers mentioned (not player names)
  • • Home/away team designation (not team names)
  • • Word count and transcript hash for deduplication

Full Transcript Sharing (opt-in only):

  • • The actual text of your voice commands
  • • May include player names you speak aloud

Purpose: To improve voice recognition accuracy and identify common phrasing patterns

Storage: Google Cloud Firestore (telemetry collection)

Control: Settings → Voice Input Analytics. Disable at any time.

Retention: Analytics are deleted from your device within 7 days of upload.

5. Usage Analytics

  • • Anonymous usage data collected through Apple's built-in analytics (MetricKit and OSLog)
  • • App performance metrics (crash data, performance metrics)

Purpose: To improve app stability and user experience

Privacy: All analytics respect your iOS privacy settings and do not identify you personally

Control: Can be disabled via iOS Settings → Privacy & Security → Analytics & Improvements

Information We Do NOT Collect

  • We do not collect location data or GPS coordinates
  • We do not track your browsing history or activities outside the app
  • We do not collect device identifiers for advertising purposes
  • We do not use cookies or similar tracking technologies
  • We do not collect sensitive personal information (health data, financial data, etc.)
  • We do not record audio from voice input features (speech is processed on-device by iOS)

Third-Party Services

Firebase (Google Cloud)

We use Firebase for authentication and data synchronization.

  • Firebase Authentication: Handles sign-in with Apple, Google, and email magic links
  • Cloud Firestore: Stores your game data securely in Google's cloud infrastructure
  • Data Isolation: Your data is stored under your user ID and is not accessible to other users
  • Security: All data is encrypted in transit (TLS) and at rest
  • Google's Privacy Policy: https://policies.google.com/privacy

Sign in with Apple

When you choose to sign in with Apple:

  • Data Shared: Minimal - only what you authorize Apple to share
  • Apple's Control: You control whether to share your real email or use Apple's private relay email
  • Apple's Privacy Policy: https://www.apple.com/legal/privacy/
  • No Tracking: We cannot track you across other apps or websites

Sign in with Google

When you choose to sign in with Google:

iOS Speech Recognition

When you use voice input features:

  • Processing: Speech is processed entirely on your device using iOS Speech Recognition
  • No Recording: We do not record, store, or transmit your audio
  • Apple's Control: Speech processing respects your iOS privacy settings

RevenueCat

We use RevenueCat for subscription management and purchase processing.

  • Purpose: To manage in-app subscriptions and process purchase transactions
  • Data Shared: Device identifier, purchase history, subscription status
  • No Personal Data: RevenueCat does not receive your name, email, or account information directly from us
  • Cross-Device Sync: When you sign in, we link your Firebase user ID to RevenueCat to sync subscription status across your devices
  • Privacy Policy: https://www.revenuecat.com/privacy

Important: Your payment information (credit card, billing address) is handled exclusively by Apple through the App Store. Neither PuckMetrix nor RevenueCat ever sees or stores your payment details.

Data Storage and Security

Hybrid Storage Model

  • Local First: All data is stored locally on your device for offline access
  • Cloud Sync: When signed in, data syncs to Google Cloud Firestore
  • Offline Support: The app works fully offline; changes sync when you're back online
  • Cross-Device: Sign in on another device to access your data

Data Security

  • Local data is secured using Apple's SwiftData framework with built-in encryption
  • Cloud data is encrypted in transit (TLS 1.3) and at rest (AES-256)
  • Device-level security protects your data (iOS Keychain for sensitive credentials)
  • Firestore security rules ensure you can only access your own data

Data Isolation

  • All your data is stored under your unique user ID in Firestore
  • Other users cannot access your teams, games, or statistics
  • There is no shared or public data in PuckMetrix

Your Rights and Controls

Access and Control

You have complete control over your data:

  • View Your Data: All data is accessible within the app (Games, Stats, History)
  • Export Your Data: Generate PDF reports of your game statistics
  • Delete Specific Data: Delete individual games, teams, or players
  • Delete All Data: Delete your account to remove all data from our servers

Account Deletion

To delete your account and all associated data:

  1. Open the app and go to Settings
  2. Tap "Delete Account"
  3. Confirm deletion
  4. Your account and all associated data will be permanently deleted from both your device and our servers

Important: Account deletion is immediate and cannot be undone. Make sure to export any data you want to keep before deleting your account.

Subscription Management

You have full control over your subscriptions:

  • View Subscription Status: Check your current subscription tier in Settings
  • Cancel Subscription: iOS Settings → Your Name → Subscriptions → PuckMetrix → Cancel Subscription
  • Manage Billing: All subscription billing is managed through your Apple ID in iOS Settings
  • Restore Purchases: Use the "Restore Purchases" button in the app if you've reinstalled or switched devices

Free Tier Limitations:

  • • 5 games maximum
  • • 1 favorite team
  • • 1 season
  • • Local storage only (no cloud sync)

Premium Features:

  • • Unlimited games, teams, and seasons
  • • Cloud sync across all devices
  • • Tournament tracking
  • • All future premium features

Important: Subscriptions are managed by Apple, not by PuckMetrix. To cancel, you must use iOS Settings. Deleting the app does not cancel your subscription.

Revoking Permissions

You can revoke permissions at any time:

  • Microphone Access: iOS Settings → PuckMetrix → Microphone → Off
  • Analytics: iOS Settings → Privacy & Security → Analytics & Improvements → Share iPhone Analytics (toggle off)

California Privacy Rights (CCPA)

If you are a California resident, you have the right to:

  • Know: What personal information we collect (see "Information We Collect" above)
  • Delete: Request deletion of your personal information (use "Delete Account" in Settings)
  • Opt-Out: We do not sell personal information, so there's nothing to opt out of
  • Non-Discrimination: We do not discriminate based on privacy choices

European Privacy Rights (GDPR)

If you are in the European Economic Area:

  • Access: View all your data within the app
  • Rectification: Edit your information in the app
  • Erasure: Delete your account and all data
  • Data Portability: Export your game data as PDF reports
  • Withdraw Consent: Revoke permissions at any time

Legal Basis for Processing:

  • • Account data: Consent (when you sign in)
  • • Game data: Contractual necessity (to provide the service)
  • • Analytics: Legitimate interest (app improvement)

Children's Privacy

PuckMetrix is designed for hockey coaches, parents, and enthusiasts of all ages. We do not knowingly collect personal information from children under 13 without parental consent. If you believe a child has provided us with personal information without parental consent, please contact us so we can delete it.

Note: Player names and jersey numbers entered in the app are provided by the user (typically a coach or parent) and are not collected directly from children.

Data Retention

  • Active Users: Data is retained as long as your account is active
  • Deleted Games: Permanently removed from device and cloud when you delete them
  • Account Deletion: All data permanently deleted from our servers within 30 days
  • App Uninstall: Local data is removed; cloud data remains until you delete your account

Changes to This Privacy Policy

We may update this Privacy Policy from time to time. We will notify you of any changes by:

  • • Updating the "Last Updated" date at the top of this policy
  • • Posting a notice in the app when significant changes occur
  • • Requiring you to accept updated terms for material changes

Your continued use of the app after changes indicates your acceptance of the updated policy.

International Users

PuckMetrix is available worldwide. Your data is stored in Google Cloud data centers, which may be located in various regions. Google complies with international data transfer requirements including EU-US Data Privacy Framework.

Transparency Commitment

We believe in radical transparency:

Contact Information

If you have questions about this Privacy Policy or your data:

Developer: Steve Tannock

Email: steve@codegnostic.ca

Bluesky: @tannock.net

Response Time: We aim to respond within 7 business days

Your privacy is not negotiable. If you have concerns, please contact us.