Self-Service Rate Lookup Without SQL for Clinical Diagnostics

Home / Case studies / Self-Service Rate Lookup Without SQL for Clinical Diagnostics

Case study · Healthcare · Data applications & access governance

Self-Service Rate Lookup Without SQL for Clinical Diagnostics

A large US clinical diagnostics organization needed a self-service rate lookup, because every negotiated commercial rate took SQL & a data team ticket. Brainy Neurals built a browser tool that uses pre-computed rate tables & fixed weighting rules to return benchmark rates in seconds. Analysts on the Value & Access team sign in through single sign-on, search by code, payer, state or provider, & never open the warehouse. Four benchmark views now come back on every search, & every login, search & export lands in an audit log.

  • #SelfServiceAnalytics
  • #RateBenchmarking
  • #ClinicalDiagnostics
  • #HealthcarePricing
  • #SingleSignOn

4

Benchmark views per search

Seconds

From question to rate

Every region

Quoting one benchmark

Rushabh

Published October 2026

At a glance

Brainy Neurals built a self-service rate lookup that gives a US clinical diagnostics pricing team negotiated commercial rates in seconds.

What problem did this solve?

A US clinical diagnostics pricing team couldn’t look up negotiated commercial rates without SQL & warehouse access. Each question turned into a ticket for the data team.

What did Brainy Neurals build?

Brainy Neurals built a governed rate lookup tool for a large US clinical diagnostics organization. Analysts search by billing code, payer, state, region & provider.

What changed after go-live?

Rate lookups now run in a browser in seconds, with no SQL & no data team ticket. Four benchmark views come back on every search.

Who else could use this?

Any team that prices against a dataset too large to query by hand could use one. Insurance claims teams, freight desks, procurement groups & category managers all fit.

Fact Detail
Industry Healthcare & life sciences
Sub-industry Clinical diagnostics
Client type US diagnostics organization
Engagement Self-service rate lookup
Timeline Not disclosed
Capabilities Data application & access governance
Delivery model Project-based delivery
Engagement facts for this case study

Why couldn’t the team query the rates themselves?

The Value & Access team at a large US clinical diagnostics organization had no self-service rate lookup for negotiated commercial rates.

The team prices lab tests against what the market already pays, so it needs rates by billing code, payer, state & provider. Nothing in that request called for a new model, & honest AI consulting says so on the first day.

Those rates sat in a commercial rate dataset with billions of rows, & reading any of them took SQL.

  • Each rate question became a ticket, & the data team’s queue set the pace.
  • A badly scoped query over billions of rows ran for minutes & burned credits.
  • An analyst who half remembered a provider name couldn’t search for the rest.
  • Two people with one question wrote two queries & defended two different numbers.
  • Nobody could say later who had viewed which rate, because nothing recorded it.

A 2024 study of published US price transparency files found inconsistent formats & data that was unusable as published.[1]

Hands squaring a stack of printed rate spreadsheets that were compiled by hand before the self-service rate lookup
Before the tool, each rate comparison arrived as a spreadsheet somebody had compiled by hand.

What do teams usually try first?

Teams that need rate answers usually try one of four routes, & each is reasonable on its own terms.

Approach What it gets right Where it stops Who it suits
Direct SQL on the warehouse Any cut of the data Needs SQL & a login Data teams
A reporting dashboard Familiar & governed Fixed cuts, weak entity search Steady reporting
A language model over the data Plain questions, quick to demo Answers nobody can defend twice Exploration
A governed lookup app, our route Seconds, same math every time Weeks of definition work first Teams pricing repeatedly
Four common routes to a commercial rate answer

A 2024 benchmark of enterprise text-to-SQL, a model writing queries from plain questions, put the best agent near a fifth of real tasks. Academic benchmarks of the same task score above ninety percent.[2]

Four ways to answer one rate question. Direct SQL stops at needing SQL and a login, a dashboard at fixed cuts, a language model at answers that are hard to defend twice, and the governed lookup reaches an answer in seconds. One question Direct SQL Needs SQL & a login Dashboard Fixed cuts only Language model Hard to defend twice Governed lookup Answer in seconds Four ways to answer one rate question. Three stop at a wall and the governed lookup reaches an answer in seconds. One question Direct SQL Needs SQL & a login Dashboard Fixed cuts only Language model Hard to defend twice Governed lookup Answer in seconds

Three common routes stop at a wall that the governed lookup never meets.

