2026-11-13
Wrong-view customer photos: what we did
Alex flagged customer photos that should not be in the training data: pictures of a boat or an app screen instead of a sail, shots from behind or at the mast, fisheye shots, photos with no draft stripes, and sails that are not set. This page covers the photos, the training exclusion, the email to customers and the test email. No customer photos, names or email addresses are shown here because this site is public.
Result in one paragraph
14 photos are out of training, all of them photos Alex flagged by hand. Those photos belong to 11 customers, who are on the mailing list. The automatic sorter did not pass its check, so its guesses are not in the exclusion list and not in the mailing list. A test email is in Alex's inbox. Nothing has been sent to any customer.
Photos Alex flagged, by kind
A photo can have two kinds, so the rows add to more than 14.
| Kind | Photos |
|---|---|
| No draft stripes | 4 |
| Fisheye or ultra-wide | 3 |
| Taken from behind or outside the boat | 2 |
| Taken at the mast or off-centre | 2 |
| Wrong view (no more detail given) | 2 |
| Picture of a boat, not a sail | 1 |
| App screen, not a sail | 1 |
| Sail not set, flapping | 1 |
Of the 14, one is a photo from an internal account (the app's "calculating" screen), so it is out of training but its owner is not on the mailing list. The other 13 photos belong to 11 customers. Those 11 customers have 60 uploads between them, so 13 of 60.
None of the 14 had a human label, so none was in the last training export. The exclusion takes effect at the next training run. Nothing was deleted and nothing was removed from any test set.
The automatic sorter: did not pass
We asked Cloudflare's hosted vision model (clef) typed yes/no questions about every customer upload, 744 photos from 118 accounts (117 customers and one admin account). Before trusting it, it had to flag at least 12 of Alex's 14 and wrongly flag at most 3 of 30 photos Alex rated without complaint. The questions and thresholds were tuned on other photos first, then frozen.
| Check | Needed | Got |
|---|---|---|
| Alex's 14 flagged | at least 12 | 4 |
| Clean photos wrongly flagged | at most 3 | 5 of 30 |
It fails, so none of its flags are used. For reference only, on all 744 photos it would have flagged 201 photos from 74 accounts. We checked a sample of its not-a-sail and fisheye flags by eye and they looked right, but it misses most subtle cases such as wrong position and no stripes. Alex can decide whether to review its not-a-sail list by hand.
The email (draft for Alex)
Subject and body below. The steps use the app's own wording from its onboarding and Help guide. The two example photos are the app's onboarding photo ("like this") and one of Alex's own ultra-wide shots with a finger in the frame ("not like this").
``` Subject: Getting a better SailScan reading
Hi {first name},
Thanks for scanning with SailScan. A small change in how the photo is taken makes your numbers come out better. Here is how the app's own guide says to take it:
- Look up the sail. Lay your phone flat on the deck, screen facing up, and use the front camera. Shoot from about mid-foot, looking up toward the head, and get the whole sail in the frame.
- Stand on centerline. Shoot from the boat's centerline, from the same spot each time. That is what makes scans compare cleanly. Stay near the middle of the foot, because shooting from too far aft skews the draft measurement forward.
- Frame the bottom stripe. Get the bottom draft stripe fully in frame, plus a little of the boom at the bottom edge.
- Check the stripes before you shoot. The stripes should be sharp and easy to see. Check for glare, blur or a sail graphic hiding part of a stripe, and hold steady.
For jibs, lay the phone flat on the deck with the selfie camera, centered on the jib foot (not the foredeck).
Like this: looking straight up the sail, stripes curving across the photo. Not like this: an ultra-wide shot with a finger in the frame. An ultra-wide shot gives inaccurate metrics of the sail. (The two example photos are shown in the HTML version of this email.)
That is all. If anything here is unclear, just reply to this email and I will help.
Thanks again, Alex```
Things the app's guide does not say, so they are not in the email: that the sail should be set and drawing, that fisheye or ultra-wide lenses should be avoided, and not to stand at the mast. Alex can add any of these if he wants them in.
Test send
One test email went to alex@sailscanapp.com and Gmail accepted it. Nothing goes to customers until Alex has checked the test and says send.