Configutron Saves the Day

Oscar Health
Oscar Tech
Published in
3 min readFeb 4, 2022

By Stephen Kalmakis

In Medicare Advantage, there are strict rules about when and how you contact prospective members — or, more to the point, there are strict rules about not contacting prospective members in certain cases. At Oscar, we need to track the current sales status so we can follow these contact rules to avoid fines or penalties.

Medicare Advantage is an all-in-one alternative to Original Medicare. It offers “bundled” plans that usually include Part A, Part B, and Part D.

We work with a few different partners to find prospective Medicare Advantage members. After sourcing leads, these partners will send us back a feed of all of the interactions they’ve had (typically phone calls), which we ingest into our system of record. Crucially, these feeds contain a disposition that roughly indicates how the call went. Does the lead intend to enroll? Do we need to call them back? Did they ask never to be contacted again under the pain of regulatory fines?

Once we have a disposition, we need to map it to one of our system’s strict set of “sales statuses” so that other systems, like our email marketing system which is used to reach prospective members, know whether or not someone should ever be contacted again. Sounds reasonable, but, it turns out, our partners have hundreds of different dispositions and create new ones frequently to optimize their sales funnel continually.

The first time we were sent a file with a newly created disposition, a job failed because it tried to process a disposition it didn’t recognize. To solve the problem, one of Oscar’s Product Managers connected with the sales lead, who contacted our partner, who provided a new set of dispositions to sales, who contacted the product manager, who created a ticket to have it resolved by an engineer, who… you get the idea. We fixed the issue quickly, but it became clear that we needed a better way to handle these cases. We needed to reduce the amount of time and number of people involved in adding dispositions.

Enter: Configutron

Configutron is an internal tool we built to make life easier for engineers. Think of it as Configuration as a Service. Rather than hard coding our mapping of disposition to sales status in Python or a Google Sheet, we configure the mapping in Configutron by defining a schema and letting the user add key-value pairs as needed. The schema uses an enum that create a handy-dandy error-proof drop-down in the Configutron app. Take a look at this example data:

Schema

We define the input properties and values allowed in the rules editor.

image of schema — we define the input properties and values allowed in the rules editor.

Rules

Anyone can add a new rule (key-value pair), and entries will validate against the schema.

image of rule. entries will validate against the schema.

Now, whenever a new disposition comes in (which is weekly during open enrollment), we log the missing disposition that auto emails our sales colleague, who then adds a new rule to Configutron for the disposition. Just like that, our systems can now handle the new disposition! No Product Managers, no engineers, no tickets, no builds or deploys, just a little effort from the person who understands the business context the best.

This is a simple case, but Configutron is capable of much more and has been used in production for systems large and small over the last year. For example, we use it to configure Open Enrollment dates; to manage hundreds of different document variations based on things like brand, market, or plan type; and to support our growing platform offering, +Oscar, and its requirements for multi-tenancy.

Configutron has empowered our entire team to move fast and adapt, not just engineers. As one distinguished Oscar engineer said, “Whenever something comes up, I just keep reaching for Configutron.”

Stephen Kalmakis is a Staff Software Engineer working on +Oscar.

Want to talk more tech? Send our CEO, Mario, a tweet @mariots

--

--