Manish Reddy Katta Open to product roles in
Product Case Study · Enterprise Insurance Platform · 2025–26

Nobody was counting the customers who left first

A self service journey for changing the agent attached to an insurance policy, live across almost every US state at about eight thousand submissions a month.

26%→<2%
Submissions rejected at the final step
01 · Context

Changing an agent moves income between two small businesses

A large insurer in the United States writes policies in almost every state, a great deal of that business sold through agents rather than directly. Every policy has one agent attached to it, and those agents are small businesses. That agent earns on the policy for as long as they stay attached, and the customer can move to a different agent at any point. When they do, one small business stops earning on that policy and another starts. The commercial rules are confidential. The shape is what matters here, and it is why this is not an administrative preference.

Before this One route. The customer rang the contact centre and an operations agent made the change by hand.
The programme Two capabilities. A channel for agents to submit a structured request naming the policy, the outgoing agent and the incoming one. And a self service portal where a customer could raise the change directly.
Runway The chief executive picked the problem up himself, which bought the work executive visibility and a correspondingly short runway.

I owned the facilitation platform underneath both of them. It is an operations interface and a set of APIs, not a system of record. It runs the validations that determine whether a change is legitimate and writes the result into the policy administration system that holds the record. Compensation is calculated from its own record of those moves, which is why that record has to be complete as well as correct.

02 · The problem

Ten steps of decisions, then the first constraint

The agent channel was asynchronous by design. Requests queued, a batch validated them twice a day, and a confirmation came back about twelve hours later. Against a three day service level that was comfortable, and the delivery plan was to reuse the pattern for the customer portal. It was a non functional requirement that had been inherited rather than decided.

An agent filing on behalf of a client is at work, and a queue is acceptable to them. A customer changing something on their own policy will not hold for twelve hours to find out whether it worked, and over a weekend twelve hours becomes two days. I took it to leadership and the design changed to synchronous.

AGENT CHANNEL submitted batch validates policy record updated confirmed +4h +4h +4h ~12 hours, against a 3 day SLA CUSTOMER PORTAL, AS PROPOSED customer submits same 12 hours, or 2 days over a weekend CUSTOMER PORTAL, AS BUILT answered in the session
Same mechanism, two very different verdicts. A queue is fine for a professional working a case against a three day service level, and not fine at all for a customer changing something on their own policy. Reuse was cheap and wrong. On a narrow screen the diagram scrolls sideways.

Synchronous changed when the customer received an answer. It did not change where the answer was produced. The validation set stayed exactly where it had always sat, at submission, which is the last step of a ten step journey. The customer selected a policy, selected an incoming agent, reviewed the request and submitted it. Only then did they learn that the agent currently attached to the policy could not be changed at all, or that the agent they had chosen held no valid licence in the state governing that policy.

Every rule executed correctly. Every rule executed after the customer had already made every decision the journey asked of them.

~2,000

customers a month completed the full journey and were declined at the final step.

Twenty six percent of submissions failed validation. Live from the end of November 2025, one state for ten days as a controlled rollout, then all but two states from the first of December.

03 · My role

The fix could not be made inside my own system

Product manager for the facilitation platform, which owns the validation logic and the write to the policy record. The portal interface belonged to another team. So did the integration layer between us. What was mine was the argument: the case for synchronous over batch, the diagnosis of why customers were failing, and the redesigned journey that came out of it. That then had to be specified by me and delivered by three teams that did not report to me, across an integration contract I did not control.

04 · Process

A failed submission costs three parties, and only one is the customer

With the capability live and failing, I ran a funnel analysis across the whole journey rather than across submissions alone. The twenty six percent everyone was quoting has submissions as its denominator, so by construction it can only see customers who reached the submit step. Every customer who abandoned before that point sat outside the measure entirely.

2,271
abandoned at agent selection, without ever submitting
2,115
submitted and were rejected

A representative month before the remap. 10,589 customers started an agent change and 6,014 completed one. Of the 4,575 who did not, these were the two largest groups, and the larger of them was the one nobody was measuring.

Finding one Drop off clustered at agent selection. Customers were choosing from an unfiltered list with nothing in the interface to indicate which of those agents could legitimately take the policy. They were being asked to make a decision the system had not given them the information to make.
Finding two Customers who failed did not leave the channel. They retried, often several times, which generated duplicate requests on the platform, and then they rang the contact centre. The programme existed to remove that call.

The second finding is what reframed the problem for leadership. A failed submission is not a neutral event costing the customer thirty seconds. It generates duplicate records on my platform and manual handling at the contact centre, and it leaves a customer with less confidence in the channel than before they used it.

The redesign changed no validation rule. It changed the point in the journey at which each rule is applied, so that a customer meets a constraint at the moment of the choice it governs rather than at the end.

  1. At policy selection. Selecting a policy now calls a service that returns whether the agent currently attached to it is changeable at all. If it is not, the journey ends there, at step two rather than step ten.
  2. At agent selection. The unfiltered list was replaced with an eligibility filtered one, scoped by geography and restricted to agents holding a valid licence in the state whose insurance law governs the policy. An ineligible agent is not presented as a choice.
  3. At submission. The platform still executes the full validation set behind all of it. The rules in the interface are a convenience for the customer. The rules in the platform are the control, and the control did not move. The alternative was to make a user interface load bearing for compliance, which isn't a trade I'd make on a regulated product.
