BullsRank Research Methodology · v2.0

Every number can be traced to a source, a date, and a method.

This page is the full method behind BullsRank — with live counts from the working system.

Last updated 24 AUG 2026 · Changelog → · About BullsRank →
Status pipeline
01 · Sourced
1196
claims sourced

A primary document is attached with the date we last checked the claim against it.

02 · Verified
191
verified

Read in the source that decides it, with the date it was read.

03 · Tested
0
tested — opens the score

We measured it ourselves and published the tx hash.

One direction only. Facts never skip a stage.

Claimed the statement and the page it came from, with the date we read itVerified read in the source that decides it — the operator’s binding terms for its own rules, an independent register for who it is and who licenses itTested measured by us, published with its tx hashGap no source at all — shown as a gap, never filled with a guess
Field set

Field set

Every operator profile leads with the same four counts, in two lines. They measure different things and are never parts of one sum — this is exactly what the profile renders:

Core fields X of 7 on file·Tracked fields Y of 32 on file
N sourced facts·M on tracked fields·K beyond the tracked set

X, Y, N, M, K are each operator's own counts. The last segment shows only when K > 0.

Core fields — of 7
the seven fields worth knowing before the rest of a profile means much (listed below). A gap here is not the same as a gap anywhere else, so they are counted on their own.
Tracked fields — of 32
coverage: how many of the fixed 32-field list we hold on file, each with a source and a check date. It counts fields, not rows, and can never exceed 32.
N sourced facts
the lead number, and the order of the catalog — the total volume of sourced rows on file. A field can hold more than one row, so this is not the same as coverage.
on tracked fields · beyond the tracked set
the same sourced rows split in two: those that land on a tracked field, and those the list has no slot for.* Both carry sources and dates; they are rows, not fields, so they never fold into coverage.

The 32-field list is fixed in advance and published below, so coverage means the same thing for every operator — the denominator is settled before the counting starts, never stretched to fit what a given site happens to publish.

A field we have not established is shown empty. We never fill one to make a profile look complete — an empty row is information too.

The set is versioned. When a field is added, every operator's coverage moves with it, and the change is recorded in the methodology changelog.

The 7 core fields and the 32 tracked fields

Core (7) — Licence, Legal name, Founded, KYC triggers, Supported coins, Minimum withdrawal, Provably fair

General (4) — Founded, Legal name, Licence, KYC triggers

Payments (12) — Supported coins, Deposit methods, Withdrawal methods, Deposit fees, Withdrawal fees, Minimum deposit, Minimum withdrawal, Withdrawal limit, Max-win cap, Stated pending time, Stated withdrawal time, Weekend cashouts

Games (4) — Game providers, RTP audit, RNG certification, Provably fair

Responsible gambling (9) — Deposit limits, Wagering limits, Loss limits, Session-time limits, Self-exclusion, Cool-off periods, Reality checks, Self-assessment test, Withdrawal lock

Support (3) — Support channels, Support languages, FAQ / help centre

* “beyond the tracked set” shows on a profile only when we hold sourced facts this list has no slot for — governing law, dormancy terms, complaint deadlines, and the like. It is a row count, reported separately so those facts are neither folded into coverage nor discarded; on profiles with none, the line simply does not appear.

Licence validity

The register's dates are a compliance-assessment period, not a licence expiry

A regulator's licence record carries two dates that read like “issued” and “expires” — but in the Curaçao register (ed. 20260729) they are not the licence's validity. They bound a fixed six-month compliance-assessment window:every one of the 418 dated rows spans exactly six months, day-for-day, and the 193 rows with no end date carry the status “Indefinite”. A window that has closed means an assessment cycle has ended, not that the licence lapsed.

So a licence is treated as expired only when the register's own status word says “Expired” — the register keeps a distinct “Expired” status for that (32 rows in this edition), and we never infer it from a date. The LICENSE row shows the dates labelled for what they are — compliance-review period {issued}{end} — alongside the register's status quoted verbatim. We never translate a closed window into a verdict the register never issued.

Anatomy of one fact

One licence claim, from the operator's terms to a monitored badge

