---
url: https://docs.dataflair.ai/stats/operator-api/metrics.md
description: >-
  What each metric in a daily row means, how DataFlair reads it, and what an
  omitted value becomes.
---

# Operator API metrics

Each row of the [Operator Reporting API](/stats/operator-api/contract) carries counts and amounts for one day and one affiliate. This page says what each metric means and how DataFlair stores it.

## Metrics

| Metric | Type | Meaning | If you leave it out |
| --- | --- | --- | --- |
| `registrations` | integer | Player accounts created and attributed to the affiliate. | Stored as `0`. |
| `ftds` | integer | First-time depositors. A player counts once, in the lifetime of the player. | Stored as `0`. |
| `deposit_amount` | number | The sum of deposits posted on the report day. | Stored as no value. |
| `commission_amount` | number | The amount you attribute to the affiliate for the day. | Stored as no value. |
| `clicks` | integer | Clicks you track yourself. DataFlair tracks clicks on its own, through the tracking link. | Stored as `0`. |
| `kyc_verified_ftds` | integer | First-time depositors who passed KYC that day. | Kept as "not reported". See below. |
| `reported_ngr` | number | Net gaming revenue as you report it. | Stored as no value. |
| `ggr` | number | Gross gaming revenue as you report it. | Stored as no value. |

Send every metric you report on every pull. DataFlair replaces the stored values for a day and an affiliate with the latest ones, so a pull that leaves a count out resets it to `0`.

## Zero and blank are different

For `kyc_verified_ftds`, an empty or `null` value means "not reported that day". A `0` means you reported zero. DataFlair keeps the two apart. Send `0` only when the real number is zero.

## Types

Send counts as integers. Send amounts as numbers with up to two decimal places, for example `840.00`. DataFlair converts a value it can read as a number. A value it cannot read as a number becomes no value or `0`, as in the table.

## What DataFlair requires

* `date` and `affiliate_id` on every row. A row without them is skipped.
* At least one of the metrics `registrations`, `ftds`, `clicks`, `deposit_amount`, `reported_ngr`, `commission_amount` or `kyc_verified_ftds` on the first row of the response. Otherwise the whole pull fails with a schema mismatch.