Ending a journey early is only good product if you leave the customer somewhere useful. A customer told no at policy selection is routed to the assisted channel on the same portal, by chat or by phone, where customer care can raise the request or move the policy manually. They still get the thing they came for, after two clicks rather than a form that was always going to be refused. I don't have a count of how many took that route, and I should have asked for one before the remap shipped.
Delivery Two new services. One returns whether the agent on a given policy can be changed, the other the list of agents eligible to take it in that geography. Both read from the source system holding the policies and both are consumed by the portal through the integration layer. Four systems, three teams, none of them mine.
AT LAUNCH · NOV 2025 Pick policy Pick new agent Submit All validations run here 26% rejected at the final step AFTER THE REMAP · MAR 2026 Pick policy current agent eligibility shown Pick new agent only eligible agents offered Submit Platform validates second layer, unchanged <2% reach an error No validation rule changed. Only the point in the journey at which each one is applied.
The control didn't move. The platform still validates everything at submission, because an interface is a convenience and not a control. What changed is that the customer now meets each constraint at the point where it's relevant to the choice in front of them. On a narrow screen the diagram scrolls sideways.
05 · Outcome

Two clicks to find out, instead of ten

~1,900

fewer customers a month are rejected at the final step.

At roughly 8,000 submissions a month, 26% was more than 2,000 declined at the last step. Under 2% is fewer than 160.

The failures were not edge cases or system errors. They were choices the customer was permitted to make and should never have been offered.

Remove the ability to select an ineligible option and the failure it would have caused cannot occur.

Where the journey lost people, before and after the remap
Bar length is the share of customers who started a change and were still in the journey at that step, so the two periods stay comparable despite different volumes. Step losses above four percent are labelled. Hover a step to follow it across both periods.
Before the remap Dec 2025 to Feb 2026 · 10,589 starts a month
Started a change10,589 · 100%
1.2% lost
Selected a policy10,460 · 98.8%
0.6% lost
Reached agent selection10,400 · 98.2%
13.1% lost · 1,360 customers
Selected an agent9,040 · 85.4%
10.1% lost · 911 customers
Submitted8,129 · 76.8%
26.0% rejected · 2,115 customers
Succeeded6,014 · 56.8%
After the remap From Apr 2026 · 12,554 starts a month
Started a change12,554 · 100%
4.4% lost · 554 customers
Selected a policy12,000 · 95.6%
7.6% lost · 912 customers
Reached agent selection11,088 · 88.3%
2.2% lost
Selected an agent10,846 · 86.4%
1.8% lost
Submitted10,654 · 84.9%
1.6% rejected
Succeeded10,482 · 83.5%

Read the shapes rather than the endpoints. Before the remap the journey was almost lossless for two steps and then broke three times running, worst of all at the very end. After, the losses bunch up early, where a customer has spent two clicks rather than ten, and the tail runs close to flat.

The measure everyone quoted Submissions rejected at the final step
26%→<2%
The measure I would present Customers who start a change and complete one
56.8%→83.5%
Volume behind both Monthly journey starts
10,589→12,554
One part of the funnel got worse. Losses at policy selection and at reaching agent selection rose, from 1.2% and 0.6% to 4.4% and 7.6%. That is the design working. Customers whose agent cannot be changed now find that out at the second step instead of the tenth. Same population, different cost of finding out.
Second order Duplicate submissions fell, and manual handling at the contact centre fell with them. That was the cost the programme existed to remove.
What remains Validation failures between the interface and the platform, sessions timing out, customers logging out mid journey. A separate piece of work.
Shipped March 2026, four months after the original launch.

About sixteen percent of customers who start a change still do not complete one. That will be some mix of abandoned sessions, timeouts and connection failures, and I hadn't instrumented the journey finely enough to separate them. I can tell you what the funnel did. I can't yet tell you why every customer left it.

06 · What I learned

I won the loud argument and the quiet one shipped

Where a constraint is enforced is a product decision. It only looks like an engineering detail because engineering is where it gets implemented.

Nothing was wrong with the rules, only with where they ran

Not one thing about the eligibility logic changed between the version that failed a quarter of the time and the version that fails under two percent. Same rules, same rejections in principle. What changed is that a customer now meets each rule while the choice is still open.

The loud problem took all my attention

I pushed back hard on the asynchronous design and I was right to. Twelve hours isn't real time and no customer will accept it. But having won that argument I treated the resulting design as sound, and the sequencing flaw sat inside it, untouched.

I did the discovery after launch instead of before it

The programme was fast tracked and I didn't have room to run research ahead of the build. I made the latency call on judgement and it happened to be right, but I had no evidence about how a customer would actually move through the journey. I instrument a journey before it ships now. And when discovery gets squeezed out of a plan, I state out loud which decisions are therefore being made on assumption, so the risk sits on the record rather than in my head.

The metric everyone watched could not see half the problem

For four months the number in every status report was the submission failure rate. It was a real number measuring a real thing, and it was incapable, by construction, of seeing the 2,271 customers a month who abandoned at agent selection, because they never reached the step it measures. Any rate whose denominator is people who already got most of the way through will flatter you, because the customers it hurt worst have been removed from it.

So I now ask one question of any funnel metric before letting it become the headline. Who has already fallen out of this denominator, and would I still be comfortable with the number if I put them back in?

Delivery facts
RoleProduct Manager, facilitation platform
PeriodNov 2025 to Jun 2026
ChannelCustomer self service portal
VolumeAbout 8,000 submissions a month
Working withPortal, integration and platform teams