This exact fact is live on the Cloudbet profile
01 · Operator states
“…operates under licence OGL/2024/328/0599.”
Claimed checked 2026-07-24
02 · Primary source
cert.cga.cw
OGL/2024/328/0599
status active · holder matches entity
Regulator register
03 · Read against the register
✓ auto-check passed
record match · holder match · status active
Verified · 2026-07-24
04 · Becomes a badge
OGL/2024/328/0599
Verified
Source cert.cga.cw · checked 2026-07-24
05 · Stays watched
last read 2026-07-24
re-read when we can reach the source
register watched for change
A change reopens the gate
This exact fact is live on the Cloudbet profile →
BullsRank Score Formula

Five weighted components, published in full

Editorial score 0–100 · BullsRank Score Formula v1.0
Withdrawal speed30

Measured, median (on-chain verified)

0 of 6 payout tests — this is what unlocks the score
Licensing status25

Regulator registries, checked by source_url

collecting
T&C fairness20

Limits, max win, wagering — from claims

collecting
Complaint footprint15

Reddit / Trustpilot / CasinoGuru scans

collecting
Transparency10

Provably fair, ownership disclosure

collecting

No component can be bought. Sentiment is never a weight.

Reviews method

Player reviews sit outside the Score, and we do not label where they came from

  1. 01 Reviews never enter the BullsRank Score and never move an operator's place in the catalogue. They are a first-person record shown next to the facts, not weighed against them.
  2. 02 Operators may invite their own players to leave a review. We do not distinguish an invited reviewer from one who came on their own, and we do not tag reviews by origin — an invite link is indistinguishable from a shared profile link, and a match on time or IP is a guess, not a fact. We will not print a guess beside records that each carry a source and a date.
  3. 03 The defence against manipulation is built on behaviour, not origin: one vote per person, rate limits, the filtering of throwaway accounts, and manual moderation before a review appears. These measures firm up as review intake is built.

Popularity is never mixed into a safety rating.

Social method

We count mentions. We do not interpret them yet.

  • Redditcounted (archives + licensed API)
  • Trustpilot / Casino Gurucounted (snapshots)
  • Forums & blogscounted — open host map, grows from data
  • Google News / RSScounted (headlines & announcements)
  • YouTubecounted (videos & comments)
  • Xcounted — found via search, not a stream
  • On-chain walletscounted
  • Quoraexpansion queue
  • Own accountsplacements, not mentions — never counted as community voice; echoes are counted

Third-party complaint records (Casino Guru) are published verbatim — resolved · unresolved · open of N complaints on file, with a link to the snapshot. Any resolution rate we rank by internally is a Wilson 95% lower bound of resolved / (resolved + unresolved), open complaints excluded — never a public score.

Citation classifier

Machine-classified by a voting panel, measured against a hand-graded sample

To show the mix of what communities say — without inventing a sentiment number — a panel of three independent foreign-vendor models labels each mention into a reputation bucket, with an independent arbiter resolving disagreements and the accusatory calls. The label is data, not a score: it never enters any Score at any weight, and its accuracy is measured against a hand-graded sample the panel never sees, and the measurement is published with the version that produced it.

Organic +

A first-hand positive: paid out, fast withdrawal, recommends — with no promo attached.

Neutral

A genuine mention with no clear positive or negative valence.

Negative

A complaint — non-payment, frozen funds, KYC loop — matched by our complaint dictionary.

Sponsored

Promo / affiliate voice: bonus codes, referral links, “top-N” listicles, agency authors. Not a genuine opinion.

Spam / shilling

The same templated text repeated across threads.

  1. 01 Three foreign-vendor voters (OpenAI, Google, DeepSeek) + an independent Anthropic arbiter on any disagreement or accusatory call — no single model decides, and the arbiter is never shown which brand collected the row.
  2. 02 Precedence: spam > sponsored > negative > positive > neutral (promo and spam are never genuine signal).
  3. 03 Versioned (classifier_v1) and re-runnable; every label records the rules that fired.
  4. 04 Quora is in the expansion queue — nothing from it is counted yet. Telegram joins once its public-channel list is active.

Hand-graded sample · 763 rows · holdout · 118 rows the panel never sees.

BucketSamplePrecisionStatus
Organic +not yet measurednot yet measured
Neutralnot yet measurednot yet measured
Negativenot yet measurednot yet measured
Sponsorednot yet measurednot yet measured
Spam / shillingnot yet measurednot yet measured

