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.
4
Benchmark views per search
Seconds
From question to rate
Every region
Quoting one benchmark
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 |
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]
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 |
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]
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.
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 |
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 |
Application & delivery
| Layer | What we used | Why | Ruled out |
|---|---|---|---|
| Application | Python web app & service layer | One language the team reads | A separate front end |
How does one search actually run?
One rate search runs through six steps, from the first keystroke to the exported table.
- An analyst picks a billing code, a payer, a US state & a sales region from the form.
- Typing part of a provider name returns matching organizations & identifiers before the word is finished.
- The app checks the signed-in session, then the group that session belongs to, & stops if either check fails.
- The service reads the pre-computed rate tables for that combination & never touches the raw transaction rows.
- Weighting logic returns the provider rate, the payer-weighted rate, the state rate & the outside-payer benchmark.
- The screen shows each figure with its range, the analyst exports a table & the 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.
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.
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 |
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.
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 |
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
- 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.
- 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.
- 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.








