Skip to main content

How The Stumble Picks What You See

The rotation rules in full: what is weighted, what is deliberately not, and the specific thing that can never enter the calculation.

Current implementation: The live directory and Stumble use approved, public listings. The checking and correction procedures below are editorial responsibilities. Editors must unpublish stale, disputed, closed, or removal-requested entries; no automated check-log, scheduled recheck, or downloadable export is claimed. Contact uses the contact form, which asks for a reply email and needs no login. The current discovery rules describe the implemented draw.

Two questions decide whether a discovery tool is worth anyone's attention. What is in the pool it draws from, and how one thing gets pulled out of that pool. Everything else is decoration on those two answers.

Both answers are below, written out before the surface opens rather than after the habit has formed. The short version: the pool is small and hard to get into, and the draw is deliberately stupid.

What this is, and who it is for

This is the prose companion to the rotation rules, which is the specification. Nothing here overrides that page. If the two ever disagree, that page is correct and this one is a bug.

It is written for two readers. The first wants to know whether the thing handing them a link has a stake in which link it hands them. The second runs a small business and wants to know whether there is any lever available to make the tool show their entry more often.

Scope first: this is the complete selection specification, not a report about a deployed populated surface. The register defines the eligible-record schema, and no illustrative link is treated as a real draw.

The candidate pool: what is eligible at all

The interesting work happens here, not in the draw. An entry has to survive four filters before it is eligible to be handed to a stranger.

It has to be a published entry in the register. That means it has already cleared every criterion of the bar every candidate cleared first: a real thing a person can buy, use, hire, read or visit; independently owned as a checked fact; not primarily an advertising, affiliate, dropship or lead-generation vehicle; examined by a named reviewer who can describe it in our own words; passed a dated liveness check by the published method. Nothing enters the pool by being submitted, by being interesting, or by being noticed.

It has to be inside the staleness threshold. A check is a claim with an expiry date. Past that expiry the entry stays visible in the register carrying its flag, because hiding it would be a silent claim, but it drops out of the rotation. The distinction is about who asked. The register is something you chose to browse with the flag in front of you. The stumble is something we hand you unasked, and we should not hand you an entry we are no longer confident about.

It must not be tombstoned. Entries confirmed no longer trading move to the record of businesses that have gone and never return to the rotation.

It must not have an open correction or removal request. Either one suspends the entry from the rotation until it is resolved. A pending question about an entry is a reason to stop showing it to people, not a reason to keep showing it while we think.

Entry stateIn the registerIn the rotation
Published, check inside thresholdYesYes
Published, check past thresholdYes, flaggedNo
Open correction or removal requestYes, until resolvedNo, suspended
Confirmed no longer tradingAs a tombstoneNo, permanently
Owned by this publisherNeverNever

What is weighted, and why

Nothing is weighted. That is the entire content of this section, and it is a section because most discovery tools have a real one here and readers are entitled to check whether we do.

The draw is a uniform random selection from the eligible pool. Every eligible entry has the same chance as every other eligible entry on every draw. There is no scoring pass, no ordering, no shortlist, no tier, no boost, no dampening and no tie-break, because there is nothing to tie.

The reason is not that weighting is wicked. Weighting is how most useful software works. The reason is narrower and it is about what a weighting turns into over time. Any weighting is a judgement about which businesses deserve more attention than others. The moment that judgement exists inside a tool, it becomes a scarce position. A scarce position has a price whether or not anybody at the time intends to charge one, and the person who eventually charges for it will not be the person who built it.

Keeping the draw dumb is what lets the curation stay honest. Every decision that matters was already made upstream, by a person applying a published bar to a specific business, with their name against it. There is nothing left for the draw to improve on. This is the argument why random alone isn't enough develops properly.

What is deliberately not weighted

Each of these would be a defensible product decision somewhere else. None of them is implemented here.

  • Recency. A newly published entry is not shown more than an older one. Nothing is a "new arrival".
  • Popularity or click behaviour. The draw does not know what anyone clicked. There is no feedback loop from reader behaviour into selection.
  • Category. No category is over- or under-represented on purpose, and no category is boosted because it is underfilled.
  • Entry age or check age. Inside the staleness threshold, a check from last week and a check from last quarter count the same.
  • Business size, location or type. Nothing about the business itself enters the calculation.
  • How the entry arrived. An entry we found ourselves and an entry submitted through the submission route are indistinguishable to the draw.
  • Anything about the operator's conduct towards us. Answering our emails quickly, sharing our work, or being pleasant has no effect. Neither does the reverse.

What can never enter the calculation

Five things are excluded structurally rather than by policy, and the difference matters because a policy is a sentence in a document that a future editor can rewrite in an afternoon.

  • Money, in any form. No paid inclusion, no paid position, no sponsorship, no boost, no priority, no featured slot.
  • Any relationship between us and the business beyond the entry itself.
  • Anything owned by this publisher, which is excluded from the register outright by a published rule in our entry bar.
  • Any profile of you, inferred or supplied.
  • Any rating, score, tier or quality judgement, because none of those exists anywhere on this site.

