Regulated consumer marketplace

An End-to-End Compliance Redesign

Role: Lead Product Designer Duration: 2 Months Growth Strategy Pricing Transparency Experimentation
Mobile ticket listing showing all-in, fee-inclusive prices on the seat map
Mobile ticket detail with the all-in price and fees included before checkout

TL;DR

Context
TicketNetwork is a high-volume ticket marketplace where the price is often the deciding factor between buying a ticket or leaving. With new FTC all-in pricing regulations taking effect and different states requiring different disclosures, we needed a solution that could stay compliant without creating a fragmented experience.
Problem
The industry was built around showing a low upfront price and revealing fees later. That approach hurt trust, created friction at checkout, and was no longer compliant. We needed a pricing experience that worked across every state while keeping the buying journey simple.
Approach
As the lead product designer, I partnered with Product, Engineering, and Legal to redesign how pricing worked from discovery through checkout. I introduced one fee-inclusive price that stayed consistent throughout the purchase flow, while building a flexible system that could adapt to changing state regulations and compliant copy without redesigning the experience every time.
Result
Conversion increased by more than 2% week over week, checkout drop-off from fee shock decreased, and three disconnected pricing experiences became one scalable system that's easier for customers to trust and easier for the business to maintain.
2%+
Week-over-week lift
3 → 1
Surfaces, one system
Checkout drop-off from fee shock

Pricing is the product's front door.

TicketNetwork is one of the largest ticket marketplaces in the US. Fans arrive with intent, compare a handful of listings, and commit several hundred dollars in minutes. The number they see is the single strongest predictor of whether they buy or leave.

In 2024 the FTC finalized its all-in pricing rule, ending the low-headline, fees-at-checkout pattern the entire category was built on. State laws added their own disclosure requirements on top. Every ticketing marketplace had to change how it presented price, on a fixed deadline, or face penalties and lost trust.

The obvious response was to comply and move on. I made a different call: honest pricing, designed well, is a conversion advantage, not a tax on it. This work turned a regulatory obligation into a measurable business win.

Compliance was the deadline. Trust was the strategy.

Fans decided on one number and paid another.

Under drip pricing, a fan chose a listing on its headline price, then met a higher total at checkout once fees appeared. That gap is where trust and revenue leaked.

The damage concentrated at the worst possible moment: the fee reveal, seconds before purchase, when intent is highest and a lost sale is most expensive. Abandonment there is not a soft metric. It is margin walking out at the bottom of the funnel.

Where trust holds, and where it breaks
All-in pricing Drip pricing
High Low Buyer confidence Fee reveal the flinch, seconds before buying one number, listing to checkout Browse Compare Select Checkout Place order

Both paths carry the same confidence through browse, compare, and select. Drip pricing spends it all in one place, the checkout fee reveal, exactly where a lost sale costs the most. All-in pricing never asks the buyer to re-decide.

Drip pricing

What the category did
$502 shown
+$38
The buyer commits to $502, then meets $540 at checkout. The surprise is the product.

All-in pricing

What shipped
$540 shown, $540 paid
One number from listing to checkout. Nothing to discover, nothing to flinch at.

On a marketplace the problem compounds. Buyers comparison-shop on price, so an artificially low headline wins the click and loses the sale, then erodes the trust that brings people back.

Drip pricing optimized for the click, not the purchase.

Drip pricing front-loads a number the buyer cannot rely on. It is engineered to win the comparison and recover margin after commitment. That works until the buyer notices, and at checkout they always notice.

The failure, made concrete

The old mobile checkout opened its summary with only the ticket cost visible. The real total appeared only after expanding a section, deep into the flow. Decision-relevant information arrived after the decision.

This is a cognitive-load problem wearing a pricing costume. Buyers were forced to re-evaluate at the point of highest commitment and lowest patience, under sunk-cost pressure. The flinch was designed in.
Before all-in pricing, mobile checkout scroll

The fix had to survive four moving targets.

This was never a screen redesign. Four constraints defined the solution space, and any one of them could break a naive fix.

§

Regulation

FTC all-in rules require the total price to lead. No low headline, no fees discovered later. The mandate was non-negotiable and dated.

Jurisdiction

States differed on what counts as an included fee and how it must be disclosed. A hardcoded rule breaks the day a state changes its.

Surfaces

Price appeared on listings, ticket details, and checkout, each built separately. Every surface was a chance to drift out of sync and out of compliance.

Engineering

Fees were computed across different layers. The total had to be derived once and read everywhere, not recalculated per screen.

One system, and a bet worth testing.

Three ideas shaped the approach.

Treat the mandate as a trust opportunity. A business accustomed to low headline prices assumed transparency would cost conversion. I bet the opposite: remove the flinch and more qualified buyers reach checkout.

Build one pricing system, not three compliant screens. A single all-in total, computed once and read by every surface, makes trust and compliance structural instead of something to re-enforce screen by screen.

Make regulation a configuration. Jurisdiction rules live in config, so a legal change is a settings change, not a redesign. That is what lets the system scale as the rules keep moving.

The strongest compliance strategy is a system where being out of compliance is structurally hard.

I did not want to win this on opinion, so I ran it as an experiment: the shipped all-in pattern (variant) against the old drip flow (control). Toggle between them.

