‹  All work

Vertafore  ·  RiskMatch

Making Room for the Middle

The full picture when you need it. The focus when it counts.

Role
Lead UX Designer
Report and chart system
Timeline
1 year
Team
Product · Engineering
Research
Surface
Benefits Benchmarking
Desktop primary
The redesigned Benefits Benchmarking report: rows of range charts with a market median pill and a client marker on each bar.

01. Framing

The information clients act on is in the middle, but the scale is set by the edges

A benchmarking report answers a client's question: where do we stand in the market, and what are the openings for a different direction?

The chart made it difficult to see where the valuable metrics were. In a high-stakes renewal meeting, squinting to make an approximation means the tool is not doing its job. The client also needed to see their value against their competition without losing the context of the full picture.

This is a case study about getting the middle of a distribution back without giving up the full range.

02. Background

What RiskMatch was

RiskMatch was Vertafore's insurance data analytics platform. Its Benefits Benchmarking Report let an employee benefits broker assemble a peer cohort from a universe of roughly 94,000 plans. Client employers compared against that cohort across deductibles, copays, contribution splits, and rate structures.

Brokers built these reports for renewal conversations. The broker configures the cohort; the employer sits across the table and reads the output.

I led design on the report across the criteria builder, the report sections, and the comparison charts inside them. This case study is about one chart, which appeared in every section of every report the product produced.

The criteria builder before filters are applied, showing the size of the RiskMatch data universe for the current selection.
The same builder with client, product, industry and category filters applied, narrowing the peer cohort.

The criteria builder. The broker narrows the universe before any chart exists.

03. Starting point

What the legacy chart showed

The platform already had a range chart. It plotted a distribution as a grey bar with a shaded middle band and a single median marker, and it was used across benchmark comparisons throughout the product.

It gave a serviceable view of the market, but gaps kept clients from getting the most out of it. There was no way to see how their own plan compared inside the chart. The markers were also generic, which left room to add distinction and make the important values quicker to read.

The legacy range chart: a grey bar with a shaded middle band and a single median marker.
The legacy range chart. One median marker, no client position.

04. Problem

The range shifts, and the useful part collapses

An axis has to reach the largest value in the data. In benefits benchmarking, the largest value can be absurd. One employer somewhere in a universe of 94,000 plans carries a $22,500 individual deductible when the average is closer to $1,000. Scaled to reach it, the chart spends almost its entire width on the distance between those two numbers, and the band where realistic plans actually sit collapses into the first inch.

The obvious fix is to cut the tail off. But the tail is real data, and brokers used it. Knowing the market runs to $22,500 is part of what makes “your client is at $329” mean something, and it's the figure they get asked about in the room.

So the problem was never how to remove the outlier.

How do you make the middle of the range readable while keeping the context of the full range intact?

05. Challenge

The two rows pull in opposite directions

The compression showed up in two shapes, and the fix for one is the opposite of the fix for the other.

Needs the scale to tighten

Office Visit / Exam. Copays run $0 to $1,250 across the universe, while the middle 50% of plans sit between $10 and $430. Scaled to reach the maximum, that band takes up the left third of the bar and everything inside it lands within a few pixels. This row needs the scale to tighten.

Needs the scale to stretch

Emergency Room. The cohort runs $92 to $1,000, and a client sitting at $1,430 falls outside the market entirely. There is no position on the bar for that value, and it's the most decision-relevant number on the row. This means the client pays more than any comparable plan in the cohort. This row needs the scale to stretch.

Pain points the chart needed to address

Make the client's position clear in relation to the other indicators. A broker scans eight rows before reading any of them. Above or below the median, inside or outside the middle 50%: these are positions that need to register at a glance.

Keep the full context intact across ranges. A wide axis shows the true extent of the market but minimizes the part anyone acts on. A narrow axis separates the markers but cuts away context the broker may be asked about in the meeting.

06. Explorations: markers

Telling the client apart from the market

Putting the client on the bar created a second problem: two markers in a space designed for one. I worked through three treatments.

First treatment: the market median and the client value both as orange pills above the bar, overlapping when the values are close.
Both values as orange pills on the same side. Close values collide.

