The app worked and users hated it. Research found the problem was not features but latency, error handling and a login flow that failed silently on poor connections.
Up from 2.4, sustained twelve months after full rollout.
Across both platforms, measured on release cohorts.
With no change to acquisition spend.
App-related tickets per thousand active users.
Kestrel's app had a 2.4-star average and a churn problem the retail team could not explain. Feature parity with competitors was strong. Review analysis showed the complaints clustered on session timeouts, opaque failures and a balance that lagged reality by up to four hours.
We classified 18,000 store reviews and 40,000 support tickets before touching design. Sixty-eight percent of one-star reviews described three specific failure modes.
Balances and transactions became locally authoritative with background reconciliation, so the app stays useful on a train and never shows a spinner where a number belongs.
Every failure path got a specific, recoverable message. The generic 'something went wrong' screen was deleted from the codebase and a lint rule prevents its return.
Released to 1% of users, then 5, 20, 50 and 100 over seven weeks, with rating and crash rate as explicit gates at each step.
“We had assumed we needed more features. They showed us, with our own data, that we needed fewer failures.”
The first conversation is with the engineers who would run your engagement, not an account manager.
hello@cymbiote.com