The front end is nine questions. This is the machine underneath: the directory it reads, the offers it can route to, the organisations we can actually reach, and how a person becomes an invitation somebody has to answer.
Five steps. Every one runs on data that already exists — nothing here is waiting on a partner signing something.
Nine concrete choices score nine preference dimensions. Percentile-normed against a reference distribution, so a score means a position, not a raw total.
Confidence-weighted cosine against eight scene profiles, in raw vector space. Tested by archetype recovery: the person who genuinely is each scene gets assigned it, 8 of 8.
Their town resolves to one of 2,196 basins clustered at 25 km. 98 can assemble a full day — somewhere to sail, something to see, somewhere to eat.
Constraint satisfaction first — scene, then a hard safety gate — then rank the feasible set by expected fill, not by compatibility.
An email to an address we already hold. The host confirms, sets conditions and runs the safety brief. We never operate the boat.
World Sailing Day's own directory, gated for cultural sensitivity upstream before it reaches this product.
A harbour earns a card only if it can supply all three parts within one basin. Most cannot, and the product says so rather than pretending.
Every offer is one sentence: somebody has something spare, and here is why they would give it to a stranger. Take Sea Shanty Seat Drop — a pub with a live-music night holds back a seat and releases it late, because a half-empty room is worse for them than a stranger in it. Five plain facts per row: what you get, who has it, why they would agree, how it reaches you, and whether it spoils.
They are not all the same kind of thing, and calling them all "offers" is what made this read as mush:
Charters, brokers and shipyards are reachable — but their rows live in sibling World Sailing Day datasets, referenced here by count and never copied into this one. Five host types are reachable nowhere yet, and those are the real gaps.
Nine preference dimensions. This was on the consumer screen in the first build and stripped on instruction — correctly, because a nervous first-timer does not need to see a score. It belongs here, where the audience is someone deciding whether to trust the routing.
A perishable slot is worth nothing once it expires, so the objective is expected fill rather than best match. Compatibility is one of the four terms, not the answer.
EV = P(attendance) × P(acceptable experience) × urgency × strategic value
Every way to sail cheap or free, in one place. Trawled from the live web by three agents, then every URL checked by us — because an agent saying it visited a page is a claim, not evidence.
The result screen has changed five times. Each is still live at its own immutable URL. Amber marks a change that was made without being asked for.
How the three kinds are assigned:
Prototype. The offers are drafted, not agreed — no club has committed to anything. Organisation counts, contact counts, harbours, links and deals are all real.