Two orange pills, same side. This broke down as soon as the two values were near each other and the pills overlapped.

Orange pill, opposite side. Give each marker its own lane, one above the bar and one below. The collision resolves, but two pills of equal weight still compete for attention.

Second treatment: the median pill above the bar and the client pill below it, in separate lanes.
Staggering the pills clears the collision but not the competition.

A black dot for the client. Less intrusive, still distinct. On a chart this dense the client needed to be findable, not dominant.

The key was made up of seven elements, each named once: lowest, 25th percentile, middle 50%, 75th percentile, highest, median, and the client's policy.

That closed the collision problem. It did nothing for the compression. Two markers you can tell apart are still two markers inside an inch of bar.

Third treatment: the client shown as a small black dot on the bar, with a named key below listing every element of the chart.
The client as a small dark dot, with every element named once in the key.

07. Explorations: chart range

Cutting the outlier out

The larger problem was outliers stretching the bar. That shrank the area where most of the data lived and gave width to the regions carrying the least information. I tried visual treatments that would remove the emptiest stretch of the axis.

Bar break explorations: the range chart with a visual break cutting out the sparse upper region of the axis.
Bar break explorations.

This did put focus back on the dense part of the distribution, but it left a visible void in the data. That created a blind spot: a broker asked about the removed region had no way to answer. The information wasn't the most important on the row, but it was still real and still had to be accounted for.

08. Solution

Solving it in three layers

The mistake was trying to make one chart do both jobs. Forcing a single static view was fundamentally flawed for brokers who switch between macro market context and micro client comparisons. The answer was to spread the problem across three layers, so each solved only the part it was good at.

The marker system does the first job. Position reads before value, and the client is findable without shouting.

The toggle does the second: it lets the reader choose the question. It changes the mental model. Instead of a single cramped view, a segmented control moves between two views of the same row in the same context.

Full Range shows the market's true extent, so a broker can see the whole spread of what the criteria produced.

Middle 50% rescales each row so the axis is the 25th-to-75th band. Annual Deductible – Individual goes from a $0–$22,500 axis to $250–$1,000, and the client at $329 separates cleanly from the median at $500.

Nothing is hidden by default and nothing is hidden permanently. This is the distinction the bar break couldn't make: zoom in without excluding the rest of the data.

The third layer was the endpoints. Changing the lowest and highest markers to the 5th and 95th percentiles kept extreme outliers on the tail from breaking the chart in the first place.

Full Range view: the axis reaches the market maximum and the middle of the distribution is compressed.
Full Range
Middle 50% view: the axis is rescaled to the 25th-to-75th percentile band and the markers separate.
Middle 50%

The same rows, two questions. One click apart.

09. Rationale

Decisions that made it hold

The quiet client marker worked because the chart was already full. A second loud element would have turned every row into a competition. Making the client marker small meant the thing you read was the gap between it and the median, rather than two markers competing. The key let a reader register each symbol at a glance.

The toggle worked because it took nothing away. Every earlier attempt at compression removed something: the bar break removed a region, a fixed zoom would have removed the tail. The toggle removes nothing. It changes which question the axis is answering, and the other view is one click back.

Moving the endpoints to the 5th and 95th percentiles was a compromise. The true minimum and maximum are no longer on the bar, but it let one chart stay functional across very different data sets.

Detail of the finished chart: percentile endpoints, middle 50% band, market median pill, client marker dot and the named key.
The finished encoding: endpoints, band, median pill, client dot, key.

The marker system carried across every section of the client report and the multi-category report. Contribution Costs, Rate Costs, Employee Segment Costs, and Premium Over Time all present the same information in the same encoding, so a broker learns one chart and reads all of them.

The same chart pattern repeated across Contribution Costs, Rate Costs, Employee Segment Costs and Premium Over Time sections.
One encoding across every section of the report.

10. Thoughts

When one view has to answer two incompatible questions, adding encoding makes it worse

Every fix I tried inside the chart (different markers, staggered labels, a break in the bar) was an attempt to fit two scales into one. Each one made the chart busier and the insight harder to pull out.

What worked was giving up on solving it in one place. The marks made position readable. The control let the reader choose which question they were asking.