Hulu's ad pricing lived in spreadsheets, every rate change required an engineering ticket and weeks of wait time. I designed a self-serve tool that let the pricing team create and manage rate cards on their own.
Ad Tech Internal Tool
5 months
Sole Product Designer
1 PM
Sales Team
External Dev Team
Ad Sales Team
Hulu Ad Manager (now Disney Campaign Manager) launched in March 2020, giving advertisers a self-serve way to create and manage streaming campaigns.
At launch, the platform ran on a single fixed CPM (Cost per 1,000 impressions). Every advertiser paid the same rate, regardless of targeting sophistication, deal type, or seasonal demand.
One CPM made sense when the platform only served SMBs. But as it grew, having a flat pricing structure led to issues:
Couldn't charge more for advanced targeting like geography, demographics, or interests.
No way to offer promotional rates for agencies, repeat customers, new advertisers, or large accounts.
No way to adjust pricing based on seasonal inventory/demand.
Beyond the missed revenue opportunities, there was an additional problem. Pricing had to make an engineering ticket and wait a few weeks to update the CPM. Additionally, the pricing team manually tracked advertisers and rates via spreadsheets:
The idea was obvious: give the pricing team a self-serve tool to create and manage multiple rate cards without engineering support.
The core design challenge wasn't just building a CRUD interface for rate cards. It was building a complex system that felt simple and manageable for non-technical users. Rate cards needed flexible logic: start and end dates, pricing add-ons for targeting, priority ordering when multiple rates applied, and a way to assign advertisers to a rate card.
Ability to adjust dates and premium pricing add-ons such as targeting, geolocation.
Identify different rate cards for distinct pricing models — e.g., "political" or "standard".
Higher-priority cards override lower-priority ones when multiple cards apply to the same advertiser (or which has the lower rate).
Let users create and manage advertiser groups, enabling them to bulk apply pricing to one group rather than each individual advertiser.
With a compressed timeline (about 5 months) I focused discovery on the people who would use this tool every day. Through interviews with the pricing team, I learned how they tracked rates, and how they made decisions about which advertisers got which CPMs.
The biggest insight wasn't about features, it was how they worked. They thought about their work in terms of rate cards as objects you manage in a list, not forms you fill out one at a time. That informed the core layout.
External competitive research wasn't possible for this internal tool. Instead, I audited two existing tools in our ad suite with comparable complexity:
Deal package management tool
Used a table + side panel pattern the pricing team already knew, reducing the learning curve for a new tool.
Legacy linear TV rate card system
Too much information on a single screen, no clear separation between viewing and editing states.
The final interface uses a table view with an expandable side panel for editing.
The final interface uses a table view with an expandable side panel for editing — a deliberate choice over a full-page edit flow.
Advertiser group management uses the same table-and-panel structure.
The consistency was intentional: once a user understood how to work with rate cards, advertiser groups should feel immediately familiar. It also reduced the cognitive overhead of learning two different interaction models in the same tool.
The walkthrough below shows full user flow editing rate cards and advertiser groups.
Pricing tool launched in early 2023 and had replaced a process that previously required engineering tickets and weeks of wait time. Here are a few things I took away from this project:
This platform has been able to scale. With the side panel, the team has been able to add more pricing add-ons such as length of commercial, day parting, and type of content (i.e. sports).
Seeing the pricing tool as it is now a few years after I worked on it, I would want to do more designs or even a redesign because I think the content could be laid out in a better way.
I wasn't familiar with pricing logic before this project and soon learned about the complexities of pricing ad buys, and how to lay all that information out.
Initially I didn't want to make another data table, but realized the team was used to spreadsheets and didn't want to overcomplicate the layout. Seeing the tool now, I'd want to explore a redesign. I think the content could be laid out in a better way.