Field note · 18 June 2026
A purchase event is not yet a revenue definition
The word purchase compresses several commercial states that your event model must keep apart.
When a client emits purchase_completed, the name sounds decisive. The underlying moment may be an authorisation, an order record, a receipt screen or a server confirmation. Those are not interchangeable.
Choose the authority
Client events are excellent for diagnosing screen behaviour. A server or payment-processor record is generally stronger evidence of commercial settlement. Link them with an order reference that does not expose payment credentials.
Keep attempts distinct from orders
A retry can generate several button taps and authorisation calls for one eventual order. Funnel analysis needs both attempt-level friction and deduplicated order success, with labels that make the distinction visible.
Model states that can change
Pending, captured, cancelled and refunded are states over time. If the business question concerns net revenue, a receipt-screen event is insufficient. If the question concerns checkout usability, waiting days for settlement may obscure the immediate journey.
The right event depends on the decision. State that decision first, then select the evidence.