Scope
Payer · providers · billing codes
One bounded datasetAt Trek’s Austin product offsite, I proposed consolidating several overlapping Price Intelligence reports into one flexible analysis model. I then shaped the architecture and interaction system that made that direction usable.
Rate Research, Benchmark Report, Competitor Analysis, and Query Builder looked like separate products. Underneath, they repeatedly asked for the same payer, provider, and billing-code inputs and rearranged much of the same data.
Product research showed the behavioral cost: users tended to learn one report and stay there. Query Builder remained the most-used report, and users often exported its data to Excel or BI tools to reconstruct views the product could not flexibly provide.
At our Austin product offsite, I proposed consolidating the overlapping reports into one analysis model and explored the direction in Figma. The work that followed turned that proposal into a shared product definition and an end-to-end interaction system.
I mapped how Trek’s overlapping Price Intelligence reports could share one flexible analysis model and explored the idea in Figma.
The product manager documented the shared data model, familiar reports as templates, performance targets, edge cases, and acceptance criteria.
I shaped the architecture and UX across scope, templates, the flexible builder, hierarchy, aggregation, filters, hover behavior, and report actions.
The central shift was to treat each existing report as a remembered configuration of one analytical system. Most users worked within one data scope tied to their organization, so that scope could remain stable while the table changed around the question.
Payer · providers · billing codes
One bounded datasetA familiar report configuration
A useful starting pointRows · columns · filters
The question being askedAverage · median · count
The form of the answerLoad the selected payer, provider, and billing-code dataset.
→Hold one reusable dataset for templates and custom analysis.
→Choose rows, columns, values, and filters; then generate.
→Refine the scope or create another pivot from the loaded data.
The board preserves the developing workflow from scope selection through repeated pivot analysis.
Payer, provider, and billing-code selections establish the data relevant to an organization. Keeping that scope loaded reduced repeated backend work and let users move between analyses without starting over.
Query Builder, Rate Research, Benchmark Report, and Competitor Analysis became starting configurations. A saved custom setup could live beside them.
Rows establish hierarchy, columns create comparisons, values define the calculation, and filters narrow the loaded data. The zones use the same visual grammar as the resulting table.
NPI → Billing Code groups services under a provider. Reversing the order answers a different question.
Average, median, and count can appear together without duplicating the underlying field or dataset.
Negotiated Rate supports sum, minimum, maximum, median, average, and count. Identifier fields default to distinct counts.
A corner marker identifies cells that combine multiple rates. Hover reinforces interactivity without filling a dense table with icons.
Return to the same data and analytical view.
Reuse the analytical logic with another scope.
Continue the work outside Trek when needed.
Initial medium-complexity data load
Reaggregation after data is loaded
Variance against Benchmark output
Internal participants brought different levels of product and domain familiarity.
Each participant received a distinct user persona and tested the table from that perspective.
Tasks examined whether the flexible model supported different analytical goals. Testing had begun when I left.
Most customers analyze rates within a consistent universe of payers, providers, and billing codes tied to their organization. Pivot kept that scope loaded while letting users change the table’s structure, measures, filters, and starting template.
That decision connected user value with backend efficiency. Familiar reports became useful entry points into one system, custom analysis could stay inside Trek, and a single data query could support many views.
By the time I left, the concept had become a coherent product architecture with defined interaction rules, measurable performance criteria, and persona-led internal testing underway.