HIPAA-Compliant AI Analytics: 9 Things to Require
Nine requirements to put in writing before buying AI analytics for a healthcare marketing team, the vendor questions to send, and how Curve Analyst meets each.
Most AI analytics tools sold as "HIPAA compliant" fail at least one of nine requirements, and the failure usually sits in the contract or the data path, not in the model. If you are buying one for a healthcare marketing team, get all nine in writing before anyone pastes a report into it. This checklist comes from building Curve Analyst, an AI chat inside a HIPAA-compliant analytics platform, and from watching practices adopt AI features their compliance officer would have rejected if asked. Use it against any vendor, including us.
TL;DR
- The BAA has to come from the vendor, cover the AI feature specifically, and be available on the plan you are buying.
- The model has to run inside covered infrastructure, such as Amazon Bedrock under an AWS BAA, with no training on your data and no copy of it in a separate AI product.
- The assistant should be read only and should refuse questions about individuals.
- It must say when data is missing, stale, partial, or a sample, and it must say which attribution view an ad number comes from.
- Scope should be a fixed set of query tools rather than free SQL, so a compliance review can list everything the AI can reach.
- Curve Analyst meets all nine and deliberately skips session recordings, configuration changes, patient lookups, and SQL of any kind.
Which requirements decide whether the vendor may touch your data at all?
The first four are contract and architecture. If any one fails, the rest of the evaluation does not matter.
1. A BAA from the vendor, on every plan
Under HIPAA, a vendor that handles protected health information on your behalf is a business associate and needs a business associate agreement. Practice analytics qualifies more often than marketers assume: page paths that name a condition, form submissions, appointment bookings, and the identifiers that tie a visitor to a return visit. An AI feature that reads that data is handling PHI.
The trap is tiering. Plenty of vendors will sign a BAA, but only on the enterprise plan. On the mid tier you have a marketing page that says "HIPAA compliant" and no contract that says it. Ask for the BAA text before the demo and read the scope clause, because some BAAs quietly exclude "beta" or "AI" features. Require it on the plan you are buying, with the AI feature named in scope.
2. The model runs inside covered infrastructure
Your vendor's BAA covers your vendor. It does not cover whichever AI provider the vendor calls to generate the answer, so you need to know where the model runs and under what agreement.
There are two clean patterns. The first is a hosted model inside a cloud service that is HIPAA eligible and sits under the vendor's BAA with that cloud. Amazon Bedrock is the reference example: it is a HIPAA-eligible AWS service, and AWS signs a BAA covering eligible services, so a vendor already on AWS under a BAA can call a model without the data leaving covered ground. The second is a direct agreement between the vendor and the model provider. OpenAI and Anthropic make BAAs available for certain API and enterprise arrangements; confirm the current terms yourself.
What fails is a vendor that pipes your question, and the query result behind it, through a consumer account. Consumer ChatGPT (Free, Plus) and consumer Claude.ai (Free, Pro) are not covered by a BAA, and a product built on them is not HIPAA compliant no matter what the sales page says.
3. No training on your data
Training is retention you cannot revoke. Once a query result about your booking funnel has shaped a model, no deletion request gets it back out. Consumer ChatGPT may use conversations for training unless the user opts out.
A BAA alone does not settle this. Ask, in writing, whether prompts, query results, charts, or anything else the feature touches is used to train or tune any model, by the vendor or by its AI provider. The answer you want is no, in the contract, not in a help center article that can change next quarter.
4. Your data is not copied into a separate AI product
A whole category of "chat with your data" products, including Snowflake Cortex, Databricks Genie, ThoughtSpot Sage, Julius AI, and similar, generally requires your data to be loaded into their platform before you can ask anything. Whether a BAA exists varies by vendor and by plan, and you would have to verify it for every product in the chain.
Even where the paperwork exists, the copy is the problem. Every export into another system is a second location holding PHI, a second vendor to audit, a second retention policy, and a second place to delete from when the contract ends. Prefer an assistant that queries the data where it already sits, under the BAA you already hold.
Which requirements decide whether the answers are safe to repeat?
The marketing lead lives with the next five, because these decide whether the number you carry into the Monday meeting is one you can defend.
5. The assistant is read only
An AI that can edit a destination, rename an event, pause a conversion action, or change a mapping is not an analyst. It is an agent with write access to your ad infrastructure, and at some point it will misread a question and "fix" a mapping that was correct.
Require that the assistant can only read. Changes belong in the normal interface, made by a person, with an audit trail. We built Curve Analyst this way and would not ship it otherwise.
6. No person-level lookups
A practice's analytics platform holds records that could identify a patient, even after stripping. An assistant that will answer "which patients booked from the retargeting campaign" or "show me the visitor who filled out the fertility form" is a disclosure engine with a chat window.
Require aggregate answers only. The assistant should decline questions about individuals, and the underlying query tools should be unable to return a single person's record even if the model tried. Verify that during the trial; do not accept it as a policy promise.
7. It says when data is missing, stale, partial, or a sample
Language models fill gaps fluently, and a fluent wrong number is worse than a blank. Test each of these before you sign:
- Every number comes from a query against your account. The assistant never estimates or extrapolates.
- If a metric is empty, it says the metric is empty.
- If the data is stale, partial, sampled, or still syncing, it says so before the number, not in a footnote after.
- It treats "unknown" and "zero" as different answers. A goal that fired zero times and a goal that is not configured are not the same finding.
8. It says which attribution view it is quoting for ad numbers
Require that every ad metric carries its source. Spend comes from the platform, and so do clicks and impressions. Conversions can come from either side, and the answer has to say which. The strongest version is a reconciliation view that puts what your platform sent to Google or Meta next to what the platform credited, with a note that a gap is usually the platform's attribution window still being open. If you want reports a compliance officer will actually sign off on, every conversion figure needs its origin attached.
9. Scope: fixed query tools, not free-form SQL
There are two ways to build an assistant over analytics data. One lets the model write SQL and run it. The other gives the model a fixed set of query tools, each with a few parameters like date range and dimension, and lets it pick. Require the second.
Free SQL means the model can reach any table its credentials can, including the ones with identifiers, and a compliance review cannot enumerate what it might do. Fixed tools mean the list of possible queries is finite and was written by people who know the schema. The bonus is accuracy: a tested query returns the right column, and one a model improvised at midnight sometimes does not. If the vendor says "text to SQL", ask what stops it from selecting an email address.
What should you ask the vendor in writing?
Send these by email rather than on a call, so the answers are on record.
- Will you sign a BAA on the plan we are buying, and does it name the AI feature in scope?
- Which model provider does the AI feature call, where does inference run, and under which agreement is that provider covered?
- Are our prompts, query results, outputs, or logs used to train or tune any model, by you or your provider? Where is that stated contractually?
- Does the AI feature require our data to be exported into another system? If so, which one, and who holds the BAA for it?
- Can the assistant change any configuration, or is it strictly read access?
- Can the assistant return information about a single visitor or patient, and what prevents it technically?
- For ad conversions, does the assistant label whether a figure is platform reported or attributed by your system?
- Does the model write SQL, or does it select from predefined queries you can list?
How does Curve Analyst meet the nine, and what does it refuse to do?
Curve Analyst is the AI chat inside the Curve dashboard: you ask a question in plain language, it queries your account's own data, and it answers with text plus rendered charts. Against the list:
- Curve signs a BAA with every customer on every plan, and Analyst is part of the covered product rather than a separately licensed add-on.
- Analyst runs on Claude through Amazon Bedrock, inside infrastructure covered by Curve's BAA with AWS.
- Customer data is not used to train models.
- Nothing is exported to a separate AI product. Analyst queries the same data your dashboard already shows and keeps the date range and filters of the screen you opened it from.
- Analyst is read only. It cannot change tracking, edit destinations, or take any action in the account.
- It does not look up individuals and does not answer questions about a specific person.
- Every number comes from a query. It never estimates, says when a metric is empty, flags stale, partial, sample, or still syncing data before the number, and treats "unknown" and "zero" as different.
- For campaign reporting it says whether a conversion figure is Curve's own attributed count or the platform's, and its reconciliation view shows what Curve sent to Google or Meta beside what the platform credited.
- It does not write SQL. It picks from fixed query tools that cover website analytics, goals and funnels, and campaign reporting.
Equally important is what we left out on purpose:
- It cannot access session recordings or heatmaps, even though Curve offers both.
- It cannot change configuration or take any action.
- It cannot look up a patient or a visitor.
- It does not answer questions about tracking configuration or connector health yet. That is planned, as read access.
For the longer walkthrough, what Curve Analyst is and how it works covers the three data areas and chart types.
What to ask Curve Analyst
Analyst offers suggested questions when you open it, but the fastest way to judge it is to type what you already ask your reporting person every Monday and see whether the answer arrives with a chart and any caveat due.
- Which channel had the lowest cost per conversion this month?
- How many times did each goal fire this month compared with last month?
- How many visitors are on the site right now, and where did they come from?
The launch post, Introducing Curve Analyst, walks through what each of these returns.
Frequently asked questions
Is the AI inside Google Analytics 4 covered by a BAA?
Google does not sign a BAA for Google Analytics 4, and any AI feature inside it, including the Gemini insights and Analytics Intelligence, inherits that status. Google's healthcare eligible services live in Google Cloud and Workspace under separate BAA terms. If GA4 is your current tool, start with whether GA4 is HIPAA compliant and what the alternatives are before you evaluate anything with a chat box.
Can we paste an analytics export into ChatGPT instead?
Not on a consumer account. ChatGPT Free and Plus are not covered by a BAA, and conversations may be used for training unless the user opts out. An export can contain PHI even when it looks like aggregate numbers, because page paths and campaign names often name a condition. If your organization has an enterprise or API arrangement with a BAA, confirm the current terms before anyone uploads a file.
Why does Curve Analyst report different conversion numbers than Google Ads or Meta?
Because they are counting different things. Curve reports the conversions its own attribution engine credited under the model you chose, and the platforms report conversions under their own rules and windows. Analyst says which one it is quoting, and the reconciliation view shows both next to each other. A gap is most often the platform's attribution window still being open.
Does Curve Analyst see session recordings or heatmaps?
No. Curve offers session replay and heatmaps as separate features, and Analyst has no access to either. That was a scope decision, and it is worth asking any vendor whose platform records sessions the same question.
To see the nine requirements answered on a live account rather than in a slide deck, book a demo of Curve and bring your compliance officer to the call.
Related articles
- GuideHealthcare Marketing BAA Requirements: When Your Vendors Need Business Associate Agreements
- GuideAsk Your Analytics: Questions Clinics Start With
- GuideHow to Evaluate HIPAA-Compliant Tracking Vendors: 12 Questions That Expose Weak Compliance
- GuideChild and Adolescent Therapy Marketing: COPPA and HIPAA Requirements for Pediatric Mental Health Advertising
Stay Compliant. Scale Confidently.
Join healthcare innovators who trust Curve for HIPAA-compliant ad tracking.Launch in hours, not months. Your growth stack, now HIPAA-safe.
Book a free tracking audit