Accuracy is measured against a hand-graded holdout the panel never sees. Until a measurement is published here, bucket counts are shown as data with the version that produced them.

Bucket mix is context, published as counts. It does not enter any Score.

AI Visibility method

40 prompts × 4 engines, read by hand

Consumer surfaces are measured by hand — we don't automate what users see.

Today's baseline is a raw presence count — how often each operator is named. The weighted composite above is the Q4 2026 metric: the Q4 promise stands, refined — weights then, raw presence now.

The 40-prompt set is frozen and archived. We publish the question themes, never the exact wordings — that would let operators optimise for the measurement instead of for users.

See the July 2026 baseline →

Monitors
MonitorCadenceLast resultState
UptimeEvery 2h02:34 UTC · 122/124 OKRunning
T&C diffWeeklylast change caught 2026-09-01Running
Regulatory watchWeekly09:16 UTC · registry checkedRunning
Payout pulseno measurement taken yetStandby

Players' Choice: popularity, counted honestly

Players' Choice is a popularity signal and nothing more — it never enters a safety rating. Each signed-in player casts one vote per week, “for” an operator; the week runs Monday to Monday, UTC. An operator's number is the count of accepted votes over a rolling 90 days. A vote is final once cast and cannot be changed before Monday.

Anti-abuse runs the moment a vote lands. A burst of votes from one network within minutes is recorded as rejected, with its reason, and does not enter the count.

We keep only what anti-abuse needs — the age of the account and a hashed network prefix. The raw IP address is never stored. A player's votes are deleted together with their account.

Withdrawal flow

Observed on-chain outflows

For operators whose payout wallets we can attribute, we watch the rhythm of outgoing payments on-chain. An outflow is a transaction where an attributed wallet is the sender. We publish counts over rolling windows (24h · 7d · 30d), the median interval between outflows over 7 days, and the time of the last observed outflow — never balances, never amounts, never deposits.

01 · Official page
Operator-published address

The operator lists the wallet on its own site or proof-of-reserves page.

02 · Support confirmation
Confirmed by the operator

Support or an official channel confirmed the address to us, with a date.

03 · On-chain pattern
Behaviour-attributed

Clustering / withdrawal-test tracing links the wallet to the operator.

04 · Third party
Independent attribution

A named third party attributes it; we record the source and date.

Every attributed wallet carries a method, a source and a check date. A wallet with no recoverable source is unverified and never enters the public flow.

  • Known hot wallets only — operators rotate wallets, so coverage is non-exhaustive.
  • Absence of observed activity ≠ absence of payouts.
  • Observed from public chain data, deduplicated by transaction hash.

Withdrawal flow is observed activity — it does not enter any Score at any weight. It is context for future Tested payout measurements.

What we don't do

The limits are part of the method

  1. 01We don't bypass anti-bot protection — if a source blocks us, we say so.
  2. 02We don't sell positions, scores or removals.
  3. 03We don't publish uncalibrated sentiment.
  4. 04We don't copy other people's ratings — we link to them with dates.
  5. 05We don't let automation sign facts.
Why is no operator rated yet?
Withdrawal speed carries 30 of the 100 points and it is the one component we refuse to estimate. Until six independent payout tests clear for an operator, its score stays NR.
What happens when a verified fact changes?
The monitor that catches the change reopens the gate: the fact returns to pending, it is re-read in the source that decides it, and the check date updates. The old value stays in the record with its date.
Can an operator dispute a fact?
Yes. Correcting a factual error is free, for every company, forever. A disputed fact is re-checked against its primary source; if we were wrong, we fix it and note the correction. Positions and scores are never for sale.
Why keep a claim on the page once it is contradicted?
Because the contradiction is itself a fact. When two sources disagree we publish both, verbatim, with our neutral note — no verdict. Removing the record would hide the very thing a reader needs to see.
BullsRank. (2026). BullsRank Research Methodology v2.0. https://bullsrank.com/methodology, accessed 24 AUG 2026.
Changelogs

BullsRank Research Methodology · v2.0

  • 24 AUG 2026Research Methodology v2.0 published: status pipeline, anatomy of a fact, social method with a sources-evaluated register, and the monitor board — all wired to live counts.

BullsRank Score Formula · v1.0

  • 2026-07Score Formula v1.0 locked: five weighted components (30 / 25 / 20 / 15 / 10), published in full.