Modules

BI and reporting

A reporting module decides which number you are taxed on, which number your affiliates are paid on and which number you judge a campaign by, and they are three different numbers. Buy it as a module when you need one definition across several platforms; take it with the platform when you run one.

Scope the reporting

Who this is for

Operators with more than one source of truth: a casino platform and a separate sportsbook, two brands on two licences, a white label brand moving to its own platform, or a finance team rebuilding the GGR figure in spreadsheets every month because the back office and the bank statement disagree. Also for CTOs deciding whether the platform's built-in dashboards will hold once a regulator, an auditor and an affiliate network all ask for numbers.

A BI module earns its place by fixing definitions, not by drawing charts. GGR, the regulator's yield figure and the NGR in your affiliate contracts are calculated differently, and the gap between them is bonus cost, taxes, fees and chargebacks. A module that reports one "revenue" number without saying which deductions it took is the source of most disputes with affiliates and most restatements to regulators.

Which revenue number, for whom

The same formula carries different names in different licences, and the same name carries different formulas in different contracts. Read the last column as the question to settle before the first report is built.

NumberHow it is calculatedWho uses itWhat to settle first
GGRStakes minus winningsFinland taxes 22% of it from July 2027; most platforms and investors report itWhether bonus-funded stakes count as stakes
GGY (UK)Stakes plus other amounts accruing, minus prizes. UK guidance records a free bet or bonus only if the customer could take its value as cashUK Gambling Commission returns. The Isle of Man also charges duty on GGY, from 1.5%, under its own rulesA separate GGY report, not GGR relabelled. The UK Commission says in its guidance that figures must be GGY, not GGR
Net betting revenue (Cyprus)Stakes minus winnings paidCyprus's 10% tax and 3% contribution, monthlyThat "net" here means what GGR means elsewhere
NGRGGR minus agreed deductions: commonly bonuses, taxes, chargebacks, payment fees and platform feesAffiliate revenue share, platform revenue share, management accountsThe deduction list in each contract, in writing, line by line

The practical consequence is one ledger and several views. The module stores every stake, win, bonus grant, bonus conversion, fee and chargeback at transaction level, then computes each figure from the same rows with its own deduction rules. If GGR and the affiliate NGR come from different pipelines, they will drift, and the affiliate will find the drift before you do.

Cohorts and lifetime value

Lifetime value is where reporting moves from describing the month to deciding the next one. Three choices make the number usable or misleading.

  • The base. Compute LTV on NGR, after bonus cost, not on GGR. A cohort bought with heavy welcome bonuses looks strongest on GGR and weakest on NGR, and only one of those pays the marketing invoice.
  • The cohort key. First-deposit month and acquisition source, not registration month. Registrations that never deposit dilute every curve and say nothing about traffic quality.
  • Young cohorts. A cohort three months old has not had time to reach the value of one that is twelve months old. Compare cohorts at the same age, month three against month three, and mark projected values as projections.

Cross-product players need one rule: whether a player who arrived through the sportsbook and plays mostly casino counts to the sportsbook source. Decide it once, in the data model, before marketing and product each decide it differently.

Regulator reports

Each licence sets its own file and its own clock. What matters to the build is cadence and format, because a monthly file can be produced from a warehouse and a near-real-time feed cannot.

LicenceWhat is filedCadence
United KingdomRegulatory returns on GGY and activity, through the Commission's online system; nil returns if not yet tradingQuarterly, within 28 days of quarter end, for periods from 1 July 2024
NetherlandsAll platform transaction data held in a control database the Kansspelautoriteit can accessNear real-time
TobiquePlayer-account submissions, compliance change reports, an encrypted off-site backup of transaction dataEvery two weeks; monthly; every two weeks
AnjouanCompliance reportQuarterly
CyprusTax accounting on net betting revenueMonthly, due by the end of the following month
FinlandReporting that sets the supervision fee tier, from €4,000 to €434,000 a year by GGRAnnual fee; confirm the reporting format with the Agency, which has not yet confirmed the intermediate fee bands

