So my two favorite companies (Stripe and @twilio) published a case study together about everyone's favorite topic, credit card authorization rates.

stripe.com/newsroom/stori…

I want to zoom in on what creates a tenth of that 10% uplift, because it's sort of wild. Image
Have you ever wondered what a credit card transaction looks like to the computers handling it, at the closest-to-the-bare-metal level of detail? Feel they're unlikely to be JSON given we've had them for 50+ years?

You're right. Meet our friend ISO 8583.

en.wikipedia.org/wiki/ISO_8583
As a grossly simplified level of detail, the Internet is a network on which whose commerce gets reflected on other networks, which sometimes crisscross the Internet, shipping ISO 8583 messages between various parties.

Most relevantly from the perspective of declines, to issuers.
Who issues credit cards? Complicated topic, but you can round it to "your friendly local financial institution."

So every bank in the world which has "their own" credit cards, with whomever's logo on it, had to write software to deal with ISO 8583 messages.
Now banks being banks, many of them do not have teams of developers, so they instead had this written for them by e.g. business process outsourcing firms.

And again, much of this is the most legacy of legacy software, still creaking around and mostly working decades later.
Let's talk about mostly working:

Consider the global economy as a system. Imagine the towering pile of software at a particular bank in middle America. Imagine the tiny bit of that software that parses UK zip codes.

Imagine that includes:

ukZipCode.equals(customer.zipCode)
"Is that statement a bug?" is an interesting philosophical question.

If you've used Java, you know that, assuming those are strings, you're going to get a case-sensitive lexical comparison between the zip code on file and the zip code provided in the ISO 8583 message.
And then you might ponder: "But wait a second. Case-sensitive versus non-case-sensitive comparisons don't really matter for US zip codes, which look like 90210. But they plausibly matter for UK zip codes, which look like SW1 (Buckingham Palace)."
"So plausibly, if a user on a mobile device types out sw1 but fails to engage caps lock because mobile typing is hard, and the website accepts the user output and just forwards it to the credit card networks because *shrug* seems reasonable, you'll deny the transaction."
Seems silly, right?

But how would you fix this bug? You'd have to blackbox an individual bank in middle America, somehow send them enough transactions to identify the UK-homed-customer code path, identify it was case sensitive, and then call them to tell them... what exactly?
"Hiya this is not-your-customer and we have a bug report to make. Someone, who probably doesn't work for you and if they did has long since retired, might have written a bit of Java code a few decades ago. That code is subtly bugged, well debatably, and inconveniences users."
Option the second: Adaptive Acceptance.

Stripe processes *a lot* of credit card transactions and sees a lot of declines. Credit card declines are often transient, so firms in the industry will do strategies like instant retry, retry with a backoff, etc.

We have an extra trick.
Since we understand ISO 8583 messages and various ways in which they can be perturbed in ways which don't change the semantic content of the message but do change how computer code might operate it, like for example trying upCase, downCase, and raNdoMcaSe on the zip code.
And we have a machine learning model which holds back a very small percentage of retries (i.e. a lot of retries, in absolute numbers), makes semantically neutral edits to them, and notes which semantically neutral edits are more effective at getting the transaction approved.
Over time, that model will learn in specificity, for a particular bank in middle America vis their UK-homed customers who have typed in lower cased zip codes, that the bank strongly prefers upper casing zip codes. So we just do that for them, for transactions across our network.
This isn't the same as fixing every bug or implementation infelicity in the world, of which there are many, but it is immensely scalable and gets better relatively passively as our business grows and as we have more data exercising edge cases.
And so the current state of the model is, if one introspects it, The Internet's Understanding Of Edge Cases In The Global Economy.