How we designed the rate lookup

Brainy Neurals built the whole rate lookup around one rule for the warehouse. Every question the tool answers is shaped in the warehouse before anyone thinks to ask it.

Every question the tool answers is shaped in the warehouse before anyone thinks to ask it.

Architecture of the self-service rate lookup. An analyst uses a search form, passes a sign-in check and a group check, and the search service reads a prefix index and pre-computed rate tables inside the governed warehouse. Weighting rules return results and export. Raw rate rows are never read live, and every step writes to the audit log. Identity Governed warehouse Analyst Search form Sign-in check Group check No group, no data Results & export Search service Prefix index Rate tables rolled up Weighting rules Raw rate rows billions Pre-computed Never read live Audit log Architecture of the self-service rate lookup, stacked from the analyst to results and export, with the audit log recording every step and raw rate rows never read live. Analyst Search form Sign-in check Group check No group, no data Search service Prefix index Rate tables rolled up, pre-computed Weighting rules Results & export Audit log: every step Raw rate rows never read live

Every rate the tool returns comes from a rolled-up table inside the client’s own warehouse.

We roll rate tables up per billing code, payer, state & region. A search then reads one small table instead of scanning raw rows. A prefix index, a list sorted by the first letters of each name, holds provider names & identifiers, so matches appear while you type.

Our first decision was whether a language model should sit between the analyst & the data. We ruled that out in the first week of the build.

A contract rate has to survive a negotiation, so the same inputs must return the same number every time. Generative AI development earns its place where a question is open ended, & this one never is.

Our second decision was about where authorization lives. Identity comes from the client’s enterprise single sign-on, & the group check runs on every request. A session that outlives someone’s access is a hole, & rate data is the wrong place for one.

Rushabh Shah built the lookup from the pre-aggregation through to the per-request group check. Mitesh Patel set the access model & signed off the rate logic before anyone saw it.

The technology stack we used

Each layer of the technology stack had to pass one test before it stayed in. Could a business user get a defensible number without asking for help? The same retrieval discipline runs through our RAG development work.

Access & identity

Layer What we used Why Ruled out
Authentication Enterprise single sign-on A session the business trusts A separate app login
Authorization Group check per request Access ends with the group Role flags in the app
Audit Structured activity log Every search is attributable Web server logs alone
Access & identity layers

Data & calculation

Layer What we used Why Ruled out
Aggregation Pre-computed rate tables Heavy work happens before the question Raw rows per search
Weighting Rules-based weighted & range logic Same arithmetic every time Spreadsheet formulas
Provider search Prefix index on names & identifiers Matches appear while typing Wildcard table scans
Data & calculation layers

Application & delivery

Layer What we used Why Ruled out
Application Python web app & service layer One language the team reads A separate front end
Application & delivery layer

How does one search actually run?

One rate search runs through six steps, from the first keystroke to the exported table.

  1. An analyst picks a billing code, a payer, a US state & a sales region from the form.
  2. Typing part of a provider name returns matching organizations & identifiers before the word is finished.
  3. The app checks the signed-in session, then the group that session belongs to, & stops if either check fails.
  4. The service reads the pre-computed rate tables for that combination & never touches the raw transaction rows.
  5. Weighting logic returns the provider rate, the payer-weighted rate, the state rate & the outside-payer benchmark.
  6. The screen shows each figure with its range, the analyst exports a table & the audit log records it.
Six steps of one rate search: pick code and payer, type a provider, pass the session and group check, read rate tables, weight and range, then show and export. The search stops at step three if either check fails, never reads raw rows, and the audit log records the export. 01 Pick code & payer 02 Type a provider 03 Session & group check Stops here if either fails 04 Read rate tables Never reads raw rows 05 Weight & range 06 Show & export Audit log records it Six steps of one rate search, stacked in order, with the stop at the group check, no raw-row reads and the audit record. 01 Pick code & payer 02 Type a provider 03 Session & group check Stops here if either fails 04 Read rate tables Never reads raw rows 05 Weight & range 06 Show & export Audit log records it

The group check sits between the search & the data, & it runs on every request.

The six steps run in order, & the analyst writes none of the query.

What went wrong during the build?

Four things went wrong on the rate lookup build, roughly in the order below.

The first working version queried the raw rows on every search. It answered correctly, yet it cost more per lookup than the ticket it replaced.

Provider search behaved worse than the cost problem did. Matching a partial name across a long list put the wrong organizations first, & analysts stopped trusting the search box.

