Open to full-time rolesCharlotte, NC · Remote

Email
Sam Baquera
View Resume
SureCost6 min read

Untangling the 340B Split

Designing how one hospital order splits across purchasing channels, for a market where every hospital talks.

Sole designerReached staging and customer demos
The 340B requisition prototype, built in code

The 340B requisition prototype, built in code

The short version

60 second read
The problem
Hospitals buy through 340B, WAC and GPO channels, and one order has to be split across them. SureCost had no way to start that order.
What I did
Designed the whole workflow, from the requisition list to the worksheets under it, the file import and the error recovery for very large orders.
How I tested it
SureCost had no hospital customers yet, so I worked from analyst data and a market researcher’s findings, and tested a coded prototype with engineering.
What happened
It reached staging and was demoed to customers before I left in January 2026. It had not fully shipped.

About SureCost

SureCost is the leading purchasing platform for pharmacies. It was expanding into hospitals, which buy very differently. In hospital pharmacy, 340B is a federal drug discount program, and almost every acute care buyer lives inside it.

I was the only designer on this work. My job was the front door of the plan. A hospital starts an order in SureCost, the order is split across channels, and SureCost earns the rest of its purchasing from there.

My role

I was the sole designer on this initiative. The structure, the patterns, the names and the prototype were mine, built next to engineering.

  • End-to-end workflow design

    • Requisition to worksheet structure and statuses
    • Import, error recovery and status models
    • Designed from product and market research synthesis
  • Systems and scalable patterns

    • Patterns meant as the base for future purchasing screens
    • An add-items flow that could grow into product-wide ordering
  • Engineering partnership

    • Feasibility spikes and story-point scoping
    • QA and engineering feedback as design input
    • A prototype in code to pressure-test the flow
  • UX writing

    • Language for each stage of an order
    • Full drug descriptions so people can verify items
    • Error and warning messages at the import step
Worked withProduct · External market researcher · Engineering · QA · Customer Success
The problem

One order had to be split across several purchasing channels.

Hospitals buy the same drug through different channels. 340B is the discount program. WAC is the wholesale acquisition cost, what a drug costs before discounts. GPO is the price you get when you buy as part of a group. One order can need all three.

We decided not to build our own splitter. Hospitals already trust the ones they use, so we planned to connect to them. Each split order goes back out to the splitter, and the results come back as separate orders.

I first thought of this as a simple form that makes a list. It is really a hierarchy. One requisition holds several worksheets, and each worksheet holds its own line items. The status of the requisition comes from the worksheets under it. That shaped the whole screen.

There was a bigger question behind it. What if the best choice for compliance isn’t 340B? The goal was to get hospitals to start their orders in SureCost, so we could answer it for them.

What shaped the work

Four limits, and none of them were comfortable.

No customers

  • Nobody to test with

    SureCost had no hospital customers yet, and it did not want to shock the market. So I could not run usability tests. The design came from business analyst data and an outside market researcher’s findings.

One shot

  • A market where every hospital talks

    Hospitals talk to each other. A failed launch would not lose one deal. It could lose the whole acute care market before we really entered it.

Volume

  • Very large orders

    Orders in this world are big. The sample data in my designs includes requisitions of 1,500 and 2,313 items. People had to scan, split and trust lists that long.

Habits

  • Keep existing purchasing patterns

    Hospital buyers were already doing this kind of import in other systems. I stayed close to the purchasing patterns SureCost customers already knew, so the new work would feel like part of the same product.

The research found a gap. The big hospital systems vendors, Epic and Cerner, treat this splitting work as tangential, not their main job. That gap is why SureCost went after it.

The solution

Requisitions as parents, worksheets nested under them, and an import that recovers from errors.

I kept the requisition as the parent, with its worksheets nested by channel. I considered a flat table and dropped it. People think “did Tuesday’s order process,” not in worksheet rows. A worksheet stays out of the way until you need to act on one.

Status lives on the requisition and comes from its children. A warning shows on the worksheet it belongs to, so a long list doesn’t drown in alerts. Even the tab names were tested. QA read “Submitted” as finished, so Open and Submitted became Draft and Split. Done is a status, not a place.

The import let people start an order from a file they already had. Because strict rules keep the back end simple, I chose strict import rules, and let the design carry the human cost. A short screen explains every row that failed.

Take a closer look