You'd have a really tough time putting that together, as a firm who just wants to charge users. So you can just buy it from us, w/ other services.
This is just one of the things we do to win basis points here and percentage points there for our users. The Twilio case study linked above also mentions e.g. understanding the physical implementation of Japanese credit card networks a lot better than you probably ever want to.
And the aggregate impact of these is pretty material, particularly for our enterprise users. You could hire dozens of engineers and put them on a Payments team, while denying all of their requests to do more meaningful work, and try to learn these nuances yourself.

Or try us.
If you want more technical detail about this, two of my colleagues did a talk on it:

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Patrick McKenzie

Patrick McKenzie Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @patio11

19 Nov
Email is one of the most important skills that isn't, you know, actually taught anywhere, except maybe by apprenticeship in sales and consulting organizations.

This seems like a missed opportunity for every organization which sits downstream of email.
"What do you mean 'email'?"

Literally everything. Inbox management; filters and tags. How to write well for different audiences. The social art of pinging. Difference between a query and status report. How to know what to never ever write in an email. etc, etc
Forward to legal, mark as Privileged and Confidential in subject line and at top, and say:

"Seeking your professional opinion with regards to this email I got [from someone who clearly didn't get the memo we didn't send about what not to write in an email]."
Read 6 tweets
18 Nov
"But how will you compete with AppAmaGooBookSoft's infinite number of engineers to throw at this problem?"
"... Before or after the 5 year head start?"
Shaving context off following:

"If you had an arbitrary amount of talent and money to build a competitor for $PRODUCT, $PRODUCT would be... maybe three years ahead.

The goal, assuming that someone has made this decision today, is for $PRODUCT to be 6 years ahead in three years"
Speaking of which: a good question to have an intuition on is "What set of problems does humanity have insufficient organizational technology to solve, even if it had billions of dollars to throw at them?"
Read 8 tweets
18 Nov
This is, for better or worse, a thing.

A related thing: many Japanese folks will solicitously use first names for foreigners on an assumption this is what they/we want; that is a tough assumption to correct politely.
I try to be pretty solicitous here, but between my inner thoughts and Twitter, I did not spend six years in the salt mines to get first named during a business card exchange. And almost never a -san!

This salaryman is shocked at the state of the new generation.
I still have a deep appreciation for the boss of my boss at my salaryman job, who called me “Patrick” to the entire company during my ceremonial swearing in then paused for a moment, corrected himself, and said: “I apologize, that was clearly inappropriate. McKenzie-san”
Read 4 tweets
16 Nov
Some interesting thoughts in this thread.

I think there are a few places one can make tradeoffs; would encourage people to not plan on having to make all the tradeoffs at once.

(For similar reasons, try to avoid same time as major life transitions like marriage/parenthood.)
Some potential tradeoffs: tapering work rather than going cold turkey (e.g. switch to 2 days a week contractor at old employer), get a consulting pipeline in bag then juggle (harder than you’d think!), bootstrap to $Xk in nights and weekends (longer than you’d think), etc.
Sequence products differently; infoproduct as first offering greatly decreases your weeks-to-$40k-revenue and will motivate you to get a lot of business infra stood up, most importantly the email/marketing engines.
Read 4 tweets
13 Nov
Idle thought:

Clearly there should be investment opportunities in, without loss of generality, new Substack writers, including both by the platform and by others.
“I would certainly quit my job to do that but...”

If the thing you are about to say involves either risk or money then that is An Eminently Solvable Problem.
“Here’s $100k. You’re covered for a year. Here’s our business-in-a-box recommendations. Here’s the Slack where we coordinate cross-promotion in the portfolio.

We don’t want a dollar until you make 2X the old job. After that, we’ll take 20% [of the first million a year.]”
Read 4 tweets
13 Nov
An interesting thread, which I do not have very strong opinions on.
The big question of entrepreneurs is whether value occurs at the network level, the provider level(s), the financial institution, the infrastructure layer, the application layer, the brand layer, or the distribution layer.
“That seems like an awful lot of layers.”

Yeah wait until you hear about how much I’m oversimplifying it.
Read 9 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!