Skip to content

Analytics & Conversion

For paid routes, each request moves through these stages:

402 issued → payment sent → payment verified → settled → upstream served → response completed

Drop-off between any two stages tells you where revenue is lost.

MetricFormula
Attempt ratepayment_attempted / requires_payment
Verification successpayment_verified / payment_attempted
Settlement successsettled / payment_verified
End-to-end conversionresponse_completed / requires_payment
Revenue per paid requestsum(settled_amount) / count(settled)

Every event should carry a shared request_id plus:

  • route_id — which route
  • status_code — HTTP status at this stage
  • pricing_modestatic, rule-based, token-based, or custom-fn
  • settlement_modebefore-response or after-response

For failure events, include failure_code and failure_reason so drop-off reasons are explicit rather than inferred from missing success events.

  • route_id — which routes convert best
  • upstream_id — upstream health impact on conversion
  • pricing_mode — how pricing strategy affects conversion
  • network / asset — payment method performance
  • Gap between verification and settlement — check facilitator health
  • Gap between settlement and 200s — upstreams are failing after payment (see Refund Protection)
  • High 402 rate with low attempt rate — clients aren’t paying, could be price too high or SDK issue