moonshinerXwerks
  • About
  • Portfolio
  • Legal
  • Contact
← Back to FishON! Pro

FishON! Pro™ Privacy Policy

Effective: March 6, 2026 · moonshinerXwerks LLC · Version 2.1

1. Overview

FishON! Pro is built on a simple principle: your personal fishing data is yours. Your catch logs, location names, GPS coordinates, photos, and preferences never leave your device unless you explicitly export them. This policy explains the one area where data does leave your device — the optional, opt-in anonymous fisheries telemetry system — and exactly what that means for your privacy.

2. Data That Stays on Your Device — Always

The following data is stored locally in the FishON! Pro app and is never transmitted to any server, shared with any third party, or included in any telemetry dataset, under any circumstances:

  • Your name, email address, or any personal identity information
  • The names you assign to rivers, sections, and fishing locations
  • Precise GPS coordinates of your saved locations
  • Catch logs, trip reports, and field observations in their complete form
  • Photos attached to catches or trip reports
  • Your fishing preferences, ideal flow ranges, and target species settings
  • Your device ID, advertising ID, or any unique device identifier
  • iCloud sync data — synced only between your own Apple devices via your iCloud account

3. Optional Anonymous Telemetry — Opt-In Only

FishON! Pro includes an optional, opt-in system that contributes anonymous data to a fisheries research dataset. This system is disabled by default. You are asked to enable it during onboarding and can change your choice at any time in Settings → Privacy. If you do not opt in, no data of any kind is transmitted.

When enabled, the system operates three parallel data pipelines. Each pipeline is described in full below.

Reserved event types: The telemetry system defines two additional event types — conditionSnapshot and scoreViewed — that exist in the codebase but are not currently wired to any data transmission. No data is collected or transmitted for these event types. If these are activated in a future version, this policy will be updated accordingly.

3A. Anonymous Condition Telemetry

Collection: telemetry_batches

This pipeline captures anonymized snapshots of river conditions at the time of your section visits, catches, and trip reports. It answers the research question: what environmental conditions are associated with successful fishing outcomes?

What is captured:

  • A hashed, one-way section identifier — derived from river name, section index, and noisy rounded coordinates. Cannot be reversed to your section name.
  • River conditions at visit time: flow (CFS with ±8% random noise, minimum ±2 CFS), water temperature (±0.4°F noise), air temperature (±1.0°F noise)
  • Condition score (0–100) at time of visit
  • Catch outcome: species category (e.g. Salmon & Steelhead, Trout & Char) and general method (fly, spin, bait). Never the exact species name or lure.
  • Trip session data: fish count bucketed into ranges (0, 1–3, 4–10, 11+), session duration bucketed (under 2h, 2–4h, 4–8h, 8h+), quality rating (1–5)
  • Timestamp rounded to the nearest 15-minute window

What is never captured:

  • Your section name, river name, or any user-assigned label
  • Exact GPS coordinates — coordinates used to generate the section hash have ±0.003° noise applied first
  • Exact fish counts or precise session durations
  • Any user identity or device identifier

k-Anonymity enforcement: This pipeline only transmits data when a batch contains events from at least 10 distinct section identifiers. Your individual activity is never transmitted alone.

3B. Public Monitoring Station Visits

Collection: gauge_pressure

This pipeline records which federal monitoring stations are linked to sections you view. It answers the research question: which public monitoring infrastructure is in areas that anglers actively use?

What is captured:

  • The public station identifier — e.g. USGS gauge code '14103000', NDBC buoy ID '46029', NOAA tide station ID '9435380'. These are public federal infrastructure identifiers.
  • The station type: USGS river gauge, NOAA tide station, NDBC buoy, or Bureau of Reclamation
  • Date of visit (date only — no time component)
  • Time of day bucket: early morning, morning, midday, evening, or night
  • Day of week (1–7)
  • Current flow CFS at visit time — USGS gauges only. This is the same value publicly available at waterdata.usgs.gov at the same moment.
  • App version

What is never captured:

  • Which user visited the station — no user identity or device ID
  • Your section name or location name
  • Any data that could identify an individual angler

Privacy basis: Station codes are public federal infrastructure. Knowing that USGS gauge 14103000 receives angler app visits on Saturday mornings at 900–1100 CFS reveals nothing about any individual user.

3C. Geographic Grid Pressure

Collection: grid_pressure

This pipeline captures where along river corridors angling pressure and catch activity occurs, expressed as approximate geographic areas rather than precise coordinates. It enables seasonal pressure drift analysis — for example, tracking how angling pressure migrates upstream along a river corridor as a hatch progresses through the season.

How coordinates are protected:

Your GPS coordinates are rounded to the nearest 0.05 degree of latitude and longitude before any event object is created. This rounding happens on your device, in memory, before any data is prepared for transmission. The raw coordinate is discarded immediately. Only the rounded grid cell identifier is stored in the event.

