The benchmark
Open rate for subscription businesses lands at 18-25%. Above 30% usually means a warmed dedicated sending domain and a plain-text template.
Benchmarks are only useful segmented. Blended numbers average a healthy expired-card bucket against a failing do-not-honor bucket and tell you nothing actionable.
How to read your own number
Break the metric down by decline code first, then by channel, then by attempt number. The weakest cell is almost always where the fixed-schedule cadence is misfiring.
Hold the measurement window constant at 14 days. Longer windows flatter the number by counting customers who would have returned anyway.
Closing the gap
Route retries by decline code, add a high-open second channel, and write copy that names the actual reason for the failure.
Log model, latency and recovery score on every message so improvements are attributable rather than seasonal.