The first build also checked authorization once, at login. A session could then outlive the access behind it, which is a governance hole in commercial rate data.

Then the weighted rates disagreed with spreadsheets the team already trusted. Both numbers were defensible, & neither could go out until somebody picked one.

Federal guidance on attribute based access control makes the same point, since an access decision can change between requests.[3] These are the weeks when a team brings in specialist engineers.

Badge reader at a restricted door, standing in for access control over commercial rate data
The build checks group membership on every request, the way this door checks a card on every entry.

How we fixed each build problem

Each fix to the rate lookup reads as obvious in hindsight, though none of them felt obvious at the time.

Query cost

We moved the aggregation ahead of the question. Rate tables are computed per code, payer, state & region, so a search reads one narrow table.

Provider search

We replaced wildcard matching with a prefix index over provider names & identifiers. Names that start with the typed letters now rank first.

Access checks

We moved the group check from login to every request. The audit record now carries each search & the person who ran it.

Shared definitions

We sat with the analysts & wrote the weighting rules down before coding them. The tool now agrees with every spreadsheet, because one agreed formula sits under both.

Rate weighting, incidentally, is the same arithmetic a grocery chain uses for an average shelf price.

An AI proof of concept exists to surface this kind of argument before anyone promises a date.

Billions of raw rows are rolled up into narrow rate tables before the question arrives, so each search makes one read. Billions of raw rows Before the question Rolled-up tables One read per search Billions of raw rows rolled up into narrow rate tables before the question, then one read per search. Billions of raw rows Before the question Rolled-up tables One read per search

Aggregating before the question turned a scan of billions of rows into one narrow read.

What changed after go-live?

After go-live, a rate request starts in a browser form instead of a ticket to the data team.

What Before After
Who can run a lookup Anyone who writes SQL Anyone in the approved group
How a request starts A ticket to the data team A form in the browser
What a search reads Raw transaction rows Pre-computed rate tables
What comes back A spreadsheet, later Four benchmark views, now
Who knows a rate was viewed Nobody The audit log
The rate lookup before & after go-live

We haven’t published a turnaround time or a cost per query. The client reports that both improved, & a number we haven’t measured is a number we won’t print.

A pricing question that used to wait on somebody else now gets answered in the meeting. The same tool serves every region, so two analysts in different states quote the same benchmark.

Adding a new billing code now takes a table definition rather than a whole project.

Pricing questions still waiting on your data team?

Tell us which question keeps turning into a ticket, or check first whether your data is ready for a governed lookup like this one.

What runs in production today?

The self-service rate lookup runs in production for the Value & Access team across its US sales regions. Analysts search commercial rates by billing code, payer, state & provider, & nobody opens the warehouse.

Since handover, the client has pointed the same screens at more rate tables. Each addition took a table definition rather than a rebuild.

Every login, search & export still lands in the audit record, which is what made the tool acceptable in healthcare. The data team now hears from the Value & Access team far less often.

Two people reviewing a printed rate summary in a contracting meeting, with no screens in use
A contracting meeting now starts from a page the analyst produced without opening the warehouse.

What would we do differently?

Four lessons from the rate lookup build would change how we start the next one.

Agree the arithmetic first

We coded a weighting rule that three people in the room defined three different ways. Writing the formula down first would have saved a fortnight of argument.

Pre-aggregate from day one

We started on raw rows because building that way was faster in week one. Every performance problem after that traced back to the same early choice.

Check access on every request

Login-time checks are easy to build, & they age badly. Access that can’t be withdrawn mid-session isn’t really access control.

Ship export in version one

The first thing an analyst does with a number is put it in a deck. We treated export as a follow-up & heard about it within a day.

The first thing an analyst does with a number is put it in a deck.

Where else does self-service rate lookup fit?

A governed rate lookup returns pre-computed benchmark rates for a chosen code, payer & place, without anyone writing a query. It belongs wherever a priced decision depends on a dataset too large to read by hand.

Industry The equivalent problem What changes in the build
Health insurance Claims teams benchmarking what peers pay for a procedure Different weighting, tighter privacy rules
Logistics A warehouse & lane desk pricing freight against the market Lane & mode replace code & payer
Retail Category managers checking competitor prices by region Faster refresh, more volatile inputs
Construction Estimators comparing subcontractor bids by trade & area Fewer rows, messier entity names
Manufacturing Procurement checking part prices across suppliers Supplier hierarchy, contract terms attached
Industries where the same lookup shape fits
The same lookup panel with lane, carrier and period fields and a benchmark band, applied to freight moving between two docks. Lane Carrier Period Benchmark band Same shape, new data The same lookup panel applied to freight lanes between two docks. Lane Carrier Period Benchmark band Same shape, new data

