DATA CATALOG · FIELDS · LICENCE
Our datasets, and what you can do with them
Everything we publish as data is listed here, with the thing a raw file cannot tell you: what one row is, which set of operators it covers, what each field means, what a null means, and what the dataset cannot answer. Pick the one that fits your question before you open a file.
All of it is CC BY 4.0. Use it, including commercially, with attribution and a link to the page you drew from. Do not present our figures as your own measurement. Figures recompute as evidence lands, so quote them as current as of your pull date. Need a cut we do not publish, or a number confirmed before you run it: the press and data desk answers those.
Bonus Bandit runs affiliate links. Trust Scores are computed mechanically from the published methodology and are not affiliate-weighted, so no operator can buy a better number here or in any file on this page. Read the disclosure.
This release, in one file
Every card below states its version. If you are writing a methods paragraph and want all of it at once, the release manifest carries the same answers in one machine-readable file: which release this is, each dataset's version, the scoring version behind the scored figures, the population each dataset covers, its known limits and corrections, and the citation and licence for each one.
/api/release-manifest.json application/json
Versions are major.minor.patch. Adding a field without breaking an existing consumer bumps the minor number, changing or removing a published field bumps the major, and correcting a value while the shape stays put bumps the patch. A value we cannot support is published as null with the reason beside it, never as a zero and never as a guess.
You will not find a checksum next to a link on this page, and that is deliberate. Everything here is rebuilt on every deploy, so a hash published beside a live endpoint would be wrong by the next one and would read as a guarantee we cannot keep. Checksums belong to something that does not move, which is a dated export. Each dated export we publish to our open-data repository from here on ships a manifest carrying a SHA-256 and a byte size for every file beside it, plus a citation file you can hand to a reference manager. Exports published before we started doing that carry their README and their data files only, so read the directory rather than assuming.
DATED RELEASE · 2026-08-10
Download the research snapshot
This directory does not move. It contains the operator-level payout-study aggregates, the complaint-index snapshot, a methods README, citation files, and a manifest with a SHA-256 and byte size for every file in the release. The payout export uses the same delivered, pending, failed, and incomplete record rules as the live study.
- Payout study by operator CSV
- Complaint index snapshot CSV
- Release manifest and checksums JSON
- Citation file CFF
- BibTeX citation BIB
- Methods and field notes MARKDOWN
These files are a fixed snapshot. The live study may be newer. Raw redemption rows, private notes, and evidence locations are not included. Bonus Bandit runs disclosed affiliate links, but Trust Scores are computed mechanically and are not affiliate-weighted.
What a null means
Null is not one thing, and reading it as zero is the mistake that ruins a chart. Every field below declares which of these apply to it.
unknown- We do not know the value. It is not zero, it is not absent, and it must not be summed, averaged or filled in as zero. Unknown is never zero.
withheld- We hold a value and are not publishing it, because publishing it would cross a privacy or publication floor (for example an operator below the review-base floor, whose ratio we deliberately never expose).
not-applicable- The field does not apply to this row. Nothing is missing and nothing is hidden.
measured-zero- Reserved. A measured zero is published as the number 0, never as null. Listed so the distinction is written down: if a field ever needs this meaning, it is a signal the field is encoding two things and should be split.
Trust Score leaderboard
Every operator carrying a published BonusBandit Trust Score, with its score, tier and rank. This is the same read the leaderboard page renders, so a figure pulled from the file and a figure read off the page cannot disagree in one build.
Get it
-
/api/trust-scores.jsonapplication/json JSON, rebuilt on every deploy -
/trust-score/text/html The rendered leaderboard
Fields
| Field | Type | Meaning | Null means |
|---|---|---|---|
generatedAt | date-time | When this file was built. It moves on every deploy and is not an evidence date. | never null |
source | url | The rendered page this projection is taken from. | never null |
methodology | url | How the score is computed, including factors, weights and gates. | never null |
license | string | The reuse terms, carried in-band so a stripped copy keeps them. Always CC BY 4.0. | never null |
attribution | string | The credit line a reuser owes, plus the as-of caveat. | never null |
disclosure | string | Our funding disclosure: affiliate-funded, not affiliate-weighted. | never null |
count | integer | How many operator objects the file carries. Read countPopulation before quoting it. | never null |
countPopulation | string | Which set of operators count counts, in the site metric registry's own words. | never null |
countDefinition | string | The predicate behind count and what it deliberately leaves out. | never null |
countAsOf | date-time | When the figures behind count were read. Null when that read was degraded, in which case treat the timing as unknown rather than as the build time. | unknown |
operators | array | The rows. One object per scored operator, ranked. | never null |
| Field | Type | Meaning | Null means |
|---|---|---|---|
slug | string | The stable operator key. This is the join column: it is the same slug in every BonusBandit URL and payload. | never null |
name | string | The operator's brand name as we publish it. | never null |
score | integer (points out of 100) | The published Trust Score, the same number the operator page prints. | never null |
tier | string | The score's band. Three values, and they are the words the site prints.
| never null |
rank | integer | Position on the leaderboard, 1 is highest. Ranks move whenever any score moves. | never null |
url | url | The operator's review page, where the evidence behind the score is shown. | never null |
badge | url | An embeddable SVG of the current score for that operator. | never null |
Cite it
Bonus Bandit. Trust Score leaderboard. bonusbandit.win. https://bonusbandit.win/trust-score/. Accessed [date]. Licensed CC BY 4.0.
Fill in the access date yourself. We deliberately do not print one: our build clock is not the date you read the file.
Corrections
- 2026-08-08 The machine-readable licence on our Dataset markup was corrected to the Creative Commons deed URL. Seven of the nine Dataset nodes had declared our About page or our methodology page in that field, neither of which grants anything. The terms themselves did not change: this data has been published under CC BY 4.0 since 2026-07-10.
Sweepstakes Casino Complaint Index
Public review sentiment across the operator catalog: each operator's review base, its share of one and two star reviews, the themes reviewers raised, and any active complaint penalty applied to its Trust Score. Bound to the same helper the page renders, so the file cannot show a ratio the page suppresses.
Get it
-
/api/complaint-index.jsonapplication/json JSON, rebuilt on every deploy -
/sweepstakes-complaint-index/text/html The rendered index
Fields
| Field | Type | Meaning | Null means |
|---|---|---|---|
generatedAt | date-time | When the index was computed for this build. | never null |
source | url | The rendered page this projection is taken from. | never null |
license | string | The reuse terms, carried in-band. Always CC BY 4.0. | never null |
attribution | string | The credit line, including how the negative share is defined. | never null |
floors | object | The two review-base floors: publishShare, below which no ratio is published, and rankedList, the higher floor a row must clear to enter the named cohort tables. | never null |
catalog | object | Coverage counts: operators listed, mined, carrying a Trustpilot row, publishable, below the floor, and never mined. | never null |
freshness | object | oldestCollectedAt and newestCollectedAt across the corpus. Either is null when the corpus is empty, which is unknown, not a date of zero. | never null |
reviews | object | totalReviewBase across publishable rows, and the median negative share. The median is null when nothing clears the floor. | never null |
operators | array | The rows. Publishable operators only, ordered by review base. | never null |
belowThreshold | array | Operators whose review base is under the publish floor. Named, with the base, and never with a ratio. | never null |
themes | object | The full theme vocabulary with reader labels and per-theme operator counts. Positive themes are kept separate from negative ones and are never folded into a complaint count. | never null |
penalties | object | Active complaint penalties: how many operators carry one, total points withheld, the deepest, and the per-operator list. | never null |
history | object | Penalty movement over a stated window: the window length, the number of events, and how many operators they touched. | never null |
| Field | Type | Meaning | Null means |
|---|---|---|---|
slug | string | The stable operator key, the join column shared with every other BonusBandit payload. | never null |
name | string | The operator's brand name as we publish it. | never null |
reviewBase | integer (reviews) | The size of the review population the share is computed over. Not a count of reviews in any period. | never null |
negativePct | number (percent, one decimal) | Share of the review base that is one or two stars. Published only for rows at or above the publish floor, which is why every row in this array has one. | never null |
themes | array | The themes reviewers raised, as {key, label} pairs. The key is the join token and the label is what it means. A key the vocabulary does not declare gets a null label and fails our build rather than shipping an unexplained token. | never null |
collectedAt | date-time | When this operator's review snapshot was collected. Per operator, not sitewide. | never null |
complaintPenalty | number (score points) | The penalty currently applied to this operator's Trust Score, as a negative number. Zero means no active penalty. | never null |
url | url | The operator's review page. | never null |
Cite it
Bonus Bandit. Sweepstakes Casino Complaint Index. bonusbandit.win. https://bonusbandit.win/sweepstakes-complaint-index/. Accessed [date]. Licensed CC BY 4.0.
Fill in the access date yourself. We deliberately do not print one: our build clock is not the date you read the file.
Corrections
- 2026-08-08 The machine-readable licence on our Dataset markup was corrected to the Creative Commons deed URL. Seven of the nine Dataset nodes had declared our About page or our methodology page in that field, neither of which grants anything. The terms themselves did not change: this data has been published under CC BY 4.0 since 2026-07-10.
- 2026-08-06 Theme values in this file shipped as bare machine tokens with no reader label, while the page next to it printed the labels. Themes are now {key, label} pairs. The key is unchanged, so anything matching on it still works.
Daily bonus drops feed
The free bonus drops observed in a recent rolling window, with the operator, the reward exactly as the source post stated it, and the link we send readers to. The same feed the sitewide drops widget and the daily bonus board render.
Get it
-
/api/bonus-drops.jsonapplication/json JSON, rebuilt on every deploy -
/daily-bonuses/text/html The rendered daily bonus board
Fields
| Field | Type | Meaning | Null means |
|---|---|---|---|
generatedAt | date-time | When this snapshot was built. | never null |
license | string | The reuse terms, carried in-band. Always CC BY 4.0. | never null |
date | date | The build date, in UTC, as a plain calendar date. | never null |
lastRefreshed | date-time | The most recent source post time across the returned drops. Null when no drops are included. Collecting a post again does not renew its age. | unknown |
windowHours | integer (hours) | How far back the selection window reaches. | never null |
count | integer | How many drop objects the file carries. A window count, never a catalog total. | never null |
board | url | The rendered board this feed backs. | never null |
drops | array | The rows. One object per observed drop, most recent first. | never null |
| Field | Type | Meaning | Null means |
|---|---|---|---|
operatorName | string | The operator's brand name as we publish it. | never null |
operatorSlug | string | The stable operator key, the join column shared with the other payloads. | never null |
rewardSummary | string | The reward exactly as the source post stated it. Null when the post stated no reward (unknown), and null when the stored text scrubbed to nothing because it carried internal vocabulary (withheld). Both cases are an honest absence: a consumer must not read null as a reward of zero. | unknown, withheld |
hasAffiliate | boolean | Whether the link on this row is a compensated referral. It says how the link is funded, not whether the operator is good. | never null |
postedAt | date-time | When the source post was published. Used to select drops within the 24-hour window. | unknown |
expiresAt | date-time | When the source post leaves this feed's 24-hour window. This is a freshness cutoff, not an operator-confirmed offer deadline. Consumers should hide the row after this time. | unknown |
url | url | The link we send readers to for this drop: the referral route when one is permitted, the operator's review page otherwise. | never null |
Cite it
Bonus Bandit. Daily bonus drops feed. bonusbandit.win. https://bonusbandit.win/daily-bonuses/. Accessed [date]. Licensed CC BY 4.0.
Fill in the access date yourself. We deliberately do not print one: our build clock is not the date you read the file.
Corrections
- 2026-08-08 The machine-readable licence on our Dataset markup was corrected to the Creative Commons deed URL. Seven of the nine Dataset nodes had declared our About page or our methodology page in that field, neither of which grants anything. The terms themselves did not change: this data has been published under CC BY 4.0 since 2026-07-10.
Sweepstakes payout study
Our own redemption attempts: real accounts, real requests, and what actually landed. This is the first-hand layer under the Trust Score, and it is the one dataset here that is measurement rather than observation.
Get it
-
/sweepstakes-payout-study/text/html The rendered study -
https://github.com/noahrrafkin16-cloud/bonusbandit-open-datatext/html Dated CSV snapshots, browsable in the open-data repository
What it measures
- Redemption requested date
- Redemption delivered date, when it landed
- Amount requested and amount received
- Delivery outcome
- Operator
Cite it
Bonus Bandit. Sweepstakes payout study. bonusbandit.win. https://bonusbandit.win/sweepstakes-payout-study/. Accessed [date]. Licensed CC BY 4.0.
Fill in the access date yourself. We deliberately do not print one: our build clock is not the date you read the file.
Corrections
- 2026-08-08 The machine-readable licence on our Dataset markup was corrected to the Creative Commons deed URL. Seven of the nine Dataset nodes had declared our About page or our methodology page in that field, neither of which grants anything. The terms themselves did not change: this data has been published under CC BY 4.0 since 2026-07-10.
State legality tracker
Per-state classification of dual-currency sweepstakes casinos across the United States, reviewed against primary sources, with statute references, source dates, effective dates and penalties.
Get it
-
/legal/text/html The rendered tracker
What it measures
- Classification
- Statute reference
- Source date
- Last human review date
- Effective date
- Basis of classification
- Penalty summary
Cite it
Bonus Bandit. State legality tracker. bonusbandit.win. https://bonusbandit.win/legal/. Accessed [date]. Licensed CC BY 4.0.
Fill in the access date yourself. We deliberately do not print one: our build clock is not the date you read the file.
Corrections
- 2026-08-08 The machine-readable licence on our Dataset markup was corrected to the Creative Commons deed URL. Seven of the nine Dataset nodes had declared our About page or our methodology page in that field, neither of which grants anything. The terms themselves did not change: this data has been published under CC BY 4.0 since 2026-07-10.
Sweeps Terms Watch
A source-linked archive of material and severe changes observed between two archived versions of a sweepstakes casino operator's terms. Every published row carries the observation window, the stored severity, and the terms diff.
Get it
-
/sweeps-terms-watch/text/html The filterable reader archive -
/api/sweeps-terms-watch.jsonapplication/json JSON with completeness and licence metadata -
/sweeps-terms-watch.csvtext/csv CSV with the same published records
Fields
| Field | Type | Meaning | Null means |
|---|---|---|---|
generatedAt | date-time | When this static archive file was built. It is not an operator change date. | never null |
source | url | The reader-facing Sweeps Terms Watch archive. | never null |
license | string | The reuse terms carried in-band. Always CC BY 4.0. | never null |
licenseUrl | url | The resolvable Creative Commons licence deed. | never null |
attribution | string | The short attribution line requested when reusing the dataset. | never null |
disclosure | string | The affiliate-funded but not affiliate-weighted disclosure. | never null |
completeness | object | The exact source-read result: whether the read completed, source rows read, rows published, rows excluded by the public contract, and the rule behind those figures. | never null |
changes | array | The published terms-change records, newest observed snapshot first. | never null |
| Field | Type | Meaning | Null means |
|---|---|---|---|
id | string | The stable public record id derived from the operator and immutable snapshot pair. | never null |
observedDate | date | The newer snapshot day, when this archive observed the difference. Not a claimed change date. | never null |
observedFrom | date | The older snapshot day at the start of the observation window. | never null |
observedTo | date | The newer snapshot day at the end of the observation window. | never null |
severity | string | The stored review severity for this diff.
| never null |
affectedAreas | array | Closed source vocabulary labels: playthrough, redemption, eligibility, or amoe. An empty array means no safe affected-area label was stored. | never null |
publicSummary | string | A scrubbed one-sentence summary when clean public text is available. Null when no summary was stored or redaction made it unsafe to publish. | unknown, withheld |
operatorSlug | string | The stable operator key used across Bonus Bandit datasets. | never null |
operatorName | string | The operator's brand name as published in the directory. | never null |
operatorUrl | url | The operator's published Trust Score page. Null when this build does not publish one. | not-applicable |
diffSourceUrl | url | The HTTP or HTTPS archive diff that supports the named terms-change record. | never null |
recordUrl | url | The permanent on-page anchor for this record. | never null |
Cite it
Bonus Bandit. Sweeps Terms Watch. bonusbandit.win. https://bonusbandit.win/sweeps-terms-watch/. Accessed [date]. Licensed CC BY 4.0.
Fill in the access date yourself. We deliberately do not print one: our build clock is not the date you read the file.
Corrections
Sweepstakes casino industry timeline
A source-linked chronology of processed state legal actions, recorded operator exits from individual states, and evidence-qualified casino launch research that keeps date precision, evidence basis, and confidence visible.
Get it
-
/sweepstakes-casino-history/text/html The filterable reader timeline -
/api/sweepstakes-casino-history.jsonapplication/json JSON with scope, completeness, and licence metadata -
/sweepstakes-casino-history.csvtext/csv CSV with the same published event rows
Fields
| Field | Type | Meaning | Null means |
|---|---|---|---|
generatedAt | date-time | When this static file was built. It is not an industry event date. | never null |
source | url | The reader-facing industry timeline. | never null |
license | string | The reuse terms carried in-band. Always CC BY 4.0. | never null |
licenseUrl | url | The resolvable Creative Commons licence deed. | never null |
attribution | string | The short attribution line requested when reusing the dataset. | never null |
disclosure | string | The affiliate-funded but not affiliate-weighted disclosure. | never null |
completeness | object | Exact source-read counts, included and excluded totals, type counts, and date range. | never null |
scope | object | The event classes included and the known classes this data model cannot date. | never null |
events | array | The published timeline records, newest event date first. | never null |
| Field | Type | Meaning | Null means |
|---|---|---|---|
id | string | Stable public event id. | never null |
date | string | ISO date value at the precision declared by datePrecision: YYYY-MM-DD, YYYY-MM, or YYYY. | never null |
year | integer | Calendar year derived from date. | never null |
eventType | string | Closed event-class key.
| never null |
eventTypeLabel | string | Reader-facing event-class label. | never null |
eventLabel | string | Specific event label such as Law effective, Court filing, State exit observed, or Launch. | never null |
dateRole | string | What the published date represents: an action, filing, effective date, enactment, announcement, observation, or launch. | never null |
datePrecision | string | Precision of the published event date.
| never null |
launchBasis | string | For casino records, whether the date is a confirmed launch, supported launch window, earliest verified public appearance, shared brand lineage, or legacy catalog date. | not-applicable |
confidence | string | Confirmed, corroborated, or claimed evidence confidence for a casino launch record. | not-applicable |
sourceType | string | Evidence channel such as a launch announcement, operator document, app store, web archive, domain registry, or independent report. | not-applicable |
countsAsDistinctLaunch | boolean | Whether this catalog record counts as a distinct launch rather than an alias or shared brand lineage. | never null |
supportingSources | array | Additional source links used to corroborate a launch record. Empty when the row has one source. | never null |
title | string | Concise event headline. | never null |
summary | string | Public supporting detail for the event. | never null |
entityName | string | State or operator display name. | never null |
entitySlug | string | Stable state or operator key. | never null |
entityUrl | url | Published Bonus Bandit entity page, or null when none is emitted. | not-applicable |
stateCode | string | Two-letter state code for state events, or null for launches. | not-applicable |
sourceUrl | url | Source or Bonus Bandit evidence record supporting the timeline row. | never null |
sourceLabel | string | Reader-facing description of the source. | never null |
sourceBasis | string | Whether the link is external evidence, a state record, or an operator record. | never null |
recordUrl | url | Permanent on-page anchor for the event. | never null |
Cite it
Bonus Bandit. Sweepstakes casino industry timeline. bonusbandit.win. https://bonusbandit.win/sweepstakes-casino-history/. Accessed [date]. Licensed CC BY 4.0.
Fill in the access date yourself. We deliberately do not print one: our build clock is not the date you read the file.
Corrections
Dated change record
Every dated change we publish, in one record: a state legal or regulatory action, a change to an operator's own terms, an operator leaving a state, and every Trust Score movement with the factor that moved and the reason it moved. Entries that record evidence we re-read and left where it was are marked as reviewed rather than dressed up as movement.
Get it
-
/changes/text/html The rendered record -
/changes/rss.xmlapplication/rss+xml RSS feed of every dated change, all five kinds
What it measures
- Kind: one of legal_event, tos_change, state_exit, score_change, score_baseline
- Date, as an ISO calendar day, taken from the record itself
- Entity: the operator or the state the change is about
- What changed, in one sentence
- Source link, and what that source is
- Materiality, for a change to an operator's own terms only
- Factor, old value and new value, for the two trust score kinds only
- Reason, when the record carries a published one
Cite it
Bonus Bandit. Dated change record. bonusbandit.win. https://bonusbandit.win/changes/. Accessed [date]. Licensed CC BY 4.0.
Fill in the access date yourself. We deliberately do not print one: our build clock is not the date you read the file.
Corrections
- 2026-08-08 The machine-readable licence on our Dataset markup was corrected to the Creative Commons deed URL. Seven of the nine Dataset nodes had declared our About page or our methodology page in that field, neither of which grants anything. The terms themselves did not change: this data has been published under CC BY 4.0 since 2026-07-10.
Elsewhere
Score changes are logged one by one on the public changelog. Badges and copy-paste embed snippets live on embeds and API. Dated snapshots of the two flagship studies are mirrored in our open-data repository, which is produced separately from this build and can be older than the pages here. When the two differ, the page is the current one.