The structural part: the record schema has no field that could carry a rating, a rank, a tier, a sponsorship or a paid placement, and the build rejects those field names outright. A future editor cannot quietly add a featured flag and have the site publish. That is not the same as being impossible to circumvent, and it will not be described that way here. Why a paid placement is impossible here sets out the mechanism in full, including what it does not protect against and who could get round it.

The commercial position behind all of this is on who pays for this site, which lists every revenue model the category runs on and states which of them are in use. Currently the answer is none of them.

How repetition is avoided without tracking you

A uniform draw over a pool will hand you the same entry twice sooner or later, and a tool that does that quickly becomes irritating. So the surface keeps track of what it has already shown you within a single browsing session and avoids repeating itself.

That list lives in your own browser. It is not sent to us, it is not associated with any identifier, no identifier is assigned to you, and it is discarded when the session ends. Close the tab and it is gone.

It is worth being precise about what this is not. It is not a profile, it does not accumulate across visits, it does not influence which entry is drawn from the eligible pool, and nothing about it reaches a server. The draw itself takes no reader input at all. Two people stumbling at the same moment are running the same uniform draw over the same pool.

This is the only reader-side state the surface keeps, and it exists to stop the tool being annoying rather than to learn anything. The complete list of what the site stores in a browser is at the cookie policy, and if that list ever grows, that page changes at the same time rather than afterwards.

Two consequences follow honestly from this design. If you clear your browser storage mid-session, the surface may repeat itself, and there is no mechanism by which it could know. If you use the surface on two devices, it has no idea those are the same person, which is the intended outcome rather than a limitation we plan to fix.

What happens when an entry goes stale mid-rotation

Entries do not sit still. A business moves, closes, rebrands, or quietly stops selling the thing we described, and our check dates age the whole time.

The staleness threshold varies by entry type, because a shop's details decay considerably faster than a software product's. The specific values live in the field dictionary at the agent contract, so that a machine reading the register can act on them rather than guess.

When an entry crosses its threshold it stops being eligible at the next draw. It does not disappear from the register, it is not tombstoned, and nothing about the business has been asserted. It simply stops being handed to strangers until someone has looked at it again. When the re-check passes, it becomes eligible again with a new date.

The same immediate suspension applies to an open correction or removal request, and it applies from the moment the report is logged rather than from the moment we agree with it. A report is not a confirmation, but it is a good enough reason to stop showing something unasked.

None of this catches everything. A business can close the day after a passing check and the entry stays eligible until the next one fails. That gap is a real property of the design rather than an oversight, and what to do when one is broken covers what happens when you hit one.

How you would notice if any of this changed

A rules page is only worth reading if you could tell when the software stopped matching it. These are the tells, listed here on purpose so they can be used against us.

What you would seeWhat it would mean
A "featured", "sponsored", "promoted" or "partner" label anywhere in the surfaceA commercial signal has entered a system built to have no field for one
A rating, score, star or tier on any recordThe schema rule has been relaxed, and the rating is the thing that becomes saleable
An entry appearing far more often than chance would explainThe draw is no longer uniform
Publisher-owned properties appearing without a clear disclosure or receiving preferential selectionThe ownership-disclosure or equal-treatment rule has been broken
An interstitial, countdown or redirect between the click and the destinationThe outbound link has stopped being a plain link
A "recommended for you", "because you liked" or any personalised framingReader state has moved from your browser to a server

Any of those means these rules changed without this page and the rules page changing first. That is the observable failure, and it is reportable at corrections like any other factual error on the site.

In Plain English

What it means. Getting into the pool is hard and involves a person. Getting picked out of the pool is a coin toss. Nothing about money, popularity, or you affects which entry you see.

Who it helps. Anyone deciding whether to trust a link a tool handed them, and any operator wondering whether there is a lever to pull. There is not.

When to use it. Read it before the first time you use the surface, and again if you ever see one of the tells in the table above.

What to do next. Read the rotation rules if you want the specification rather than the explanation, and our entry bar if you want to know what an entry had to survive to be in the pool at all.

Questions about the rotation

Could you not just weight it slightly, to surface newer entries?

We could, and it would probably make the tool feel better for a while. The cost is that a "newer entry" slot then exists, and slots get sold eventually. A uniform draw has no slots in it.

Will there ever be filters or categories in the stumble?

Possibly, as a way of narrowing the eligible pool before the draw. What will not appear is an ordering within the pool, because the ordering is the part that becomes saleable.

Can a business ask to stay in the register but be left out of the rotation?

Yes, at corrections. Being findable and being handed to strangers at random are different things, and it is reasonable to want the first without the second.

Why publish the rules before the surface exists?

Because publishing them afterwards means publishing them once people are already using the thing, and a rules page written to describe software that already shipped is a description rather than a commitment.

Try the stumble

The stumble publishes the selection protocol without claiming a live service. Seeded links that did not clear the bar cannot count as eligible records or test evidence.