ENGINEERING NOTE 02 / 50 · SMS
Calculate SMS receipt rates without hiding failures
Publish the event being measured and the population being counted. Allocation rate, receipt rate and completed verification rate answer different questions.
Published by OPEN RAMBO. The engineering patterns and pseudocode illustrate designs, not a documented product API. Numerical examples are illustrative.
Define the cohort
Group orders by creation window, requested service and country. Allow the full waiting window to finish before comparing mature cohorts. Mixing new waiting orders with yesterday’s finished orders makes the rate depend on the reporting time.
Show the funnel
Report requested, allocated, received, cancelled and expired counts side by side. A user cancellation is not proof of supplier failure, but silently excluding every cancellation also inflates performance. Present both all-allocated receipt rate and a clearly defined eligible subset.
Label small samples
Nine receipts from ten orders is an observed 90%, not a reliable promise for the next order. Include sample size and observation dates. Separate internal tests from customer orders before grouping; do not remove genuine unsuccessful customer attempts to make the chart attractive.
Illustrative implementation
allocated = 20
received = 12
cancelled = 3
expired = 5
receipt_rate = received / allocated # 60%, illustrative cohortAcceptance check
Every displayed percentage must reproduce from its displayed counts. Keep test exclusions and immature orders visible in separate totals.