3 min read

A public tally with no accounts and no IDs, choom

Cozy Coast ships telemetry that counts events instead of chooms: opt in, no account, no device ID, and a public page as the whole readout. Here is what that costs.

Cozy Coast has a global tally. A set of counters shared by every angler who opted in, public at cozycoast.website/stats. Fish caught, chests cracked, seagulls greeted, trinkets forged.

There is no account behind it. No name, no device ID, no session token, nothing minted on first launch and kept. The game bumps counters. That is the entire data model, choom.

What that buys and what it costs

The straight way to describe privacy-preserving telemetry is as a trade, so here is the trade.

Questions it answers Questions it cannot touch
Is the rarity curve behaving? Seven exotics in 160,966 catches says yes. Retention. Nobody comes back, because nobody is anybody.
Which optional moves do chooms repeat? Cohorts. No way to group anything by anything.
Is a system reachable at all? A zero means the ICE never cracked. Funnels. No order of events, so no drop-off point.
Rough relative pull between systems. Whether ten chooms or ten thousand produced a count.
Counting events instead of chooms gives up most of a standard telemetry stack, and keeps the part I actually use.

The right-hand column is not small. Half the dashboard a corpo product team lives inside is dark to me. I cannot tell you day-seven retention for Cozy Coast because the data to compute it does not exist and never did.

I decided I could run without it, because I am one choom making a fishing game and the calls in front of me are balance calls. Is the exotic tier too rare. Does anyone bother foraging. Does anyone open the almanac. Counters answer all three, and counters are the cheapest possible thing to hold about a person.

Opt in, and the bias that rides with it

The tally is opt in rather than opt out. That is the version I would want as an angler, and it carries a real cost: the sample is self-selected. Chooms who tick a box to throw their catches into a shared total are not a random slice, and they are probably deeper in than average.

So every number is skewed by an unknown amount in a knowable direction. When I read the beta counts I read them as a floor rather than an average. That is a weaker claim than a proper sample would carry, and it is still enough to answer “is this tier reachable” or “does anyone touch this system”.

I would rather hold a biased number I can explain than a clean one I had to lift without asking.

Why the readout is a public web page

There is no internal dashboard. The stats page anyone can open is the same view I run on.

That started as laziness and hardened into a rule I like. If the only readout is public, nothing quietly piles up behind it. There is no second, fatter table I peek at with fields the page does not show, because the page is the table. An angler who wonders what I hold can go see all of it in about four seconds.

It also makes the counters part of the game rather than part of my tooling. Chooms watch the fish number climb. Strange thing to build a small crew around, and it works.

Where this sits in a bigger pattern

I keep landing on the same shape across different builds. Petrify scrubs people out of footage without jacking a single frame anywhere, because the footage you most want to strip is the footage you least want to send. The local versus cloud question in AI tooling is the same argument with different nouns.

The pattern is to ask what the minimum data is that answers the question in front of you, then hold only that. In a fishing game the answer came out at seven integers. Most products would find their number is smaller than they assume, and the reason it is not smaller is usually that no gonk was ever asked to justify a field.

The tally is at cozycoast.website/stats, and the game is on Steam for Windows and macOS. Preem.

Let's link up, choom.

Always down to trade notes, talk shop, or just ping. The net is the fastest way to reach me.

Ping me