The Dutch row is the one that changes architecture. A regulator with direct access to a data vault reads your transactions, not your summary of them, so gaps in mapping show up as findings. In 2025 the Kansspelautoriteit ran automated data-quality checks on every active licence holder and flagged at least one potential deficiency at each of them.

Data export and ownership

Who owns the data is a contract clause. Who can use it is an engineering question, and the second decides the first in practice.

  • Raw, not aggregated. Ask for transaction-level export, every bet, win, bonus event and payment, not monthly totals. A total cannot be re-cut when an affiliate disputes a definition.
  • Replication to your warehouse. A daily or streaming copy into your own storage, with a documented schema and history from the first day, means the vendor's dashboard is one view of your data rather than the only one.
  • Exit. On a white label the licence holder often holds the database; ours exports in full on exit, many in the market do not. Migration to your own platform is a project in its own right: see migration.

Module or part of the platform

Your situationBuyWhy
One brand, one platform, one licenceThe reporting inside the platform, on our casino engine or a white label or turnkey casinoThe regulator file and the GGR view come from the same ledger with nothing to reconcile
Casino and sportsbook on different platforms, or several brands across licencesThe module on its own, fed by bothOne set of definitions across sources is the job; platform dashboards each define revenue their own way
A finance or data team that already runs a warehouseRaw data export and the regulator reports, without our dashboardsYour team keeps its tools; the module supplies clean rows and the filings
Preparing a licence applicationThe regulator reporting with the platformThe reporting is part of what the regulator reviews; see technical certification

What integration with an existing stack requires

  1. Transaction-level feeds from every wallet, game aggregator, sportsbook and payment provider, with unique identifiers that survive retries, so one bet is never counted twice.
  2. A player key shared with the player account system and the CRM, so a cohort in BI is the same set of people as a segment in a campaign.
  3. Bonus events from the bonus engine: grant, wager progress, conversion, forfeit. Without them NGR is an estimate.
  4. Currency and time zone rules fixed in the model: the FX rate at transaction or at report time, and whose midnight closes the regulator's day.
  5. Affiliate tracking IDs carried from registration onward, so revenue share is computed from the same rows as everything else.

How it fails, and what to ask

The common failures are quiet ones. Bonus-funded stakes counted as cash stakes, which inflates GGR. A sportsbook bet counted when placed in one report and when settled in another. Chargebacks deducted from NGR in the month they arrive rather than the month of the deposit. Questions to put to any vendor, including us:

  1. Show GGR, GGY and NGR for the same day from the same rows, and the deduction list behind each.
  2. Can we receive every transaction in our own warehouse, with schema documentation, from the first day?
  3. Which regulator files does the module produce today, for which licences, and who signs them off?
  4. How are late events handled: a settlement correction, a reversed chargeback, a void bet?
  5. What exactly do we receive on exit, in what format, and how far back?

Frequently asked

What is the difference between GGR and NGR?

GGR is stakes minus winnings. NGR is GGR minus a list of deductions that each contract defines: commonly bonuses, taxes, chargebacks, payment fees and platform fees. Two operators with the same GGR can report different NGR, which is why the deduction list belongs in the affiliate and platform contracts.

Can we report GGR to the UK Gambling Commission?

No. The Commission's returns ask for GGY, and its guidance says figures must be based on GGY, not GGR. Free bets and bonuses enter GGY only where the customer could have taken their value as cash.

Do we need our own data warehouse?

Not to launch. You need the right to a transaction-level export and a tested way of receiving it. A warehouse becomes worth its cost once you run more than one platform or a team asks questions the dashboards cannot answer.

Should LTV be calculated on GGR or NGR?

On NGR, after bonus cost. GGR makes heavily bonused cohorts look like your best players, and the marketing budget follows the wrong number.

Who owns the data on a white label?

The contract decides, and many in the market keep it with the licence holder. Ours gives you the full player export on exit. Ask any provider for the export clause before you sign, not when you leave.

Request a meeting

Fields marked are required.

We answer within two working days. Nothing you send here is stored on this site or passed to anyone else. You can also write to [email protected] directly.