Operator guideENreportingpaymentsdepositscardsapproval-rate

Reporting / 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.

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

Card Approval Rates is a read-only snapshot of how often card deposits succeed. It covers three card providers, NetworxPay, Paydex, and Carouseller, and splits each one into Trusted and NonTrusted player traffic.

For every provider and traffic segment the page shows:

  • the approval rate for today
  • the approval rate over the previous 30 full days
  • the change between the two, shown in percentage points
  • the most common decline reasons recorded today

A separate panel at the bottom flattens today's decline reasons into a single list that can be aggregated by a Telegram bot.

When to use it

  • check whether card deposits are succeeding at the normal rate right now
  • spot a provider or segment whose approval rate has dropped against its 30-day norm
  • see which decline reasons are driving today's failures
  • compare Trusted against NonTrusted traffic for the same provider

How to read it

Each provider card has two segment blocks, Trusted and NonTrusted. Inside each block:

  • Today is the approval rate since local midnight, with the successful count over the initiated count shown underneath
  • 30d is the approval rate over the previous 30 full days, ending at local midnight today, with its own successful over initiated counts
  • the chip at the top right is the delta in percentage points, today minus the 30-day rate, where green is up, red is down, and grey is flat
  • Today top errors lists up to four decline reasons for that segment, each with a count and its share of that segment's failures today

The approval rate is the share of card deposits that succeeded. It is the number of successful card deposits divided by the number of card deposits that were started, for that provider and segment, in that time window, shown as a percentage to one decimal.

Reading a zero or empty segment

The approval rate is always a number, never blank. When no card deposits were started for a provider and segment in a window, the page shows 0.0% for that window rather than a dash or N/A. A 0.0% rate with 0 / 0 counts underneath means there was no card deposit traffic, not that every deposit failed. Always read the counts under the percentage before reacting to a low rate, because a 0.0% over real traffic (for example 0 / 40) is a genuine outage signal, while 0.0% over 0 / 0 is simply no activity.

Time windows

  • Today starts at local midnight and runs to the moment the snapshot was generated
  • 30d is the 30 full days immediately before today, ending at local midnight today, and does not include today
  • the two windows do not overlap, so the delta compares today against a clean prior baseline
  • Last updated shows when the backend generated the snapshot

What counts as a card deposit

Only deposit transactions are included. The provider is resolved from the payment provider on each deposit, and Carouseller card deposits are detected from card indicators such as a Visa or Mastercard method, a card method code, or a stored card number or BIN. Deposits that cannot be matched to one of the three providers are dropped from the cards. Deposits whose player cannot be classified as Trusted or NonTrusted are excluded from the provider cards and are tracked separately as an unclassified count in the backend response, which this page does not display.

Decline reasons

Today top errors and the bottom feed only count deposits that ended in a terminal failure today, such as failed, cancelled, rejected, or expired. Successful and still pending deposits are not counted as errors. Each reason is normalized to a canonical label so the same decline can be grouped across providers and brands. The share shown next to each reason is that reason's count divided by the total failures for that provider and segment today.

Refresh behavior

  • the page reloads the snapshot automatically about once a minute
  • Refresh forces an immediate reload
  • the backend serves a short-lived cached snapshot, so two refreshes within about thirty seconds can return the same generated time

Why this can differ from other reports

  • this report counts card deposits only and ignores other deposit methods
  • it is a count-based approval rate and carries no money amount or currency, so it will not match revenue or deposit-value reports
  • the rate excludes deposits that cannot be matched to a provider or to a Trusted or NonTrusted segment, so the counts here can be lower than a raw all-deposits count
  • today is a partial day until midnight, so an early-day rate can swing on low volume

Known caveats

  • an empty segment reads as 0.0%, which looks the same as a genuine all-failed segment; the counts underneath are what tell them apart
  • the today window is partial and low-volume early in the day, so the delta can look dramatic before enough deposits accumulate
  • unclassified players and unmatched providers are excluded from the visible cards
  • the decline-reason list is limited to the top reasons per segment on the page
Field dictionary

Fields

field

Last updated

When the backend generated this snapshot, shown in the header; not the current time.

Data Type
datetime
Editable
false
field

Provider

Card provider name on each card, one of NetworxPay, Paydex, or Carouseller.

Data Type
string
Editable
false
field

Segment

Traffic split inside each provider card, Trusted or NonTrusted, derived from whether the player is marked trusted.

Data Type
enum
Editable
false
field

Today rate

Approval rate since local midnight for the provider and segment, shown to one decimal.

Data Type
percentage
Editable
false
Caveats
Reads as 0.0% when no card deposits were started today; check the counts underneath.
field

Today counts

Successful over initiated counts under the today rate, formatted as successCount / initiatedCount.

Data Type
string
Editable
false
field

30d rate

Approval rate over the previous 30 full days ending at local midnight today, excluding today.

Data Type
percentage
Editable
false
Caveats
Reads as 0.0% when no card deposits were started in the 30-day window.
field

30d counts

Successful over initiated counts under the 30d rate, formatted as successCount / initiatedCount.

Data Type
string
Editable
false
field

Delta chip

Today rate minus 30d rate in percentage points; green up, red down, grey flat.

Data Type
number
Editable
false
field

Today top errors

