A fish weight calculator built on species-specific scientific equations, with a catch log anglers keep coming back to.
Objective
Give anglers a trustworthy weight estimate without a scale, from the measurements they can actually take on a boat, and turn each catch into a record worth keeping.
The calculator. Pick a species, enter a length, and add a girth if you have one. The app can estimate girth when you do not.Three models side by side, with the uncertainty range on each. The honest answer is a range, so the app shows one.Catches and saved spots on the map. Every logged catch keeps its GPS position.
What it does
Weight estimates for 145 or more species from length alone, length and girth, or a hybrid model, each with its uncertainty range.
A girth estimator for when only a length was measured.
A catch log with GPS position, species, photos, notes and the estimate used.
Saved fishing spots with catch statistics, on a map.
Sync across iPhone and iPad through an AWS backend, with photos delivered by CDN.
Sign in with Apple, Google or email; subscriptions through the App Store.
Historical ICCAT catch data from 1950 onward, with charts, for research-minded users.
Anonymized data contributed by users to fisheries research, published at scalescience.net.
Design choices, and why
Show three models, not one number
A single weight hides how uncertain it is. The app computes a length-only, a length-girth and a hybrid estimate, charts them together and shows the range on each, then lets the angler choose which one goes into the log. People trust a number more when they can see where it came from.
Species-specific coefficients, checked against real fish
Every species has its own length-weight relationship. The coefficients come from FishBase and are validated against measured catches, so a bluefin and a striped bass are not forced through one generic curve.
Native sign-in and native payments
Sign in with Apple and Google, and StoreKit for subscriptions, because every extra screen between an angler and the calculator is a reason to put the phone away.
A dark interface
The app is used outdoors, often at dawn and dusk. A dark, high-contrast interface keeps the controls readable and the glare down.
A logged catch: photo, measurements and the estimate, synced to the cloud and back to every device.
Challenges and how we solved them
Subscribers lose signal offshore
Subscriptions are verified online, but paying users are most often out of range exactly when they need the app. The solution is a signed local cache of the subscription status, integrity-checked with SHA-256, that grants up to 14 days of offline use with staged warnings as it ages. The free tier stays online-only, so ads cannot be bypassed by switching on airplane mode.
Keeping two devices and the cloud in agreement
Catches, spots and photos edited on an iPhone must appear on the iPad and survive reinstalls. Local storage with SwiftData syncs through a GraphQL API on AWS Amplify, with photos stored in S3 and served through CloudFront, and the app degrades gracefully when the network drops mid-sync.
Girth is the measurement people skip
Girth improves the estimate most, and is measured least. Rather than refuse a calculation, the app estimates girth from length using a per-species ratio and says so on the record, so a later reader knows which numbers were measured and which were derived.
Where it stands
ScaleScience is on the App Store with a website, public data and a growing species database. It is the product that taught us how to run a cloud-backed consumer app end to end, from App Review to support mail.