Trust

Rotation algorithm

The rotation determines which active ads appear on the homepage grid at any moment. Equal share-of-voice for every advertiser. No bidding, no boosting, no surfacing-by-spend. The math is on this page.

Equal share-of-voice

Every active spot has the same probability of appearing in the grid on every shuffle. The 1st spot does not get more exposure than the 20th. The price is identical ($299/mo flat) so the exposure is identical.

No advertiser can pay to surface more often, jump the rotation, or buy a permanent slot. There is no premium tier and no boosting.

How a shuffle works

On mount, the homepage hero fetches the active listings pool from the marketplace. On a 10-second interval, the page picks a uniformly-random subset of size G from the pool of N active ads and renders that subset in a random visual order.

On every tick, every active ad has the same chance of being selected. The pool size and grid size are live values driven by the number of active advertisers and the grid layout — refer to the homepage hero for the current numbers.

The math

For grid size G drawn from an active pool of N:

P(any single ad appears on a given tick) = G / N

Expected appearances per ad per hour
  = (3600 / 10) × (G / N)
  = 360 × (G / N)

Expected appearances per ad per month
  = 360 × 24 × 30 × (G / N)
  = 259,200 × (G / N)

Worked example with N = 35, G = 15:

Per tick:   15 / 35 ≈ 0.4286
Per hour:   360 × (15 / 35) ≈ 154 appearances
Per month:  259,200 × (15 / 35) ≈ 111,086 appearances

So with 35 active ads and a 15-slot grid, every advertiser is shown roughly 154 times per hour and ~111K times per month — the same number for every spot.

Pseudocode

// Every 10s on the client:
function shuffle(pool, gridSize) {
  // Fisher–Yates, uniform over all permutations
  const a = [...pool]
  for (let i = a.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1))
    ;[a[i], a[j]] = [a[j], a[i]]
  }
  return a.slice(0, gridSize)
}

Same algorithm runs in the live grid. No tiering, no advertiser scoring.

What this rotation does NOT do

  • No advertiser tier weighting.
  • No recency boost for newly added ads.
  • No click-through-rate optimization.
  • No quality scoring or relevance reranking.
  • No manual reordering by Jorge.
  • No paid promotion within the marketplace.

Verifying it yourself

Open the homepage, watch a single advertiser's slot, and time how often it appears. Across a long enough sample (≥1h), every active advertiser converges to the same appearance rate.

If you see a divergence beyond statistical noise, message Jorge — he'll publish the discrepancy and fix it.