The same lookup shape pricing freight lanes instead of billing codes.

Porting it needs an agreed rule, a clean entity list, an access group & someone who owns the definitions.

Questions buyers usually ask

Can business users query billions of rows without SQL?

Yes, when somebody shapes the answers before the question arrives. Rate tables computed per code, payer, state & region let a simple form return a figure in seconds. Scanning raw rows instead makes self-service feel slow & expensive.

Why not put a chatbot over the data warehouse?

A chatbot over the warehouse is good at exploration & weak at giving the same answer twice. A contract rate gets defended in a negotiation, so the same inputs must return the same figure. Enterprise text-to-SQL benchmarks still sit near a fifth of real tasks.

How does access control work on sensitive commercial rates?

Identity comes from enterprise single sign-on, & the group check runs on every request. Every login, search & export writes an audit record, & access that ends in the directory ends in the tool.

How long does a self-service rate lookup take to build?

A working version on your own data usually takes a few weeks. Agreeing the calculation takes longer than coding it, & identity integration depends on your platform. Most of the schedule is definition work rather than engineering.

How much does a tool like this cost to build?

Cost depends on the data, the calculations & your identity platform. Brainy Neurals scopes it from a short conversation & a look at the warehouse, then quotes a fixed price. An AI readiness assessment tells you first whether your data can carry it.

Should we build this or buy a rate benchmarking platform?

Buy when your questions match what a vendor already answers. Build when the weighting is yours, the data is licensed to you & the access rules are your own. The calculation settles that question more than the interface does.

Which question keeps becoming a ticket?

Describe the pricing or data question your team keeps sending to the data team. One reply comes from the person who would architect the fix.







    Services behind this case study

    The services behind this case study cover the consulting, build & staffing work a rate lookup needs.

    AI consulting services

    Deciding what to build & what to leave alone before anyone writes code.

    AI proof of concept & MVP development

    A working internal tool on your own data in weeks, with the arguments surfaced early.

    Generative AI applications

    Language interfaces for questions that are open ended & answers that can vary.

    RAG development services

    Retrieval over your own documents, with the index designed before the model is chosen.

    Hire AI developers

    Engineers who extend your team for the weeks when the warehouse fights back.

    AI in healthcare

    Clinical & commercial systems built for teams that answer to auditors.

    Our engagement models set how a team like this one runs. An AI readiness assessment tells you whether your data can carry the tool at all. The industries hub shows where this pattern already runs, & our AI development services cover the rest.

    Similar case studies

    Three more Brainy Neurals builds shipped into working environments rather than demos.

    Overhead Line Geometry Measurement

    Stereo cameras on a moving train measure wire geometry, with inference running on the train.

    AI Diet Assistant for Gastroenterology

    Clinical dietary guidance generated under review gates & live in a healthcare setting.

    Personalised AI Meal Planning for Chronic Care

    Structured meal plans built from messy personal health data, grounded & reviewable.

    Cite this case study

    Shah, Rushabh & Patel, Mitesh. Self-Service Rate Lookup Without SQL for Clinical Diagnostics. Brainy Neurals, September 2026. https://brainyneurals.com/case-studies/self-service-rate-lookup/

    Sources cited on this page

    1. Rajamani G, Diaz-Garelli F, Wang T, Kum HC, Weaver AJ. Usability of Health Care Price Transparency Data in the United States: Mixed Methods Study. Journal of Medical Internet Research. 2024;26:e50629. DOI 10.2196/50629.
    2. Lei F, Chen J, Ye Y, Cao R, Shin D, Su H, Suo Z, Gao H, Hu W, Yin P, Zhong V, Xiong C, Sun R, Liu Q, Wang S, Yu T. Spider 2.0: Evaluating Language Models on Real-World Enterprise Text-to-SQL Workflows. arXiv:2411.07763. 2024.
    3. Hu VC, Ferraiolo D, Kuhn R, Schnitzer A, Sandlin K, Miller R, Scarfone K. Guide to Attribute Based Access Control (ABAC) Definition and Considerations. NIST Special Publication 800-162. January 2014, includes updates as of August 2019.