Back to blog
The half-million dollars we had already earned — banner

The half-million dollars we had already earned

May 21, 20263 min read

Written by Codeway


Listen to this article

4:26

  • Introduction
  • What we inherited when we left the App Store
  • Retrying like it matters
  • The lesson we would pass on

Introduction

Nobody churned on purpose. A card expired, a bank declined a routine renewal, and the revenue left anyway — until we started treating failed payments as a system rather than an accident.

There are two kinds of cancellation. In the first, somebody decides your product is not worth the money — that one is a product problem, and it is the honest kind. In the second, a card expires, a bank declines a renewal it has approved eleven times before, or a payment retries at three in the morning on a Sunday and fails. Nobody decided anything. The subscription ends anyway.

The industry has a bloodless name for the second kind: involuntary churn. It is worth being blunter. That is revenue you already earned from a customer who still wants the product, lost to plumbing.

What we inherited when we left the App Store

For most of our history the platform stores handled this for us. When you sell through the App Store, Apple runs the payment, the retries, the tax and most of the billing support, and takes a commission for it. Moving subscriptions to the web changed the economics in our favour and handed us the entire back office at the same time.

At the scale we operate — more than sixty products, users in effectively every market — that back office is not a task, it is a department. Payment processing, subscription state, tax registration and filing in dozens of jurisdictions, billing questions in dozens of languages. All of it real work, none of it work that makes any of our apps better.

“The time we spent on operational tasks could have been better allocated to growth initiatives.”

Gökhan Gezer, Head of Product, Codeway

So we did not build it. Paddle acts as merchant of record: the payments, the subscription lifecycle, the tax compliance and the billing support sit with them, under one integration, and our engineers and finance team went back to the portfolio.

Retrying like it matters

The part we underrated was retry logic. A failed charge is not one event with one cause. It is an expired card, or a daily limit, or an issuer’s fraud heuristic having a bad afternoon, or a soft decline that would clear on Tuesday. Retrying all of those the same way, on the same schedule, is how you convert a temporary decline into a permanent cancellation.

Retain retries against the specifics: the failure code, the card type, where the payment came from, the day and time most likely to clear. Alongside it runs the unglamorous half — email, in-app and SMS prompts asking the customer to update a card, which only works if the messages are clear about what is being charged and when.

recovered from failed payments
$500K+
of failed payments recovered
36%
products on one billing stack
60+

Thirty-six percent of the payments that had already failed came back. That figure lands differently once you know the industry backdrop: billing failures are commonly cited as driving twenty to forty percent of subscription churn, with around a tenth of subscription revenue lost to failed payments before anyone tries to recover it. This is not a rounding error hiding in the payments layer. For a subscription business it is one of the largest single line items nobody owns.

“It’s been a remarkable boost to our bottom line.”

Adem Yavuz Yılmaz, Lead Product Manager, Codeway

The lesson we would pass on

Growth teams instrument the funnel obsessively up to the moment of purchase and then stop. Everything after the first successful charge — renewals, declines, retries, dunning, disputes — tends to belong to nobody in particular, which is exactly why it leaks. Half a million dollars was sitting in that gap. It was not new revenue. We had already earned it.

More Codeway Stories

view all
Codeway’s six verticals: Catalyst Apps, Wishlabs, Wellture, Cosmic Jam, Sparked and Learna, powered by Codeway

Solving scale's organisational problem: six companies, one HQ

Oct 6, 2026
  • Verticals
  • Company
Steadier, not just cheaper: scaling Cleanup on Snapchat — banner

Steadier, not just cheaper: scaling Cleanup on Snapchat

Jul 2, 2026
  • Partnerships
  • Research
Voice is not a feature: what Learna learned at 45 million users — banner

Voice is not a feature: what Learna learned at 45 million users

Apr 8, 2026
  • Partnerships
  • Products

Verticals

  • Learna
  • Cosmic Jam
  • Sparked
  • Wellture
  • Wishlabs
  • Catalyst Apps

Company

  • Publishing
  • Jobs
  • Events
  • Blog
  • Contact Us

Legal

  • Candidate Privacy Notice
  • Aday Aydınlatma Metni
  • Your Voice Privacy Notice
  • Your Voice Aydınlatma Metni
  • Bilgi Toplumu Hizmetleri
  • Ethics
© Codeway, 2026
  • VerticalsJobsBlogPublishing