Operator guideENreportingcohortftd

Reporting / FTD Cohort

Cohort report for post-FTD activity, depositors, and deposit-amount retention after the first successful deposit.

Reader view

Clean portal guidance

This page keeps the operator explanation, field and action descriptions, and screenshots visible without exposing repo paths, raw sidecars, or editorial-only implementation details.

Narrative content

Page body

What this page shows

FTD Cohort groups players by the date of their first successful deposit and then measures later behavior across follow-up periods.

When to use it

  • evaluate post-FTD retention
  • compare how many first-time depositors stay active later
  • compare follow-up deposit behavior by PID or country
  • analyze deposit momentum after the first deposit event

How to read it

Each base row is one cohort. The first deposit event defines the cohort date. The later columns are follow-up periods whose meaning depends on the selected cohort mode:

  • daily
  • weekly
  • monthly
  • custom-period buckets

The filter card exposes three metric-type labels:

  • Activity
  • Depositors
  • Deposit Amounts

Important reading rules:

  • the current backend service does not branch by metricType; the selected label is sent by FE but is not used in the traced service
  • visible period cells currently represent distinct cohort users seen after FTD in either gaming daily summaries or later successful deposit rows
  • period 0 is always set to 100.00% for each cohort and for the total row
  • future periods are returned as null by the backend but are displayed as 0.00% by the current FE percentage formatter

Filters that change the result

  • PID
  • Country
  • Cohort Mode
  • Metric Type
  • Custom Period (days)
  • FTD Start Date
  • FTD End Date
  • rows per page

Action and filter behavior

  • Apply Filters copies the currently edited filter controls into the active query state and resets pagination to page 1.
  • Refresh re-runs the last active query only. It does not apply staged changes that have not been committed with Apply Filters.
  • Export CSV uses the active filter snapshot and ignores the visible table pagination by requesting up to 10,000 cohort rows from the backend.
  • pressing Enter in the PID field also applies the staged filters.
  • typing a PID and leaving the PID field adds it to the staged PID chips, but the active query still waits for Apply Filters or Enter.
  • Custom Period (days) is only visible when cohort mode is Selected period (custom) and the FE clamps it to at least 1.

Known caveats

  • The cohort is defined by the first successful deposit only.
  • Metric Type is currently not a verified backend switch. Do not read Depositors or Deposit Amounts as separate backend formulas until the service starts branching on metricType.
  • later-period values come from a union of gaming-summary activity and later successful deposits after FTD; the original FTD day is excluded from later periods by > ftd_date.
  • The FE renders all metric cells as percentages.
  • Exported CSV rows keep raw decimal ratios rounded to 4 decimal places, not the % formatting shown in the table.
  • The PID filter is implemented through the nx.user_kpi_summary database table, but this page does not depend on an nx-workspace service route.
  • When the backend reports more than 50,000 cohort rows, the page shows a warning banner that recommends narrowing the date range or filters before exporting.
  • totalCount counts cohort buckets, not users.

Verification status

  • status: verified_backend
  • FE route, filters, export, metric-type caveat, and cohort-grid behavior are mapped
  • gs-admin-backend owns the cohort definition and current later-period aggregation logic
  • no explicit nx-workspace service dependency is required for the current report semantics
Calculation notes

Calculations

calculation

Cohort date bucketing

Defines which cohort row a first-time depositor belongs to.

Source Fields
transaction_bankings.created_at, cohortMode
Transform
The backend groups successful first deposits by day, week, month, or custom-period bucket using the selected cohort mode. Weekly/monthly use date truncation; custom buckets use epoch-day bucketing by `customPeriodDays`.
calculation

Current period metric

Current verified period cells mean later activity/deposit presence, not a metric-type-specific formula.

Source Fields
analytics.player_game_daily_summary.summary_date, transaction_bankings.created_at, ftd_users.user_id
Transform
The backend builds `activity_days` as a union of later gaming-summary dates and later successful deposit dates after FTD, counts distinct users per period, then divides by cohort users.
calculation

