Skip to content
HarakaRank

Who gets listed at all

An operator appears on this site only once its licence has been confirmed from one of two sources, and each listing says which one, with the date it was read. The first is the Gambling Regulatory Authority of Kenya's published list of licensed gaming companies. The second is used only when that list is out of date or cannot be read: the licence the operator prints on its own site, accepted if it was issued by the Gambling Regulatory Authority of Kenya and read in the last 90 days. The check is repeated. An operator whose licence is not confirmed at a later check keeps its page without the verified mark; it leaves the site when the regulator publishes that its licence was withdrawn or suspended.

The withdrawal protocol

  1. Real account, own money. A withdrawal is requested from an ordinary funded account on the operator's own Kenyan site or app. No press account, no demo balance, no figure taken from an operator's help page.
  2. The clock starts at the request. Timing runs from the moment the withdrawal is requested in the operator's interface to the moment the M-Pesa confirmation SMS arrives on the registered number, both read to the minute. The operator's own confirmation message is not used: in our first tests it sometimes carried a time later than the SMS itself.
  3. Several attempts, spread out. An average is published only over at least three attempts, taken on different days and at different hours, because payout queues behave differently on a Saturday evening than on a Tuesday morning.
  4. Failures count. An attempt that is reversed, held for review or never lands is recorded as a failure and lowers the success rate. It is never quietly retried until it works.
  5. Fees are read off the two statements. The amount requested is compared with the amount received. What is missing is attributed to the operator, to M-Pesa, or left as undetermined - never guessed.
  6. Every figure carries its date. A published number is stamped with the day it was measured. Nothing is carried forward silently: a stale figure is retested or pulled.

Real-money tests

From 29 September 2026 to 16 October 2026, each operator was tested with real money: 9 tests per operator, listed one by one on the tests page and on each operator's page.

Who tests

Oscar N., an independent tester based in Kenya, using a personal M-Pesa line and ordinary accounts on the operators' Kenyan sites. The tester is paid a fixed fee per test by HarakaRank, whatever the result, plays with money we provide, and is named by first name and initial only.

What one test is

  1. A deposit by M-Pesa, at a set time of day: tests are spread over mornings, afternoons and evenings, on different days.
  2. A bet, only when the operator demands one before paying out. If a withdrawal is refused for that reason, the refusal and its wording are recorded.
  3. A withdrawal of the whole balance to M-Pesa, not just the minimum. If a withdrawal is blocked, the tester stops and reports instead of trying again.
  4. The time of the request and the time of the M-Pesa SMS, read to the minute. The delay is the difference, given as it is: 0 min means the same minute.
  5. What went in and what came out, read on both sides: the M-Pesa SMS and the operator's own transaction history. A deduction is quoted with the operator's own label (“Withdrawal Tax”, “Excise tax on deposit”); we do not guess what it is or who keeps it.
  6. Any extra step asked before paying: a code by SMS, a PIN, an ID document, a selfie.

Proof, and what rests on the tester's word

Every figure is checked against a screenshot. Those published are redacted first: phone number, M-Pesa balance, account references and one-time codes are covered, and two characters of each M-Pesa code are hidden. Each one is reviewed by hand before it goes online. Where a figure has no screenshot behind it (an operator that keeps no transaction history, a step the tester describes), the test says so in plain words: “tester's report, no screenshot”.

Corrections

A test whose figures do not match its screenshots is held back until the tester corrects it, and is not shown in the meantime. When the delivered material contradicts itself (in our first batch, two deposit screenshots had swapped names), the operator's own records decide, and the correction is dated on the changes page.

How the ranking is built

For each operator, the ranking on the home page averages the paid withdrawals timed in these tests, read to the minute. An operator enters it once three paid withdrawals are timed; a refused, held or cancelled withdrawal lowers its share paid out. The tests themselves stay listed in alphabetical order, each with the range of delays it produced.

Three kinds of statement, never mixed

  • Measured - a figure produced by a real withdrawal we placed, with the date of the last run and the number of runs behind it. Teal chip.
  • Declared - what the operator writes on its own page (offer, payment methods, licence wording), transcribed verbatim with the page and the date it was read. Quoted, not endorsed.
  • Register - what the regulator publishes, with the date we read it.

A row with no timed withdrawal shows Not measured yet and no number at all. There is no placeholder figure anywhere on the site, and unmeasured rows are kept out of the structured data search engines read.

When a figure goes stale

A measurement or a declared term is flagged for re-checking after 30 days and is withdrawn from the pages after 90; a fact about the law or the regulator after 180 and 365. Past its window a fact keeps its label and loses its value - the page says “not verified since” and points you at the source. Every addition, change and withdrawal is listed, dated, on the changes page.

What this does not cover

  • This is a sample of withdrawals, not an audit. It says what happened on the days it was run, on one account, on one line.
  • Payout speed varies with amount, time of day, account age and verification status. A single slow payout does not contradict a fast average, and the reverse is just as true.
  • Deposits are recorded only as far as a withdrawal test needs them. We do not test bonuses, odds or customer support: this site answers one question and stops there.
  • Each average rests on a handful of timed withdrawals, read to the minute: it says how withdrawals went on the days they were run, not how the next one will go.
  • Nothing here is advice to bet with anyone. It is a measurement of how quickly money comes back out.

How this site makes money

Some operator links may be commercial: if you open an operator through one of them and register, we may be paid a commission. Those links are marked sponsored, sit next to an 18+ notice and open in a new tab. They have no effect on the ranking, which is sorted by measured payout delay and nothing else - a slow operator paying a higher commission still ranks last. Where no commercial agreement exists, no link is shown at all, and a commercial link can only exist for an operator on the GRA register.