Up to four normalized decline reasons for the segment today, each with a count and its share of the segment's failures.

Data Type
list
Editable
false
field

Aggregatable error feed

Flattened list of today's decline reasons across providers and segments, shown as the bottom panel for bot aggregation by reason key.

Data Type
list
Editable
false
field

Decline reason

Canonical, normalized name of a decline reason resolved from the failed-deposit error reason and group tables.

Data Type
string
Editable
false
field

Raw reasons

Up to five original processor messages collapsed into the canonical reason, shown as supporting text in the feed.

Data Type
list
Editable
false
Metric dictionary

Metrics

metric

Approval rate (Today / 30d)

Share of card deposits that succeeded for a provider and segment in a window, shown as a percentage to one decimal. Displayed for Today and for the previous 30 full days.

Aliases
card approval rate, card deposit success rate, deposit approval percentage
Metric Kind
ratio_percentage
Numerator
Count of card deposits where the deposit is successful, defined as status_enum text equals 'SUCCESS', or status_enum is null and legacy status equals 1.
Denominator
Count of all card deposits started (transaction_type = 'deposit') for that provider and segment in the window, successful or not.
Formula
successRate = round((successCount / initiatedCount) * 100, 1)
Zero Denominator Behavior
When initiatedCount is 0 the backend toRate helper returns 0 (rendered as 0.0%), not null, not N/A, and not a division error. A 0.0% rate therefore means either no card deposit traffic (0 / 0) or a real all-failed segment (for example 0 / 40); the initiated and successful counts under the percentage are what distinguish them.
Rounding
Rate is rounded to one decimal place with toFixed(1) in the backend before display.
Backend Formula
COUNT(*) FILTER (WHERE is_successful) / COUNT(*) per provider_key, segment, window_key, then * 100 rounded to 1dp; 0 when the window has no rows.
Last Verified At
2026-06-29
metric

Delta (percentage points)

Change between today's approval rate and the 30-day approval rate for the same provider and segment, in percentage points. Green is up, red is down, grey is flat.

Aliases
approval rate delta, today vs 30 day change, pp change chip
Metric Kind
difference_percentage_points
Formula
deltaPctPoints = round(today.successRate - baseline30d.successRate, 1)
Zero Denominator Behavior
Because each side falls back to 0.0% on an empty window, the delta against an empty baseline equals today's rate, and the delta of an empty today equals the negative of the baseline rate. Read the underlying counts before treating a large delta as a real swing.
Backend Formula
Number((segment.today.successRate - segment.baseline30d.successRate).toFixed(1))
Last Verified At
2026-06-29
metric

Decline reason share

Each today decline reason's count as a share of all of that provider and segment's failed card deposits today, shown next to the reason count.

Aliases
error share, decline reason percentage, top errors share
Metric Kind
ratio_percentage
Numerator
Count of today's terminal-failure card deposits grouped under that normalized decline reason for the provider and segment.
Denominator
Total count of today's terminal-failure card deposits for that provider and segment.
Formula
share = round((error.count / segmentTotalErrors) * 100, 1)
Zero Denominator Behavior
When the segment has no failed deposits today the share is set to 0 and no error rows are shown.
Backend Formula
totalErrors ? Number(((error.count / totalErrors) * 100).toFixed(1)) : 0, where totalErrors is the sum of segment error counts.
Last Verified At
2026-06-29
metric

Initiated count

Number of card deposits started for a provider and segment in the window; the denominator shown under each rate and the denominator of the approval rate.

Aliases
started card deposits, deposit attempts
Metric Kind
count
Backend Formula
COUNT(*) per provider_key, segment, window_key over deposit rows in [baselineStart, todayEnd).
Last Verified At
2026-06-29
metric

Successful count

Number of successful card deposits for a provider and segment in the window; the numerator of the approval rate.

Aliases
successful card deposits, approved deposits
Metric Kind
count
Backend Formula
COUNT(*) FILTER (WHERE status_enum::text = 'SUCCESS' OR (status_enum IS NULL AND status = 1)).
Last Verified At
2026-06-29
Operational notes

Notes

item

The admin route requires isAuthenticate and checkPermission, then GetCardDepositApprovalRatesService proxies to the casino backend using a system-access-token header.

item

The casino route requires requireSystemAccessToken and checkDomain; the FE never calls the casino backend directly.

item

All numbers originate in the casino backend SQL over public.transaction_bankings filtered to transaction_type = 'deposit'; the admin backend adds no math.

item

The report is count-based and carries no money amount or currency, so no FX or exchange-rate tracing applies.

item

The casino service caches the snapshot for about 30 seconds (CARD_DEPOSIT_APPROVAL_RATES_CACHE_TTL_MS, default 30000) and runs the query in a read-only transaction with a statement timeout (CARD_DEPOSIT_APPROVAL_RATES_STATEMENT_TIMEOUT_MS, default 5000).

item

The response also returns windows.today, windows.baseline30d, and unclassifiedCounts; the page renders the windows timestamp as Last updated and does not render unclassifiedCounts.

item

The flattened errors[] feed is the same per-segment error rows re-emitted at the response root for bot aggregation by key.

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 / 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.

pageReporting / Control Verification

Monitoring workspace for integrity verification runs, compliance scoring, baseline control, and component-by-component failure review.