Depositors

Treat this as a visible selector caveat until backend support is added.

Source Fields
transaction_bankings.is_first_deposit, transaction_bankings.created_at
Transform
The FE sends `metricType=depositors`, but the current backend service does not read `metricType` and does not branch to a depositors-only query.
calculation

Deposit Amounts

Do not use this selector as a backend-verified deposit-amount index in the current build.

Source Fields
transaction_bankings.amount, transaction_bankings.conversion_rate
Transform
The FE sends `metricType=deposit_amounts`, but the current backend service does not read `metricType` and does not aggregate deposit amount sums for this report response.
calculation

Period 0 and future periods

Period 0 is a baseline; future periods can look like zero in the UI even when backend marks them unavailable.

Source Fields
period_index, cohort.metrics
Transform
Period `0` is set to ratio `1` for every cohort and summary. Future periods are set to `null` by the backend, but the FE `formatPercentage` helper renders null as `0.00%`.
calculation

Summary row

Overall ratio across returned cohorts, not a simple arithmetic average of displayed percentages.

Source Fields
cohort.users, period totals
Transform
Summary period ratios divide total period metric users by eligible users across the returned cohort rows.
calculation

Active filter snapshot

Unapplied changes in the filter card do not affect the table or export until `Apply Filters` is used.

Source Fields
staged filter controls, activePidList, activeCountries, activeCohortMode, activeMetricType, activeCustomPeriodDays, activeStartDate, activeEndDate
Transform
The FE keeps editable filter state separate from the active query state. `Apply Filters` copies the staged controls into the active state and resets pagination to page 1. `Refresh` only re-fetches the active state.
calculation

PID chip staging

A visible PID chip may still be staged until Apply Filters or Enter promotes it.

Source Fields
pidInput, pidList, activePidList
Transform
Typing a PID and blurring the PID field adds it to staged chips. Pressing Enter also applies filters and promotes the staged PID list into `activePidList`.
calculation

CSV export formatting

Exported files contain raw decimal ratios, so values may look smaller than the percentages shown on screen.

Source Fields
responseData.cohortData.metrics, responseData.summary.metrics
Transform
CSV export writes each ratio with `toFixed(4)`-style decimal precision and does not apply the FE `%` formatting used in the visible table cells.
Grid columns

Columns

field

Cohort header

Cohort bucket created from the first successful deposit date. The visible header changes by mode, for example `FTD Date`, `FTD Week`, `FTD Month`, or `FTD Period Start`.

field

Users

Number of first-time depositors in the cohort.

field

Period metric cells

Ratio of distinct cohort users with later activity/deposit presence in the backend union for that period; period `0` is always `1`.

Filter dictionary

Filters

field

FTD Start Date

Staged lower bound for first successful deposit `created_at`; active only after `Apply Filters` or Enter.

Type
date
Default Value
today - 30 days
field

FTD End Date

Staged upper bound for first successful deposit; backend uses `< endDate + 1 day`.

Type
date
Default Value
today
field

PID

Free-solo staged PID chips matched against `nx.user_kpi_summary.affiliate_pid`.

Type
multi-select
field

Country

Staged country-code chips matched against `users.country_code`.

Type
multi-select
Options Source
useCountryList(limit=300,pageNo=1,ignoreLimit=true)
field

Cohort Mode

Controls cohort date bucketing and period label width.

Type
select
Options
Daily, Weekly, Monthly, Selected period (custom)
field

Metric Type

Type
select
Options
Activity (Retention Rate), Depositors, Deposit Amounts
Caveat
The current backend service accepts the request parameter but does not branch on it.
field

Custom Period (days)

Bucket width in days for `Selected period (custom)` mode. The control is hidden for daily, weekly, and monthly cohorts and clamped to at least `1`.

Type
number
Default Value
7
Widget map

Widgets

item

Filter FTD Cohort

Filter card with staged inputs. Changes become active only after `Apply Filters`.

item

