How the ranking is calculated
One number decides the order: what a click on the #1 spot costs you. Here is the arithmetic, and the real listings every figure came from.
Worked examples use the boards' own public data, captured 2026-08-25 22:42 UTC and 2026-08-26 08:36 UTC. Nothing on this page is invented — every figure below can be re-derived from the numbers shown next to it.
01 The one number
Every board in the ranking is sorted by cost per click — the price of taking the top spot, divided by the clicks that spot sends in a day.
Most boards already print a cost per click next to each listing. We don't use it, because it answers the wrong question. A board divides a listing's lifetime spend by its lifetime clicks — a summary of what somebody else already paid, dragged down by clicks the listing earned weeks ago at a rank it no longer holds. A buyer needs the opposite: what the next dollar buys, at today's price, at the rank they'd actually be taking.
So both inputs are measured forward. The price is what it costs you, right now. The click rate is measured from the listing currently sitting in the spot.
02 What the spot costs you
These boards are auctions. The figure a board displays beside #1 is the current top bid — what the holder paid. It is not a price tag. To take the spot you have to beat it, so the price that matters is the top bid plus the board's minimum raise.
price = $105 + $1 = $106 The $1 gaps down the ladder are the minimum raise made visible — every bidder beat the one below by exactly the smallest legal step.
The raise is each board's own increment. It is $1 on nearly every .lol board; justvibe.lol prices in cents, so its raise is $0.01. Boards that sell at a fixed price rather than by auction — elite-club.lol's €1,000 slot, snipehour.lol's $1 votes — have no raise to add, so their listed price is used unchanged.
03 What the spot delivers
The second input is the click rate of the spot itself: how many clicks the #1 listing is currently pulling per 24 hours. Boards publish a lifetime click count per listing, and the timestamp at which the current holder took the spot. Those two give a rate.
clicks/day = 74 ÷ 37.2 × 24 = 47.7
The same measurement on launchwars.lol, where the #1 listing had taken 13 clicks in the 14 hours it had held the spot, gives 13 ÷ 14.0 × 24 = 22.3 clicks/day. Boards report clicks over wildly different lifetimes — one listing has been up for two hours, another for five days — so every board is normalised to the same 24-hour window. That normalisation is the only reason a $17 board and a $14,000 board can appear in one list.
04 When the #1 spot is too young
Dividing by hours breaks when there are barely any hours. A handful of clicks collected over a short window is mostly noise, and multiplying that noise up to a daily rate produces nonsense.
Both listings took exactly nine clicks. One took them inside a thirty-one-minute window, the other across ten hours — and dividing by the window turns the same nine clicks into 420 clicks a day or 21.8. The short window isn't describing a faster listing. It isn't describing anything yet.
A freshly-taken #1 has the same problem: a spot that changed hands half an hour ago gives you almost nothing to divide by. So there is a rule: if the #1 spot changed hands less than six hours ago, its own rate is discarded and the board is scored on the median click rate of its top listings instead. Median, not mean, because a single viral listing would otherwise drag the whole board's figure up.
clicks/day = median( rate of top 3 listings ) = 161.0 Whenever this fallback is used, the board's row on the ranking says so — "median of top 3 — #1 only 2h old" — rather than presenting it as a direct reading.
Every board row states which listings its click rate was measured from. If it says #1 listing, 37h old the number is a direct reading; if it says median of top 4 the fallback was in force.
05 Putting it together
Price divided by click rate, for every board that has both. That quotient is the ranking.
| Board | Top bid | You pay | Clicks/day at #1 | Cost per click |
|---|---|---|---|---|
| toolcup.lol | $17 | $18 | 39.0 | $0.46 |
| launchwars.lol | $17 | $18 | 22.3 | $0.81 |
| vibewar.lol | $105 | $106 | 95.4 | $1.11 |
| bidtree.lol | $80 | $81 | 47.7 | $1.70 |
| topapp.lol | $200 | $201 | 98.3 | $2.04 |
The first two rows are the reason this site exists. toolcup.lol and launchwars.lol cost exactly the same — $18 to take #1 on either — and one of them sends you 75% more traffic for it. Nothing on either board tells you that. You only see it once both are reduced to the same unit.
Note also that the cheapest board is not the cheapest traffic. topapp.lol is eleven times the price of toolcup.lol and sends 2.5× the clicks, which makes it 4.4× worse per click — but it is also the only one of the two that can deliver a hundred clicks a day at all. Cost per click ranks efficiency, not reach.
06 Hold time
Cost per click is a rate. It says nothing about how long you get to collect at that rate before somebody outbids you. So each board also carries a hold time: the median hours the #1 spot survives before it changes hands, read from the board's own bid history.
| Board | Cost per click | Median #1 hold | Clicks at #1 before outbid |
|---|---|---|---|
| bidtree.lol | $1.70 | 5.7h | ≈ 11 |
| vibewar.lol | $1.11 | 0.5h | ≈ 2 |
On paper vibewar.lol is the better buy. In practice its top spot turns over every thirty minutes, so $106 buys about two clicks at #1 before someone takes it back — while bidtree's slower board lets $81 collect for the better part of six hours.
On most of these boards a bid is cumulative lifetime spend, not rent. Being outbid drops you a rank; it doesn't remove you. You keep the listing, and it keeps earning clicks at the lower rank, indefinitely.
So hold time bounds only the clicks you get at the top. It is shown as a separate figure rather than folded into the cost per click, because how much a lower rank is worth to you depends on the board — and on the few boards that rent the slot instead, it is worth nothing.
07 #1, top 5, top 10, top 20
The ranking can be re-sorted for a cheaper position than the top: the price to reach the top 5, top 10 or top 20 instead of #1. The method is identical at every rank — price to reach that rank ÷ clicks that rank delivers per 24h — because a rank is just a different spot on the same ladder.
08 Why a board isn't ranked
A board needs a price and a click rate to get a cost per click. Boards missing either are still listed — they're real places to advertise — but they sit below the ranking without a number, rather than being given an estimated one.
Two flags on boards that are ranked
Some boards get a number but shouldn't win on it, so the "best value" highlight skips them and goes to the cheapest board whose sample can carry the claim:
- thin — the board is hours old, or has a handful of listings and a few dozen clicks. justvibe.lol's $0.03 per click is arithmetically true and rests on 22 clicks across 2 listings. It is real, and it is not evidence.
- stale — the last successful read is old. outbid.lol blocks automated traffic, so its figures come from a snapshot rather than a live poll, and the row is dated.
09 What we know is wrong with it
The click rate is the weak input, and it is weak in a known direction. Lifetime clicks divided by time on the spot assumes a listing's clicks were all earned at its current rank and at a steady pace. Neither is quite true.
The rate is measured against itself
vibewar.lol's #1 listing was watched directly for nine and a half hours, during which it never moved off the top spot. Its clicks can be counted rather than inferred:
The published figure is roughly 1.9× the observed one. A listing tends to earn its clicks fastest right after it takes the top spot, and the lifetime average carries that early burst forward forever. So on boards where #1 has held for a while, the published click rate reads high — which makes the cost per click read low. Treat the ranking as ordering boards correctly and the absolute figures as optimistic.
The other limits, stated plainly
- Only #1 is trustworthy this way. A lower-ranked listing has usually held several ranks over its life, and its lifetime clicks include everything it earned higher up. On a cross-check the two methods agreed closely for #1 and diverged by up to 10× further down. That is why the ranking prices the top spot and not an average one.
- Young boards prove nothing. A board a day old with two listings produces a cost per click, and it is nearly meaningless. Those boards carry the thin flag and can't take the best-value slot.
- Snapshots aren't live. Boards are polled every 30 minutes, so a figure can be up to half an hour behind, and a board that blocks scrapers can be days behind.
- Price models differ. A cumulative-lifetime-spend board and a flat rental board are compared on the same axis even though what your money buys afterwards is different.
What replaces it
Method b above is the destination. The poller already stores a listing row whenever its rank, bid or click count moves — which guarantees the rank is unchanged between any two consecutive rows, and that is exactly what lets a click delta be attributed to the rank that earned it. Once enough history has accumulated per board, the click rate becomes a measured delta at a known rank instead of a lifetime average, and the six-hour fallback in section 4 stops being necessary. This page will be updated when it switches, and the change will be noted rather than made quietly.
10 Where the data comes from
All of it is public. No board owner opts in, no tracking pixel is installed, and nothing here depends on private analytics — these boards publish their prices and their click counts on the page, because that transparency is the product they're selling.
- Public JSON endpoints — most boards ship an unauthenticated API carrying bids, clicks and timestamps per listing: bidtree, vibewar, topapp, topwar, madeforbid, siliconjungle, launchwars, snipehour, buyrank.
- Server-rendered HTML — no API, so the listing data is parsed out of the markup: toolcup, justvibe, elite-club, outlike.
- Headless browser — outbid.lol sits behind a challenge that rejects plain HTTP requests, so it is rendered in headless Chrome and the rows are read from the DOM.
Boards are polled every 30 minutes. outbid.lol is polled hourly instead: it signalled that it doesn't want automated traffic, and since its top bid runs into the thousands and moves slowly, the lower cadence costs almost nothing in accuracy. A poll that returns nothing is recorded as a failure — never as a zero — so a broken scraper shows up as a stale board rather than a board that suddenly looks cheap.
A listing row is written only when its rank, bid or click count changes, which keeps the history compact and, more importantly, keeps rank constant between consecutive rows. Boards submitted by readers are probed automatically; if their data can be read, they're polled by a generic adapter and join the ranking once there's enough history to measure a click rate.
Found a board that's missing, or a number that looks wrong? Both are worth hearing about — the whole point of publishing the arithmetic is that it can be checked.
← back to the ranking