It has been a wretched few weeks to be an Indian cricket fan. The kind of stretch where you stop opening the score updates because you already know what they’ll say. And then, right at the bottom of it, a group of women walked out at the home of cricket and reminded me why I keep opening those updates in the first place.
Let me start with the pain, because there was plenty of it.
First it was the women’s T20 World Cup. India went in as one of the favourites and walked out at the group stage, undone by South Africa and then by Australia in the final league game. That last match was at Lord’s, of all places. Harmanpreet Kaur smashed 56 off 27 and dragged India to 170, the highest total anyone had managed against Australia at a women’s T20 World Cup, and it still wasn’t enough. Ellyse Perry and Ash Gardner knocked off 171 without much fuss and knocked India out. Second World Cup running that we didn’t make the knockouts. For a side that lifted the fifty-over World Cup only last November, going home early in the shortest format has become a familiar wound. We are champions over fifty overs and strangers over twenty. That gap refuses to close.
While that was unfolding, the men were away in Ireland and England, and somehow they made the women’s exit look like a good day.
Ireland was meant to be the warm-up. The soft part of the tour. It turned into the opposite. India lost 2-0. Not just a series defeat after a long unbeaten run, but the first time in history that Ireland have beaten India in a T20I series. Debutant seamers most of us had never heard of ran through a batting line-up fresh off the flat, forgiving pitches of the IPL and suddenly clueless on a surface that moved. That was the first crack.
And there was a subplot the media had been building for weeks. Vaibhav Suryavanshi was supposed to be the story of this tour. Fifteen years old, the youngest player ever called up to a senior India side, Orange Cap and MVP at IPL 2026 with 776 runs at a strike rate most players can only dream of. This was billed as his coronation. Instead he carried the drinks through both Ireland games, then carried them through the first England match too, and by the time he finally got his debut at Bristol he lasted 15 off 10 before an Archer bouncer did him in. The most anticipated debutant in years, and India managed to make even that feel like an afterthought.
If Ireland was a crack, England was the collapse. A 4-0 drubbing. It wasn’t 5-0 only because rain washed out the opener, which is a strange thing to feel grateful for. Six completed matches on this tour, six defeats in a row, the longest losing streak the Men in Blue have ever put together in this format. And remember, this is the reigning T20 World Cup side. The same group hailed a few months ago as one of the finest T20 units ever assembled.
The management dropped Suryakumar Yadav, the man who lifted the World Cup, and handed the reins to Shreyas Iyer. Iyer has now won the toss again and again and won nothing else. Not one match under his captaincy. A new captain, a new plan, and a lot of questions that Gautam Gambhir and the selectors are going to have to answer, because you don’t dismantle a world-champion set-up and then lose to Ireland without owing everyone an explanation.
The salt in the wound came the day the England series ended. England climbed to the top of the ICC T20I rankings and pushed India down to second, ending a run at number one that had lasted more than 1,600 days, all the way back to February 2022. We were the best team in the world on paper for four and a half years. We ended this fortnight as the second-best team getting bowled out for 76 at Trent Bridge.
That was the ledger. All red ink. And then eleven women picked up a pen and started writing in a different colour.
Here is the part that gives me goosebumps. The ground where India’s women were knocked out of the World Cup on the 28th of June was Lord’s. And the ground where they made history two weeks later was Lord’s. Same turf. Same dressing room. Same long walk out through the Long Room. The place that broke their hearts became the place where they became immortal.
For the first time ever, a women’s Test match was played at Lord’s. Fifty years, almost to the week, since Rachael Heyhoe Flint first led an England women’s side out at the ground, and it took half a century for the red-ball game to arrive at cricket’s most sacred address. England versus India. Test number 153 in the history of women’s cricket, and the first at the home of the sport.
The mood around India going in was gloomy, and I understood why. After everything the men had served up, and after the women’s own World Cup heartbreak, who was going to back this side? But I’ll be honest, I wasn’t as worried as most. This India team has always been better over the long format than the short one. The last time they played a Test in England, back in 2021, they held on for a draw. I thought they could compete. What I did not expect was that they would not just compete but demolish.
India batted first and put up 285, with Smriti Mandhana anchoring it on 83, Harmanpreet chipping in 58 and Deepti Sharma 57. A good total, not a great one. Then Kranti Gaud took over.
Gaud is 22, she bowls genuine pace, and on the second morning she ran through England’s top order to finish with 5 for 37. When she got her fifth, she became the first woman ever to have her name go up on the Test honours board at Lord’s. Think about that. A century of men’s names on those boards, and a young fast bowler from India got there first for the women. England folded for 170, with only Amy Jones offering resistance.
India could have enforced the follow-on and didn’t need to, because the second innings turned a strong position into an unassailable one. Mandhana made 70 to go with her 83, Richa Ghosh finished unbeaten on 50, and then Yastika Bhatia produced the innings of her life, a century, 113 runs, the first ever Test hundred by a woman at Lord’s. Two Indians on the honours board in the same match, one for the ball and one for the bat, at a ground that had never seen a woman’s name up there before. India declared on 341 for 7 and set England 457 to win.
Four hundred and fifty-seven. On this ground, in the fourth innings, that was never a chase. It was a sentence.
England had one flicker of defiance. Sophie Ecclestone, who had bowled her heart out for a eight-wicket match haul, then went and made a maiden half-century with the bat. A eight-for and a fifty in the same Test, and she still finished on the losing side, which tells you exactly how one-sided this was. On the fourth morning Sneh Rana wrapped it up, four wickets in the innings and six in the match, and India had won by 270 runs inside 95 minutes of play. The fourth-largest victory by runs in the history of women’s Test cricket.
Kranti Gaud took the player of the match award. Mandhana never got on the honours board, but her 83 and 70 were the spine of both innings, and she’ll know how much they mattered.
Where the men were found wanting, the women stood tall. A frustrated fan needed this. I needed this.
So here is where I land after this fortnight. The men have a reckoning coming, and they’ve earned it. You cannot drop a World Cup-winning captain, lose to Ireland, get swept by England, surrender your number one ranking, and expect the questions to go away. They shouldn’t go away. Accountability is the price of wearing that shirt.
But the same country that produced that collapse also produced the group of women who turned the very ground of their World Cup exit into the ground of their greatest triumph. That is the story I’ll remember from these weeks. Not the 76 all out. The 270-run win. Not the ranking we lost. The honours board we finally reached.
The men will get their chance to answer. The women already have.
Way to go, girls. You carried Indian cricket when it needed carrying the most.
Somewhere in Manchester right now, an IT Director is staring at a Gantt chart that ended three months ago. The ERP went live. The consultants held a celebratory call, sent a closure report with a tasteful cover page, and moved on to their next implementation. The system works, technically. And yet her ticket queue has tripled, her two-person IT team is drowning, finance is quietly rebuilding their old spreadsheets on the side, and the board is asking why the system they spent eighteen months and a serious budget on feels harder than what it replaced.
Nobody budgeted for this phase. Almost nobody does.
I have spent thirteen years at Brainium watching this exact movie play out across mid-market companies, most of them in the UK. The plot never changes. The implementation gets all the attention, all the money, all the steering committee meetings. Then go-live happens, the implementation partner’s engagement ends, and the company discovers that an ERP is not a project. It is a living system that needs people to keep it alive. And those people were never hired.
Let me answer the question directly, because if you found this post searching for ERP support outsourcing, you deserve a straight answer before the storytelling. ERP support outsourcing means engaging an external team, typically dedicated engineers who work only on your system, to handle the ongoing work an ERP demands after go-live: bug fixes, integrations, user support, report building, customisation, and the steady stream of change requests that a real business generates. For most mid-market companies, it costs a fraction of building the equivalent in-house team, and it starts delivering in weeks rather than the months a hiring cycle takes.
Now back to our IT Director in Manchester, because her situation explains why this model exists.
The first ninety days after go-live are brutal by design. Users who nodded through training sessions discover they retained nothing. Edge cases the implementation team never encountered start appearing daily. That integration with the warehouse system that “worked in testing” chokes on real volumes. Month-end close, the true stress test of any ERP, exposes configuration decisions that seemed sensible in a workshop and are catastrophic in practice.
Industry analysts have been saying for years that a majority of ERP implementations fail to deliver expected value, and in my experience the failure rarely happens during implementation. It happens in the twelve months after, when there is nobody left to adapt the system to the business. The consultants are gone. The internal team knows how to reset passwords, not how to rewrite a posting rule.
The obvious answer is to hire. Every IT Director I speak to has tried, or has done the spreadsheet and given up before trying.
An experienced ERP specialist in the UK, someone who genuinely understands both the platform and the business processes it encodes, commands a serious salary. You need at least two, because one person is a resignation letter away from disaster. Add recruitment costs, benefits, and the six months it takes them to learn your specific configuration. You are now looking at a standing annual commitment that most mid-market budgets simply cannot absorb for what the board sees as “keeping the lights on.”
So companies compromise. They stretch the existing team, which burns people out. They buy a support contract from the ERP vendor, which gets them a ticketing portal and a service level agreement that measures response time, not resolution. Or they call the original implementation partner back at day rates that make the CFO’s eye twitch, for work that is fundamentally unpredictable in volume.
None of these are people. They are all, in different disguises, more software and more paperwork wrapped around the absence of people.
The model I have watched work, and the one we have built Brainium’s ERP support practice around, is dedicated hiring. Not a helpdesk. Not a pool of anonymous engineers who pick your ticket off a queue. A named engineer, or a small named team, who work exclusively on your system, attend your standups, know that Sandra in finance always means the aged debtors report when she says “the report,” and accumulate the same institutional knowledge an employee would.
The economics work because of geography. A dedicated ERP engineer working from our Kolkata team costs a UK company a fraction of the equivalent local hire, without the compromise on capability that offshore work had a reputation for fifteen years ago. The talent pipeline here for ERP platforms, integrations, and the surrounding stack is deep and getting deeper. What the client buys is not cheap labour. It is the ability to afford continuity, which is the one thing an ERP actually needs and the one thing every alternative model fails to provide.
The difference shows up in the texture of the work. A ticket-based support contract fixes what breaks. A dedicated engineer notices that the same category of thing keeps breaking and fixes the cause. A day-rate consultant answers the question you asked. A dedicated team member answers the question you should have asked, because they were in the room when the problem first surfaced. Over a year, that compounding knowledge is the gap between an ERP that slowly ossifies and one that keeps pace with the business.
If you are an IT Director evaluating ERP support outsourcing, here is the filter I would apply, and I say this knowing it cuts against some of our own competitors’ models. Ask one question: will I know the names of the people working on my system, and will those names be the same in six months?
If the answer is a rota, a queue, or a vague assurance about “our team,” you are buying a service level agreement, not capacity. SLAs are fine for infrastructure. ERPs are not infrastructure. They are the digitised nervous system of your business, and nervous systems need people who know them, not people who can look them up.
The post-go-live crisis is not a sign your implementation failed. It is a sign your ERP is being used, stress-tested by reality, and asked to change. That is exactly what you paid for. The only failure is meeting that moment with a support portal when what the moment demands is people.
Our IT Director in Manchester, by the way, is a composite. But the pattern is drawn from real engagements, and if her Gantt chart looks like yours, the fix is not another module or another licence. It is two or three good engineers who wake up every day thinking about your system. That is what we build at Brainium: dedicated ERP support teams for mid-market companies who need the people their budget could never hire locally. If that gap sounds familiar, let’s talk before month-end close does the talking for you.
A retail founder once told me his app team and his ERP team hadn’t spoken to each other in four months. Not because of a conflict. Because nobody’s job was to make them.
I remember sitting across from him and almost missing the whole point.
He’d called me in because he wanted to talk about replatforming his storefront. New frontend, new checkout, the works. I had a proposal half-written in my head before he finished his second sentence. That’s the trap in this business. Someone says “we need a new app” and you start estimating instead of asking why.
I caught myself and asked one question instead: “When a customer’s order moves from your storefront to your warehouse system, what happens?”
He didn’t know. Not vaguely. Completely didn’t know. He called in his ops lead, who didn’t know either, and then his app lead, who also didn’t know. Three people in the room, each one responsible for a piece of the business, and not one of them could tell me whether an order placed on the app actually landed correctly in the system that was supposed to fulfill it.
That’s the moment I stopped talking about a storefront redesign.
Two teams, two roadmaps, two definitions of done
Here’s the pattern, and once you see it you’ll notice it everywhere in retail. One team owns the ERP or the warehouse system. Another team owns the app or the storefront. Both teams have sprint boards. Both teams ship on schedule. Both teams can show you a demo that works.
And the customer still feels like they’re dealing with two different companies.
Nobody planned it this way. Nobody sat down and decided to split the business into two disconnected projects. It happens because budgets get approved separately, teams get hired separately, and “done” gets defined separately. The app team’s definition of done is a feature that works in the app. The ERP team’s definition of done is a ticket that’s closed. Neither definition includes the question that actually matters to the person paying for the product: does my order, my loyalty points, my return, follow me correctly from one system to the other?
I’ve now watched this play out in warehouses and I’ve watched it play out in loyalty apps, in industries that have nothing else in common.
We spent close to two years embedded inside a UAE retail and sports group’s SAP EWM operations. Real problems, the unglamorous kind: putaway logic failing on multi-floor bin selection, near-expiry stock not routing to the right storage, manual pick-pack steps that should have been automatic years earlier. None of that was an app problem or a storefront problem. It was the back office quietly falling behind the pace the front end had already set, and nobody owning the gap between the two.
Around the same time, we built a loyalty app for a UK pet retail brand where the problem looked completely different on the surface. Hundreds of stores, a punch-card loyalty scheme, and a customer who could not be recognised the same way twice. Walk into the store, you’re a stranger. Open the app, you’re a different stranger. The fix wasn’t a smarter app. It was building the connective layer so the till and the app finally agreed on who the customer was.
Different tech stacks. Different countries. Same root cause both times: two systems that each worked fine on their own and had never been asked to work together.
My time in this industry has taught me that the fastest way to waste a client’s money is to answer the question they asked instead of the one they should have asked. Early in my career I pitched a full platform rebuild to a client because that’s what he requested in the first meeting. Four weeks in, I found out his real problem wasn’t the platform. It was two internal teams that had stopped talking after a reorg. I had to go back and tell him the proposal was wrong. Uncomfortable conversation. The right one to have.
So now I ask this before I let anyone talk about a redesign, a migration, or a rebuild:
When something crosses from one of your systems to another, does it happen automatically, or does someone have to notice it’s broken first?
If the answer takes more than a few seconds, or if it takes three people in the room to even attempt an answer, that’s the real project. Not the frontend. Not the backend. The handoff between them.
You don’t need a new platform to start fixing this. You need a name.
Pick the one handoff in your business where a customer’s order, points, return, or history moves from one system to another. Ask whoever’s closest to it what happens when that handoff breaks. If you get a shrug, or three different answers from three different people, you’ve found your actual bottleneck, and it was hiding behind whichever team asked for budget first.
Fund that conversation before you fund either team’s next roadmap. It’s cheaper, and it’s the fix that actually reaches the customer.
If you’re looking at a similar gap in your own stack, a conversation with Brainium’s engineering team costs nothing and might save you the four weeks it took me to learn this the hard way.
Today, June 24, Lionel Messi turns 39.
Two days ago, in Dallas, he became the highest scorer in the history of the FIFA World Cup. Eighteen goals across six tournaments spanning two decades. He is the only man, in the long, complicated, beautiful history of the game, who can say that.
I want to tell you what those eighteen goals actually mean. Not as statistics. As a story.
June 16, 2006. Gelsenkirchen, Germany. A skinny eighteen-year-old with long hair comes off the bench for Argentina against Serbia and Montenegro. Argentina are already winning comfortably. The young substitute has exactly one job: don’t make a mess of this. He provides an assist, then scores. Six-nil final score.
He was 18 years and 358 days old that afternoon. He became Argentina’s youngest World Cup scorer in history.
Exactly twenty years later, on June 16, 2026, at Kansas City, the same man scored a hat-trick against Algeria to draw level with Miroslav Klose’s all-time record of sixteen World Cup goals. Same date. Different century, almost. First goal to record-equalling goal, twenty years to the day.
Football does not do symmetry like this. It just doesn’t. And yet here we are.
What nobody in those Kansas City stands fully knew was what Messi was carrying when he walked out against Algeria.
His father, Jorge, the man who had packed up the family’s life in Rosario and moved to Barcelona when Lionel was thirteen so that the club could pay for his growth hormone treatment, was back home dealing with a health situation the family had asked everyone to treat with discretion. After Messi scored that first goal against Algeria, he pulled his shirt over his face and wept. Teammates stood around him confused, then gentle. They understood something was wrong. “It wasn’t related to football,” Messi said afterward. “I had some tough days. My teammates gave me a lot of strength.”
He still scored three.
I have watched Messi play football for the better part of my adult life, and I genuinely do not have the language to tell you what it takes to do that. To be that far from someone you love, carrying that kind of private weight, on the biggest stage the sport has, and still produce a hat-trick. His first at a World Cup. In his two hundredth international appearance.
Six days later in Dallas, Argentina faced Austria.
In the ninth minute, Messi stepped up for a penalty. The record, Klose’s sixteen goals, was one goal away. He stuttered his run-up. The ball went wide right. I imagine every Argentinian watching the game aged slightly in that moment.
Here is the thing about Messi that separates him from everyone else I have watched play sport. He does not carry a missed penalty into the next action. There is no visible sulking, no head dropped, no body language of defeat. He simply recalibrates.
Thirty-eight minutes in, Thiago Almada let a pass from Facundo Medina roll through his legs untouched. This looks careless until you realise it was a decision, made because Almada had already seen what Messi had seen: the Austrian goalkeeper was leaning. Messi’s left foot met the ball and curled it into the corner. Seventeen World Cup goals. Record equalled. Record broken. History.
Deep in stoppage time, he added an eighteenth. Not a spectacular goal. A scramble inside the box, a shot blocked, a rebound, a finish through a crowd of Austrian bodies. The kind of goal that requires presence, timing and the absolute refusal to stop moving. That refusal is the thing. At 38, in his sixth World Cup, after a missed penalty, after days of private anguish about his father, he was still moving.
The number eighteen sits alone now at the top of a list that contains the names of every great striker who has played this tournament since 1930.
Miroslav Klose, whose record Messi broke: sixteen goals across four World Cups, a disciplined, intelligent German forward who made a career out of being exactly where the ball was going to land. Kylian Mbappe, who on the same evening that Messi set the record of eighteen, scored twice against Iraq to pull level with Klose on sixteen. He is twenty-seven years old. He has time.
Behind them: Ronaldo, the Brazilian one, on fifteen. Gerd Muller, fourteen. Just Fontaine, thirteen, all in one tournament in 1958.
Messi has twelve World Cup goals since turning thirty-five. He has done the majority of the work of this record in what should have been the decline phase of any footballer’s career. He scored seven in Qatar 2022, winning Argentina the title, winning the Golden Ball, doing the one thing his entire career had told the world he could not do until he finally did it.
Now five more in two games at this tournament, with Jordan still to come.
There is something about watching greatness at this stage of a life that hits differently when you’re watching it in real time.
I am a football fan, but I am also someone who runs a business, who tries to build things, who thinks often about what it means to keep going when the easier decision is to slow down and let someone else take the weight. Messi did not have to be here. He said himself before the tournament that he wasn’t sure if his body or his mind would let him. He had a hamstring problem. He is 38. Normal people at 38 are thinking about their knees on stairs.
He decided to show up anyway. And then, carrying grief he hadn’t asked for, he showed up inside the showing up.
The tears after the first goal against Algeria moved me more than the goal itself. Not because I am sentimental about footballers crying, but because it told me something true. He is not a machine. He is not performing invincibility. He is a man who loves his father, who was far from home when his father needed him, who had nowhere to put that except into the only thing he has done with his body since he was six years old.
He put it into goals.
Eighteen of them, across twenty years, across six World Cups, from the skinny substitute in Leipzig to the man who writes his name at the top of the only record in football that nobody will now approach in any of our lifetimes.
Happy birthday, Leo. Go win the thing, AGAIN.
Last year, a VP of Engineering at a mid-sized UK retail firm found Brainium through a search. He read enough to be interested. He filled out the contact form. And then he vanished.
Three weeks later, we followed up. His reply was brief and blunt: “We went with someone else. Your site made us work too hard to understand if you were the right fit, so we moved on.”
He was not complaining about our capability. He was not complaining about our pricing. He was complaining about the experience of trying to evaluate us. That sentence sat with me for weeks.
For decades, B2B sales ran on information asymmetry. You held the knowledge. The buyer had to come to you for it. Gate the content. Force a demo request. Run them through your qualification funnel. You held the cards, and that leverage was real.
AI killed that advantage overnight.
Today, a prospect can describe your service category to any AI tool and get a vendor shortlist, a comparison of models, a set of qualifying questions, and a rough pricing benchmark before they ever visit your website. The research that used to happen inside your funnel now happens before they enter it. Which means every gate you erected, every “book a call to learn more” wall you built, every form that stood between a buyer and basic clarity, is now working against you. Actively.
I have been watching these patterns show up in the market week after week, and they map to findings IDC published recently on the same shift.
The first is gated content. When a buyer can get a summary in thirty seconds from an AI tool, asking them to trade their email address for a whitepaper is not an exchange they want to make. Worse, if your best content sits behind a form and is invisible to AI indexing, you have removed yourself from consideration before the buyer even knew you existed. The gate does not slow the buyer down. It routes them to your competitor.
The second is multi-step qualification chains. Buyers today want to self-evaluate first. They want to see the product, understand the value, and decide if a conversation is worth their time, before they talk to anyone. When you put three discovery calls between them and that understanding, they do not wait. They move on to someone who trusts them enough to show their hand.
The third is opaque pricing. “Contact us for pricing” used to create negotiating leverage. Today it signals one of three things: inconsistency, a commercial model that cannot survive comparison, or a fear of the market. When a buyer can benchmark your alternatives in minutes, withholding pricing does not protect you. It sends traffic to whoever publishes theirs.
The fourth is requiring a human for basic information. A buyer should not have to schedule a thirty-minute call to find out whether your platform integrates with Salesforce. If getting that answer requires a sales conversation, they draw the obvious inference: if pre-sales is this much effort, what does post-sales look like? Your documentation is not a cost. It is your first sales conversation. It should be a good one.
The fifth is what I call discovery theater. When a prospect has to re-explain their company, their pain, and their requirements to three different people across three different calls, what they hear is that your internal coordination matters more than their time. High-intent buyers read that as a preview of the engagement ahead. Most of them are right to.
After that conversation with the UK retail VP, I told my team something that shifted how we think about sales entirely.
By the time a buyer reaches us, they are not at the start of their journey. They are near the end. The research is done. The shortlist exists. Our job is not to qualify them. It is to confirm what they already suspect: that we are the right choice. That is a completely different motion.
It means your website needs to answer the questions buyers are asking AI tools, not just the questions that make you look good in a brochure. It means your case studies need to be specific, not polished. Real numbers, real outcomes, real constraints, even the ones that make the project sound harder than you expected. It means your pricing model, at minimum, needs to be visible. And it means your sales process needs to carry some respect for the fact that the buyer already knows things.
At Brainium, we had to work through this ourselves. Our Dedicated Hiring service is actually straightforward: vetted engineers, onboarded in forty-eight hours, at roughly half the cost of a local hire, no long-term commitment. That is the entire value proposition. It should live on the homepage, in plain language, without a form standing in front of it.
For a long time, it did not. It does now.
The buyer who found you already made a decision. The only question is whether your website confirms it or reverses it.
She had solved the matching problem.
Six weeks after launching the quiz, the founder in Pune was looking at a return rate that had dropped from 14 percent to 6 percent on her hero serum. Her support inbox had quieted. Her customers were arriving at the right product the first time, because they had told her exactly what they needed and she had listened.
But she was looking at another number now. And this one was harder to explain away.
Her post-purchase upsell was not working.
She had set it up the way most Shopify operators do. A third-party app sitting between the order confirmation and the thank-you screen, showing a “you might also like” carousel of three products. Customers who had just bought the serum were being shown a vitamin C booster, a night cream, and a facial mist. All reasonable suggestions. All completely generic.
The attach rate was 4.2 percent.
She called me to ask if that was normal. I told her it was actually above average for a cold carousel. Then I asked her what she knew about the customer in the moment that carousel was showing.
She thought about it. “I know what they just bought.”
I asked her what else she knew.
Another pause. “I know their skin type. I know their primary concern. I know what gaps they said they had in their routine. I collected all of that in the quiz.”
So why, I asked, is the upsell showing them a generic carousel instead of the one product that the quiz already identified as the logical next step in their routine?
She did not have an answer. But the question was the whole problem.
This is the most common failure mode I see in D2C checkout strategy. A brand invests real effort into understanding the customer at the top of the funnel, and then forgets everything it learned the moment the transaction is complete.
The quiz had written her customers’ skin profiles directly into Shopify Customer Metafields. The data was sitting there, structured and permanent, every time a customer hit that post-purchase screen. The upsell app had no idea it existed, because the app was not built to read it. It was built to show a carousel. So it showed a carousel.
This is not a technology problem. It is an architecture problem. And Shopify’s Checkout Extensibility is the tool that closes the gap.
Most founders hear “Checkout Extensibility” and picture a settings panel somewhere in their Shopify admin. It is not that. It is a fundamental redesign of how logic can be applied at the most valuable moment in the customer lifecycle.
Before this architecture existed, modifying what happened inside or immediately after the checkout required injecting custom code into a checkout template that Shopify did not officially support editing. It was brittle. It broke during platform updates. It created security surface area that Shopify’s compliance frameworks did not cover. And it ran outside the performance sandbox, which meant every clever upsell widget was silently taxing your Core Web Vitals.
Checkout Extensibility replaces all of that with a sandboxed environment built on UI extensions and WebAssembly components. Your post-purchase logic runs inside Shopify’s own infrastructure, not bolted onto the outside of it. It has direct, native access to the order that just completed, the customer profile attached to that order, and the live inventory state of your entire catalogue.
That last part is what matters for what she needed to build.
The implementation she eventually built has three moving parts, and the logic connecting them is simpler than it sounds.
The first part is the trigger condition. When an order completes, the post-purchase extension reads two things: the product that was just purchased, and the customer metafield where the quiz wrote the skin profile. If the customer said their primary concern was pigmentation and they just bought the serum formulated for pigmentation, the system knows they are mid-routine. They have the treatment. What they do not have yet is the booster that enhances it.
The second part is the product selection. Instead of a static carousel, the extension queries the Storefront API in real time with the profile data as parameters. It returns one product. The one product that the quiz logic already identified as the correct next step for this specific skin type and concern combination. Not the three most popular products in the vitamin C category. The one product that makes sense given what this customer told her four weeks ago when they first visited the store.
The third part is the inventory check. This is where the legacy approach used to create operational nightmares. An out-of-stock item appearing in a post-purchase offer generates a confirmed sale that cannot be fulfilled. Checkout Extensibility communicates directly with Shopify’s inventory ledger. If the recommended product is below the buffer threshold she set, the system skips it entirely and surfaces the next match in the logic queue. The customer never sees a product that cannot ship tomorrow.
There is a reason this logic should live here and not on the product page or inside the cart.
On the product page, a recommendation creates a fork. The customer can choose the original product, choose the recommendation, go back and compare, or leave entirely. You are introducing optionality into a decision that has not yet been made. Every option you add is a potential exit ramp.
Inside the active checkout sequence, the same dynamic applies. A cross-sell attempt before payment is processed is a gamble with the primary transaction. One moment of friction, one unexpected line item, one question the customer did not want to have to answer, and the cart gets abandoned.
The post-purchase window is structurally different. The primary order is already confirmed, already paid, already sent to the order management backend. A rejected upsell at this stage has a zero percent chance of costing you the original sale. The customer has already made the hard decision. You are asking them to make a much easier one: do you want the thing that goes with what you just bought?
And because Checkout Extensibility enables one-click authorization, the secondary purchase does not require the customer to re-enter their card details or shipping address. Those are already in the system from the transaction they just completed. The friction has been reduced to a single binary choice: yes or no.
The trust is at its peak. The data is already in the room. The only question is whether your checkout is smart enough to use it.
Her attach rate moved from 4.2 percent to 11.8 percent over the following sixty days.
That number needs context to mean anything. At her average order value of around three thousand rupees, the upsell product was priced at roughly twelve hundred rupees. Before the rebuild, on a hundred post-purchase screens shown, she was capturing four secondary transactions. After the rebuild, she was capturing almost twelve.
But the number that changed the shape of her P&L was not the attach rate itself. It was the CAC on those twelve transactions.
Every post-purchase sale carries a customer acquisition cost of zero. The customer was already acquired. The ad spend, the influencer fee, the discount code that brought them in, all of that cost is attributed to the primary order. The secondary transaction is pure incremental revenue, and its only costs are the product and the fulfilment.
At a 40 percent gross margin on the upsell product, that incremental revenue flows almost directly to Contribution Margin 3. When you are building toward a 5:1 LTV to CAC ratio, there are very few levers that move it this cleanly. The quiz improved both sides of the equation simultaneously, as we covered last time. The intelligent post-purchase offer improves the LTV side without touching the CAC side at all.
The quiz told her who her customer was. The checkout used that knowledge at the moment it was worth the most.
Three months after both systems were live together, she showed me something I had not anticipated seeing so quickly.
Her email retention flows had started performing differently. Not dramatically. But measurably. The thirty-day reorder sequence, the one targeting customers who had bought the serum but not yet returned, was converting at a rate about 2 percentage points higher than before.
The reason, when we dug into it, was straightforward. The customers who had taken the quiz, bought the serum, and then purchased the booster through the post-purchase offer were a different cohort from the ones who had only bought the serum. They had more invested in the routine. They had made two consecutive decisions that reinforced each other. The booster made the serum work better. The serum made the booster feel necessary. By the time the thirty-day email arrived, these customers were not being asked to remember a brand they had tried once. They were being asked to restock a system they had already built.
This is what the series has been building toward from the beginning. Each layer compounds the one before it. The margin discipline from the earliest posts funds the ad spend. The ad spend brings in qualified traffic. The product page converts that traffic without leaking trust. The retention flow extends the lifetime of each customer. The quiz lowers return rates and sharpens targeting simultaneously. And the intelligent checkout turns the single highest-trust moment in the customer relationship into a revenue event that costs nothing to acquire.
She is not spending more to grow. She is extracting more from what she already built.
That is the whole argument.
This is post ten in the series on D2C profitability on Shopify. The earlier posts cover retailer margin costs, ad attribution, discounting’s hidden tax, store design, membership commerce, the 90-day retention flow, the product page, the post-purchase upsell, and zero-party data. If you have not read them, start from the beginning.
If you want to build a native, data-connected checkout experience on Shopify, Brainium engineers this end to end.
She ran a clean beauty brand out of Pune. Three years in, and her ad creative had finally found its rhythm. Her CPCs were down, her conversion rate was healthy, and her retention flows from the last post in this series were quietly compounding revenue every week without her lifting a finger.
But there was a number she could not move. Her return rate.
Not catastrophic. Not the kind of number that shows up in a board deck with a red arrow next to it. Just a steady, grinding 14 percent on her hero serum, month after month. Customers loved the brand on social media. They wrote long, enthusiastic captions about it. And then one in seven of them sent the product back.
When she pulled the return reasons, almost all of them said the same thing in different words. “Not right for my skin type.”
I asked her how a customer chooses which serum to buy on her site. She walked me through it. A collection page. Six products, each with a clean photo and a paragraph of copy. The customer reads the descriptions, picks the one that sounds most like their situation, and adds it to cart.
I asked her: how does a customer know what their skin type actually is?
She paused. “I mean… they probably know. Or they guess.”
That guess is costing you 14 percent of every order you ship.
For years, the standard playbook for understanding a customer was to watch them. Pixel-based retargeting, lookalike audiences built from purchase history, algorithms that needed three or four orders before they started to get a person right. It worked because there was no alternative. You could not ask a stranger on the internet a direct question and expect an honest answer before they had even decided to trust you.
That playbook is breaking. iOS privacy changes and the slow death of third-party cookies have made behavioral signals weaker every quarter. Brands are paying more to reach fewer people with less certainty about who those people actually are.
But here is what nobody fully priced in. The same privacy shift that broke behavioral tracking also created an opening. Customers have become more comfortable, with directly telling a brand what they want, as long as the exchange feels like it is in their interest. A skincare quiz that asks about skin type and ends in a personalized routine does not feel like surveillance. It feels like a consultation.
This is zero-party data. Information the customer hands you on purpose, because answering the question gets them something better in return. And unlike a cookie, it cannot expire, get blocked, or get regulated out of existence. It sits inside your own Shopify database, owned by you, forever.
The data a customer gives you on purpose is worth more than the data you have to infer.
Picture the two paths side by side.
Path one: the customer lands on a collection page showing every serum you sell. They read six product descriptions, each one trying to sound like it was written for them specifically. They pick one based on a feeling. Maybe they are right. Maybe they are not. Either way, you will not find out until the return request arrives three weeks later.
Path two: the customer answers four questions. Skin type. Primary concern. Age range. Current routine gaps. By the third question, something has already shifted. They are not browsing anymore. They are being consulted. And at the end, instead of six products to choose between, they see one. The one that matches what they just told you about themselves.
The collection page asks the customer to do the work of matching themselves to a product. The quiz does that work for them, using information only they have.
This is not a cosmetic difference. It changes what the customer is doing on your site. Browsing is a search task with an uncertain outcome. A quiz result is a recommendation from someone who appears to understand the problem. The first invites comparison shopping and second-guessing. The second invites a single decision: yes or no to the thing built for you.
Here is where most attempts at this go wrong. A founder hears “quiz” and reaches for a third-party app from the Shopify App Store. It bolts a popup or an embedded iframe onto the storefront. It works for a week. Then it starts loading slowly on mobile, your Core Web Vitals take a hit, and the very SEO gains we discussed two posts ago start eroding from a feature meant to improve conversion.
The right way to build this treats the quiz as part of your store’s data architecture, not a decoration on top of it.
As a customer answers each question, that answer should write directly to a Shopify Customer Metafield and update their customer tags in real time. The moment someone says “combination skin, primary concern pigmentation,” that profile exists permanently. It is available to your retention flows, your email segments, your SMS campaigns, and every future interaction with that person, without anyone exporting a spreadsheet.
Then, instead of dropping the customer onto a generic results page, use the Storefront API to query your live inventory and build their result in real time. Not a category. Not a list of five options that sort of fit. One serum, possibly bundled with a complementary product, chosen because it matches what they told you four questions ago.
And build the whole thing using native Shopify sections or lightweight components, not a heavy embedded widget. The quiz should feel like it belongs to your store, because technically, it does. It loads as fast as everything else on the page, because it is not foreign code asking your theme for permission.
Go back to the founder in Pune. The 14 percent return rate was not a quality problem with her product. It was a matching problem at the point of sale. Customers were buying serums formulated for oily skin when they had dry skin, and discovering the mismatch only after using it for a week.
A quiz that routes a dry-skin customer to the dry-skin serum does not just improve their experience. It removes the single biggest driver of her return rate, because the product arriving at their door is no longer a guess.
This hits Contribution Margin 3 from two directions at once. Returns carry real cost, restocking, repackaging, sometimes the product cannot be resold at all, and every percentage point you shave off that number drops straight to your margin. At the same time, when your retargeting and lookalike audiences are built from customers who told you their exact skin type and concern rather than customers who merely clicked an ad, your acquisition targeting gets sharper. Lower CAC and lower returns, from the same four questions.
If you have been tracking the 5:1 LTV to CAC ratio through this entire series, this is one of the few levers that improves both sides of that equation simultaneously. It lowers the cost of acquiring the right customer, and it raises the lifetime value of the customer you already have by making sure the first product they receive actually works for them.
She built the quiz over two weeks. Four questions, native Shopify sections, results pulled live from inventory and matched to skin type and concern.
The first full month, her return rate on the hero serum dropped from 14 percent to 6 percent. Her AOV moved up slightly too, because the quiz result page suggested a complementary product alongside the main recommendation, and customers who had just been “understood” were more willing to trust a second suggestion.
But the number that mattered most to her was not on the revenue side at all. It was the support tickets. The “this didn’t work for my skin” emails, the ones that used to eat an hour of her time every day, dropped by more than half.
She told me something I have heard in different forms from almost every founder in this series by now. “We were spending so much money trying to find the right customers. We never thought to just ask the ones who showed up what they actually needed.”
The next quiz question is not a feature request. It is a question your customer is already willing to answer. Build the form, and let them tell you.
This is post nine in the series on D2C profitability on Shopify. The earlier posts cover retailer margin costs, ad attribution, discounting’s hidden tax, store design, membership commerce, the 90-day retention flow, the product page, and the post-purchase upsell. If you have not read them, start from the beginning.
If you want to build a native zero-party data system into your Shopify store, Brainium builds this end to end.
A few months ago, Brainium completed a UI/UX design engagement for Gymfluence, a B2B SaaS coaching platform built for the Nordic market. Our mandate was design only: information architecture, visual system, component library, and screen-level UX for the coach dashboard and marketing site.
No development. No backend. Just design, done properly.
I want to share what that engagement taught me, because several of the lessons surprised even me and I have been doing this for over a decade.
Gymfluence serves two users: the coach and the gym member. It is easy to assume the member experience should get most of the design attention, because members are the end users and the retention metric lives with them.
Wrong. The coach is the paying customer. The coach pays the subscription. The coach evaluates whether to renew or cancel. And the coach is spending the most time inside the product, monitoring adherence, tracking progress, managing a portfolio of clients simultaneously.
We reoriented the entire design priority stack around this insight. The coach dashboard became the primary design surface. The member interface followed.
This applies to almost every B2B SaaS product I have seen: the payer and the primary user are often different people, and design investment should follow the payer, not the most visible surface.
The Gymfluence client base is Nordic. That sounds like a minor detail until you are making decisions about information density, data privacy signalling, and how trust is communicated visually.
Nordic users have measurably different expectations around these things compared to what a South Asian or US-trained product team would default to. The dashboard density that reads as “powerful and comprehensive” to an Indian enterprise buyer reads as “overwhelming and untrustworthy” to a Scandinavian coach who values clarity and restraint above feature richness.
We calibrated. It required real user validation, not assumptions.
If you are building a product for a geography different from where your team is based, that localisation work has to be built into the design process, not treated as a post-launch polish task.
The deliverable that matters is not the polished Figma presentation your team shows investors. It is the component library the development team can actually build from.
Screens are a snapshot. Components are infrastructure.
On Gymfluence, we delivered a structured component set covering data display cards, status indicators, progress visualisations, and navigation patterns, all with documented states. The development team received something they could extend as the product grew, not something they had to reverse-engineer.
Every design partner Brainium engages with gets this as a standard deliverable. I am consistently surprised how rarely other design vendors include it.
I wrote the complete methodology that came out of this engagement as a detailed guide on the Brainium blog. It covers seven specific approaches — from journey auditing to visual identity strategy to FAQ schema for AI search visibility.
If you are evaluating a redesign for your SaaS product or want to understand how to brief a design partner properly, that piece is worth reading: Best Approaches for UI/UX Redesign in B2B SaaS: What Actually Works
The Gymfluence engagement was a clean, well-scoped project that gave Brainium the conditions to do design work at its best: clear brief, responsive client, defined deliverables. The product is live. The coaches are using it. And we walked away with a sharper methodology for the next SaaS redesign we take on.
If you are building in the coaching, wellness, or professional services SaaS space and thinking about a redesign, I am happy to talk. Drop me a note through Brainium’s contact page or connect with me on LinkedIn.
Add SouravSinha.com as your Preferred Source on Google to stay updated with AI, software development, digital transformation, and technology insights.
I want to tell you about something that happened in a classroom in 1965.
A Harvard psychologist named Robert Rosenthal walked into an elementary school and gave the kids a standard IQ test. Nothing unusual. But before he left, he handed the teachers a list. Twenty percent of the children, he told them, were special. These were the ones with extraordinary, unlocked potential – the ones who were about to bloom.
He was lying.
The list was random. Those kids were no different from anyone else in the room.
Rosenthal came back a year later. The children on his fake list had pulled dramatically ahead in IQ scores. Not because of genetics. Not because of extra tutoring. But because the teachers believed something about them and that belief quietly changed everything. Their tone, their patience, the way they leaned in a little more when those kids spoke. The children absorbed that energy and, without knowing it, started becoming who their teachers believed they already were.
This is called the Pygmalion Effect. And once you understand it, you cannot unsee it in your own life.
Here is the uncomfortable question it forces: Who are the people around you, and what do they quietly believe you are capable of?
Think about your inner circle right now. The people you spend the most time with – your colleagues, your friends, maybe the WhatsApp group you never mute. When you talk about a goal you have, a business you want to build, a number you want to hit, a version of yourself you’re trying to become, what’s the energy in the room?
Do they nod and say that’s great, you should do it? Or do they lean forward and say that’s interesting, but why not bigger?
There’s a massive difference between those two reactions. One feels better in the moment. The other actually makes you better over time.
I’ve noticed this in my own journey. The rooms that made me grow were never the comfortable ones. They were the ones where I felt slightly out of my depth. Where the people around me were moving faster, thinking bigger, and holding expectations for me that I hadn’t yet held for myself. Those rooms were often agonizing to sit in. Your excuses sound hollow there. Your justifications for slow execution don’t land. You become very aware, very quickly, of the gap between where you are and where you could be.
But that gap? That’s not shame. That’s signal. It’s the friction of your old self-image rubbing against what you’re actually capable of.
The problem is most of us are optimizing for the opposite. We build circles that feel safe. People who validate us when we fall short, who explain away failure with us, who celebrate small wins just a little too loudly. It feels like loyalty. It feels like support. But what it actually is, if we’re being ruthlessly honest, is a very comfortable ceiling.
Here’s the principle I’ve come to live by: If the people around you aren’t making you feel slightly underqualified, they’re not accelerating you. They’re just keeping you company.
That doesn’t mean you need to drop everyone you care about and cold-call billionaires. It means you need to deliberately create friction in your environment. Seek out the mentor who doesn’t let you play small. Find the partner who looks at your five-year plan and asks why you haven’t done it in twelve months. Put yourself in the rooms where your current targets are someone else’s baseline.
You will feel small at first. That’s not a warning sign. That’s the tuition.
The Pygmalion Effect works in both directions. When people expect little of you, you quietly shrink to meet that expectation too. Which means that cozy circle of low expectations isn’t neutral – it’s actively pulling you down.
You don’t rise to your goals. You rise or sink to the level of what the people around you believe you can do.
So choose your rooms carefully. Enter the uncomfortable ones. Stay long enough to stop feeling like an outsider. And watch what starts to happen to who you are becoming.
The discomfort is temporary. Staying small is permanent.
What did this make you think about? I’d love to know which room you need to walk into. Drop it in the comments.
He had the creative dialed in.
Three years running a skincare brand out of Bengaluru, and he had finally cracked the short-form video formula that bigger labels spend lakhs trying to reverse engineer. Real skin, not airbrushed. Before-and-after content with actual customers, not models. His cost per click had been falling for four months straight and his conversion rate on the product page was sitting at 3.2 percent, which in his category is genuinely good.
But his AOV had not moved in two years. Every order was still going out at roughly the same ticket. When I looked at the numbers with him, the problem was immediately obvious.
He had built a perfect machine for getting people to buy one thing. He had never once asked them to buy two.
I asked him to walk me through what a customer sees after they complete a purchase on his store. He pulled up a test order on his phone. Payment confirmation. Shopify’s default thank-you page. Order number, delivery estimate, a link to return to the homepage.
I asked him: what is the highest-trust moment in your entire relationship with this customer?
He thought about it. “When they place a second order?”
It is not. It is the thirty seconds immediately after the first one goes through.
There is a specific psychological state that exists in the moments immediately after someone completes an online purchase. The anxiety of the decision is gone. The credit card has been charged and the order accepted. They are not yet in delivery anxiety, because the product has not shipped. They are in a narrow window of pure satisfaction, fully engaged with the screen, waiting for the confirmation email that tells them everything went through correctly.
Compare it to every other channel you use to generate secondary revenue. An email sent three days after purchase lands in an inbox between a bank statement and a school circular. An SMS notification gets read while they are doing something else. A retargeting ad interrupts content they were trying to consume.
The post-purchase window asks for none of that goodwill. It does not interrupt. The customer is already there, already paying attention, already in a buying frame of mind. The decision to buy something more has the lowest possible activation energy it will ever have.
Most Shopify stores treat this window as administrative. Here is your order number. Here is your delivery timeline. Goodbye.
The instinct most founders reach for when they want to increase AOV is to add cross-sells inside the cart. A small panel that says “customers also bought” before the checkout button. Or a pop-up that fires when someone tries to leave the cart page.
I understand the logic. You already have someone deep in the funnel. Why not show them one more thing?
Here is what actually happens. A person who has decided to buy something is in a state of managed commitment. They have weighed the cost, justified the spend to themselves, made peace with the number on the screen. When you introduce a new product into that calculation, you are not adding a simple decision. You are reopening the entire negotiation they just finished having with themselves.
Some customers add the extra item. But a meaningful percentage of them, instead of adding, start subtracting. They look at the total. They recalculate. They decide the cart is getting expensive and they will come back. Sometimes they do. Most of the time they do not.
The post-purchase upsell removes this risk entirely. The primary order is confirmed, paid, and sent to your fulfilment backend. Nothing you say or do on the next screen can affect that transaction. A rejected offer costs you nothing. An accepted one is pure incremental revenue.
This is the only channel in your entire growth stack where a “no” carries zero downside.
Until recently, building a post-purchase upsell experience on Shopify that was native, fast, and secure required patchwork. Third-party apps that loaded after the checkout sequence. Custom scripts injected into thank-you page templates. Solutions that worked until a Shopify update broke them, and then required frantic fixes at the worst possible time.
Shopify has deprecated all of this in favour of Checkout Extensibility. The architecture is different in a way that matters for brands at scale.
The upsell logic runs inside a sandboxed environment that executes independently of your storefront theme. It does not touch your Core Web Vitals. It does not slow your main site. It does not carry the performance tax that legacy checkout modifications used to impose. Your mobile page speed, which determines your search ranking and your paid media quality scores, stays clean.
More importantly, it connects directly to Shopify’s inventory ledger in real time. The single worst thing a post-purchase upsell can do is offer a product that is out of stock. The operational fallout downstream, the customer service tickets, the expectation failures, costs more than the missed upsell was ever worth. When inventory drops below a threshold you define, the system swaps the offer automatically. The customer never sees the gap. Your team never gets the email.
And the offer itself is not a guess. The post-purchase application reads what the customer just bought and makes a contextual recommendation based on the actual line items in that order. The person who just bought your face wash does not see a random product. They see the matching moisturiser from the same range. Relevance is not a bonus feature. It is the reason one-click attachment rates on a well-built post-purchase page are meaningfully higher than anything an email cross-sell campaign will ever deliver.
Every other growth initiative you run has a cost attached to it. Better ads cost more in creative and media. Better retention infrastructure costs in tooling and automation. A better PDP requires engineering and design time. These are worth it, and we have spent the previous posts in this series establishing exactly why.
Post-purchase revenue is structurally different. The customer was already acquired. The CAC for that transaction was spent the moment they arrived on your site from an ad, an organic search, or a referral. By the time they reach your post-purchase offer, that acquisition cost is fixed and sunk. Every rupee that comes in from a one-click upsell carries no share of that cost.
What this means in practice: a 10 to 15 percent post-purchase conversion rate on a product that costs you 35 percent of revenue to fulfil generates contribution margin at a rate your primary acquisition business cannot match. The revenue is real. The CAC allocation is zero. The CM3 improvement is direct and immediate.
If you have been building toward a 5:1 lifetime value to customer acquisition cost ratio, and that benchmark has been running through this entire series, post-purchase extensibility is one of the fastest structural moves available to close the gap. It does not require you to acquire more customers. It requires you to ask the ones you have already paid for whether they want one more thing.
He rebuilt the post-purchase experience over three weeks. One offer, contextually matched to the product just purchased, one-click authorisation using the payment credentials already on file.
The first month the system ran, his AOV moved from Rs. 1,240 to Rs. 1,490. Not from better ads. Not from a pricing increase. From a screen that used to say “order confirmed” and now says “while you wait, you might want this.”
The acquisition cost on those Rs. 250 increments is exactly zero.
He called me after the first month’s numbers landed. He said the same thing everyone says when this particular logic clicks into place: “Why did we not do this earlier?”
There is no satisfying answer to that question. The better one is: the next order is going out today.
This is post eight in the series on D2C profitability on Shopify. The earlier posts cover retailer margin costs, ad attribution, discounting’s hidden tax, store design, membership commerce, the 90-day retention flow, and the product page. If you have not read them, start from the beginning.
If you want to implement native Checkout Extensibility for your Shopify brand, Brainium builds this end to end.