Failed to load report. Try narrowing the date range or filters, then refresh.

Error banner shown when the report query fails.

item

Large dataset detected. Narrow the date range or filters for faster loading and exports.

Warning banner shown when `totalCount` exceeds 50000 cohort buckets.

item

Cohort table

Main grid that expands cohort periods and metric ratios.

item

Cohort summary

Weighted summary row over the currently visible cohorts.

item

CSV export

Exports the current cohort result set.

item

No cohort data found for the selected filters.

Empty table row when the backend returns no cohort rows.

item

Table pagination

Backend pagination with row-size options 10, 20, 50, and 100.

Metric dictionary

Metrics

metric

Users

Number of first-time depositors in the cohort row.

Aliases
ftd cohort users, cohort users
Backend Formula
COUNT(DISTINCT user_id) grouped by cohort_date from successful first-deposit rows.
Verification Status
verified_backend
Last Verified At
2026-05-05
metric

Period metric ratio

Share of cohort users seen in the current backend later-period union of gaming daily summaries and later successful deposits.

Aliases
ftd cohort activity, cohort activity ratio, ftd cohort period ratio
Backend Formula
COUNT(DISTINCT activity_days.user_id) / cohort.users for each period index after FTD.
Verification Status
verified_backend
Last Verified At
2026-05-05
metric

Depositors

Visible metric-type option. In the current backend service, it does not switch to a depositors-only formula.

Aliases
ftd cohort depositors, later depositors ratio
Backend Formula
Not separately implemented; `metricType` is not read by the traced service.
Verification Status
verified_backend
Last Verified At
2026-05-05
Comparison Notes
The backend currently returns the same period ratios as the default Activity selection.
metric

Deposit Amounts

Visible metric-type option. In the current backend service, it does not switch to a deposit-amount formula.

Aliases
ftd cohort deposit amounts, deposit amount ratio
Backend Formula
Not separately implemented; `metricType` is not read by the traced service.
Verification Status
verified_backend
Last Verified At
2026-05-05
Comparison Notes
Displayed as a metric option in FE, but the backend currently returns the same period ratios as the default Activity selection.
metric

Total Users

Total users across the cohort rows returned in the current backend response.

Aliases
ftd cohort total users, cohort summary users
Backend Formula
SUM(cohort.users) over returned cohort rows.
Verification Status
verified_backend
Last Verified At
2026-05-05
Operational notes

Notes

item

The cohort is defined from successful first-deposit rows in `transaction_bankings`.

item

Current later-period metrics are calculated from a union of `analytics.player_game_daily_summary` activity days and later successful deposit days after FTD.

item

`metricType` is sent by FE but is not read by the traced backend service, so `Activity`, `Depositors`, and `Deposit Amounts` currently return the same backend period ratios.

item

Period `0` is set to ratio `1`; backend future periods are `null`, but FE displays null as `0.00%`.

item

`Apply Filters` copies staged FE controls into a separate active-query state; `Refresh` only re-fetches that active snapshot.

item

CSV export requests `limit=10000`, `pageNo=1`, and returns raw decimal ratios rounded to 4 decimal places.

Related references

Related pages

pageReporting

Canonical entrypoint for standalone reporting pages outside the main Dashboard widgets.

pageReporting / Affiliate Events Report

Audit log of the events and saved amounts the platform sent to the affiliate system, with per-currency successful totals and a CSV export.

pageReporting / Bonus Performance

Grouped bonus performance report for activations, amounts, deposits, withdrawals, GGR, and NGR by bonus item.

pageReporting / Card Approval Rates

Snapshot report of card deposit approval rates for NetworxPay, Paydex, and Carouseller, split by Trusted and NonTrusted players, with today versus the previous 30 days and today top decline reasons.

pageReporting / Change Notification Detail

Detail page for one audit entry, including actor metadata, description, and before/after comparison views.

pageReporting / Change Notifications

Audit list for recorded configuration, administrator, and system change entries with filters for actor, entity, and change type.