Ticket listMSG
$198
+ fees
Sec 112, Row 7
Lower level · 2 available
$164
+ fees
Sec 214, Row 3
Upper level · 4 available
Checkout adds fees later
Variant
Expectation matches reality. Trust holds all the way to Place Order.
Directional conversion signal
The price you see while browsing is the price you pay. No fee reveal, no flinch at checkout, no "wait, what" moment. This is the version that shipped.

Four decisions, each a tradeoff I chose on purpose.

01

Fee-inclusive prices on the listing

The listing is where buyers compare and commit, so the number they compare has to be the number they pay. I rejected the softer option, a low price with a "+ fees" label, because that is still drip, still a flinch. The tradeoff is real: our listings can look pricier next to competitors still hiding fees. I bet a price buyers can trust converts better than one they cannot.

02

A ticket-details sheet before checkout

Between the listing and checkout, a confirmation sheet restates the all-in price and its composition. It qualifies intent early and cheaply, moving the "is this the real price" question upstream, where doubt is far less expensive to resolve. The total leads; the fee breakdown sits one tap away.

03

Expandable pricing at checkout

Checkout keeps the total as the default and the breakdown on demand. Full transparency, zero clutter. It serves the fan who just wants the number and the one who wants to audit every fee, without making either pay for the other.

04

One total, listing to checkout

The same number carries from listing to ticket details to checkout. There is no moment where the price changes, because there is only one price. Consistency is the trust mechanism, and it doubles as the compliance guarantee.

Progressive disclosure is the whole design: lead with the answer, the total, and keep the detail one tap away. Confidence by default, scrutiny on demand.

Compliance was designed in, state by state.

Because disclosure rules changed from state to state, I built the pricing mockups and prototypes to match each jurisdiction's requirements and walked Legal through them one state at a time, confirming the real experience held up before any of it was built. Design carried the compliance surface, so Legal could sign off on what buyers would actually see rather than a description of it.

Getting Legal into the mockups early turned compliance from a gate at the end into a shared design constraint from the start.

Three pricing surfaces became one source of truth.

Before, each surface computed and displayed price on its own. That is how a marketplace ends up with a listing that says one thing and a checkout that says another. The real change was less about new screens and more about collapsing three independent displays into one system reading a single total.

Derive the total once, read it everywhere. Trust and compliance become structural instead of re-enforced screen by screen.

Base ticket price
Service fees
Jurisdiction rules
config, not code
One all-in total
computed once
Listing
$540
Ticket details
$540
Checkout
$540

The same computed total, surfaced consistently across every surface a buyer touches.

Listing
$540 ea
fees included
Ticket details
$540 / each
incl. $38 fees
Checkout
$1,080
2 tickets, all in

What you saw is what you pay. It is the clearest trust signal an interface can send, and once the number stops moving, the whole flow feels safe to finish.

The confidence loop, end to end.

From pattern to working prototype

I built the pattern as a working prototype that follows a real purchase: browse the listing, select a ticket, and confirm the all-in price before checkout. The number the buyer compares is the number they confirm, with fees already inside it.

Transparency here is not a disclosure buried in fine print. It is the headline, restated at every step, so trust accumulates instead of eroding.

From listing to checkout, the same price, with fees on demand
Ticket listing with all-in, fee-inclusive prices
Ticket detail showing the all-in price with fees included Checkout summary with the all-in total and details collapsed Checkout summary expanded to show the fee breakdown inside the all-in total

Shipping the bet, not just the screens.

The prototype was never just a demo. Walking the entire purchase proved the all-in number held end to end, which earned the idea the right to be built for real.

Shipping it meant getting design, engineering, and legal to hold a single line together, then letting the numbers decide. Here is how the bet went from a clickable flow to a live experiment.

01
Prototype
Walked the full purchase and proved the all-in number held end to end.
Design
02
Build for production
Centralized pricing logic that adapts by state, with disclosures and microcopy cleared jurisdiction by jurisdiction.
EngineeringLegal
03
Launch as an A/B test
Shipped on the highest-traffic path first for a fast, safe read on a tight timeline.
Analytics

The hypothesis

A higher but honest price shown up front beats a low price that jumps at checkout. If transparency builds trust, the bigger number seen early should cut fee shock and lift conversion, not scare people off.

Transparency raised conversion.

The bet held. Showing the higher, honest number did not cost sales. It won them.

2%+
Week-over-week conversion lift after the all-in system shipped
Checkout drop-off at the fee reveal, the most expensive place to lose a buyer
3 → 1
Independent pricing surfaces unified into one reusable, regulation-ready system

More qualified buyers reached checkout, and fewer flinched once they arrived. The counterintuitive headline: prices looked higher and conversion went up. Removing the surprise mattered more than the size of the number.

Honest pricing was not the cost of compliance. It was the reason conversion rose.

What I would push further.

01

Move all-in earlier

Fee-inclusive pricing should reach the surfaces before the listing: search, category pages, and marketing landing pages, so the honest number is the first number a fan ever sees.

02

Instrument the disclosure

I would track how often buyers expand the fee breakdown and where, so the detail earns its space with evidence rather than assumption, and confidence can be measured, not inferred.

03

Make jurisdiction self-serve

Push the config further so Legal and Compliance can adjust rules directly. Design should not sit in the loop for every regulatory change; the system should absorb it.

The deliverable was not a set of screens. It was a system, and a reframe: compliance became the reason to earn trust, and trust became the reason conversion rose.