At 45°N latitude, 0.05° corresponds to approximately 3.4 miles of latitude and 2.5 miles of longitude. Each grid cell covers roughly 10–15 square miles of river corridor.

What is captured:

  • Grid cell identifier — a string like '44.95_-121.10' representing the rounded coordinate. Cannot be reversed to a precise location.
  • Grid resolution marker: '0.05deg' — stored so historical data can be re-analyzed if resolution changes
  • Event type: section visit, catch logged, or trip logged
  • Date of visit (date only)
  • Time of day bucket and day of week
  • Species group (e.g. Salmon & Steelhead) — for catch and trip events only. Never the exact species name.
  • Catch outcome (yes/no) — for catch and trip events only
  • Fish count bucket (0, 1–3, 4–10, 11+) — for trip events only
  • Flow CFS rounded to nearest 10 — if available from conditions snapshot (already public USGS data)
  • Water temperature rounded to nearest whole degree °F — if available

What is never captured:

  • Precise GPS coordinates — raw coordinates never leave your device in any form
  • Your section or location name
  • Any user identity or device identifier
  • Exact fish counts or precise session times

No k-anonymity threshold applies to grid cells — a 10–15 square mile area inherently aggregates multiple anglers. Sparse cells simply produce low data density, which is itself useful information for fisheries managers.

4. What Is and Is Not Transmitted — Summary

Data ElementTransmitted?Notes
Your name or emailNeverStays on device always
Location names you createdNeverStays on device always
Precise GPS coordinatesNeverRounded to 0.05° (3–4 miles) before any event is built
Device or advertising IDNeverNo identifier of any kind is included
PhotosNeverStays on device always
Complete catch logsNeverOnly anonymous, bucketed summary signals
Exact species nameNeverTransmitted as broad group: Salmon & Steelhead
Exact fish countNeverBucketed: 0, 1–3, 4–10, 11+
Exact session durationNeverBucketed: <2h, 2–4h, 4–8h, 8h+
Hashed section identifierPipeline 1 onlyOne-way SHA-256 hash — cannot be reversed
Condition scores and flow dataPipeline 1 onlyWith ±8% noise (min ±2 CFS) applied
Air temperature at visit timePipeline 1 onlyWith ±1.0°F random noise applied
Public USGS/NOAA/NDBC station IDPipeline 2 onlyPublic federal infrastructure identifier
Flow at gauge visit timePipeline 2 onlySame value on waterdata.usgs.gov
0.05° grid cell identifierPipeline 3 only3–4 mile area, not a precise location
Time of day bucketAll pipelinesEarly morning / morning / midday / evening / night
Day of weekAll pipelines1–7 (no precise timestamp)
conditionSnapshot / scoreViewedReservedDefined in codebase but not currently transmitted

5. Data Storage and Security

Telemetry data is transmitted via HTTPS to a Firebase Firestore database operated by Google Cloud (us-central1 region). No third-party analytics SDK is used — only direct HTTPS POST calls to the Firestore REST API.

  • Data in transit: encrypted via TLS 1.2+
  • Data at rest: encrypted by Google Cloud Storage
  • Client access: write-only. No client application can read the telemetry database.
  • Buffering: events are held in device memory only. They are not written to disk. If the app closes before a batch transmits, buffered events are discarded.
  • No retry queue: events that fail to transmit are discarded, never persisted to storage.

6. Your Rights and Controls

You are in full control of whether any telemetry is collected.

  • Opt in: During onboarding, you are shown a clear explanation of what data is shared before being asked to consent. No data transmits until you tap Yes.
  • Opt out at any time: Settings → Privacy → Contribute to Fisheries Research. Toggle off to immediately stop all telemetry. Any buffered events are discarded at the moment consent is revoked.
  • Deletion rights: Because no user identity is ever included in transmissions, we cannot retrieve and delete your specific data from the aggregate dataset. This is by design — the anonymization architecture makes it technically infeasible to re-associate transmitted data with any individual user.
  • No sale of data: Your data is not sold. The anonymized fisheries dataset may be shared with or licensed to state fish and wildlife agencies, academic researchers, and conservation organizations for fisheries management purposes.

7. Children's Privacy

FishON! Pro is not directed at children under the age of 13. We do not knowingly collect any data from children under 13. The opt-in telemetry system does not collect any personal information from any user regardless of age.

8. Changes to This Policy

If we make material changes to what data is collected or how it is used, we will update the effective date of this policy and notify users via an in-app notice. Continued use of the app after notification constitutes acceptance of the updated policy.

9. Contact

Questions about this privacy policy or the FishON! Pro telemetry system:

moonshinerXwerks LLC
Email: john@moonshinerxwerks.com
Website: moonshinerxwerks.com

FishON! Pro™ · moonshinerXwerks LLC · Version 2.1 · March 6, 2026
This document supersedes the FishON! Pro Privacy Policy version 2.0 dated February 21, 2026.

moonshinerXwerks © 2026 moonshinerXwerks LLC. All rights reserved.