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.
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 appearancesSo 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.