Scannable at volume, and forgiving when something is wrong.

  • Each requisition is one row that people can scan, with its worksheets nested underneath, grouped by channel. People can find “Tuesday’s order” first and open a worksheet only when they need to act on it.

    Two requisition rows in the prototype, each with its worksheets nested under it
  • A warning icon sits on the worksheet it belongs to, not on the whole list. Status for the requisition is worked out from the worksheets below it, so people can see which order needs attention without opening every one.

    Three requisitions in the prototype. Orange marks sit on the worksheets with warnings, green checks on the ones that are fine
  • Version one showed errors but let the valid items through, with no clear view of what was left out. Version two says how many items are ready, lists each failed row with its reason, and lets people import the valid ones now. Our users are rushed and short on staff, so they can also save a draft and fix the rest later.

    Try this in the prototype
    The Import Review screen for demo-requisition-1200.csv. 1210 items are ready for processing and 3 need attention, each listed with its line number and the reason Invalid NDC format. Buttons below read Process 1210 Valid Items, Edit in Form and Start Over
  • Engineering asked what happens when a list has thousands of rows and the errors are needles in a haystack. So rows with errors sort to the top. Checkboxes allow mass edit and mass delete, and each row can be corrected in line.

    Try this in the prototype
    A requisition with errored rows at the top, each with its reason and a checkbox
Two requisition rows in the prototype, each with its worksheets nested under it
Three requisitions in the prototype. Orange marks sit on the worksheets with warnings, green checks on the ones that are fine
The Import Review screen for demo-requisition-1200.csv. 1210 items are ready for processing and 3 need attention, each listed with its line number and the reason Invalid NDC format. Buttons below read Process 1210 Valid Items, Edit in Form and Start Over
A requisition with errored rows at the top, each with its reason and a checkbox
Impact

It reached staging and went in front of customers, but it hadn’t fully shipped.

Most of the workflow was built into staging and QA before I left SureCost in January 2026. We demoed it to customers. I can’t point to launch numbers, because it did not fully ship.

Two signals mattered to me. The lookahead I designed for adding items was pulled for technical cost. The product manager still saw so much value in it that we ran a spike on it. And he said the add-items pattern was good enough to become how worksheet ordering works across the whole product.

The patterns underneath, which are the add-items flow, error recovery and statuses, were built as the base for future purchasing screens.

The biggest lesson
Strict rules in the back end are fair when the design carries the human cost.

Challenges

I was handed the technical plan while scoping was already happening with an outside researcher. Customers weren’t available, so the design had to stand on analyst data, research and the engineers who pushed on it.

I was torn between flexible import rules and strict ones. I went strict to keep the back end simple, and because it is the usual pattern in SaaS. The error review screen is the other half of that choice. Design took on the human cost so engineering didn’t take on the complexity cost.

I built a working prototype in Figma Make, in code, to test the flow with engineering. It let me iterate in hours instead of days, and engineers could react to real front-end code instead of static mockups.

Retrospective

This is the same shape as many other problems. Records flow in from another system, rules allocate them, and someone has to review, fix and trust the result at volume.

It was also my first rework of the core of SureCost’s ordering, not a view built around it. Earlier work helped people understand their purchasing. This changed how purchasing happens.

What I’d measure

How I’d know it worked.

  1. Error recovery rate

    Of the people who hit import errors, how many carried on and how many gave up?

    Proof

    A high abandon rate would mean the correction flow needs another look, and probably an easier way to fix rows.

  2. Drafts to submission

    Do people who start a draft go on to submit it, or does it sit in draft?

    Proof

    Empty drafts, or drafts left for a long time, would add clutter to the system instead of helping people multitask.

  3. Upload versus manual time

    Does uploading a file save people time compared with building an order by hand?

    Proof

    If upload to submission takes longer than manual entry, the system may be too rigid.

Nothing here has been measured yet. These are the questions I would ask.

Search the site

OverviewHome: who Sam is, results and the four studies
WorkThe four case studies
AboutBackground, experience and teammates
ResumeOne page, also as a PDF
Making Compliance Make SenseHelping businesses avoid closure from agreements they didn’t understand.Shipped
Untangling the 340B SplitDesigning how one hospital order splits across purchasing channels, for a market where every hospital talks.You are here
Designing for Enterprise ConfidenceEarning enterprise credibility after being laughed out of sales rooms.Demoed
Building the App the County Didn’tShipping my own iPhone app after booking courts kept derailing plans with friends.Live
Proving Modernization Was PossibleNavigating constraints to redesign SureCost’s core experience fast.Not on Home
The 60-second versionUntangling the 340B Split
OverviewUntangling the 340B Split
ProblemUntangling the 340B Split
ConstraintsUntangling the 340B Split
SolutionUntangling the 340B Split
DetailsUntangling the 340B Split
ImpactUntangling the 340B Split
ReflectionUntangling the 340B Split
Copy emailsam@baquera.design
Open resumeThe one-page resume on this site
Download resume PDFSamuel-Baquera-Resume.pdf
Book a callOpens cal.com in a new tab
Switch themeLight or dark
LinkedInOpens in a new tab
DribbbleOpens in a new tab
↑↓ to moveEnter to openEsc to close