Two requirements matter more to a pharma buyer than any feature list. The tool can’t move patient-adjacent rows somewhere your security team didn’t approve. And when an acquirer’s diligence team asks whether a number was checked, you have to show the check.
Everything else is ordinary data engineering.
Is this a Part 11 purchase?
Usually not. Most commercial pharma data isn’t a Part 11 record, because no FDA rule requires you to keep it. Drug sample records and adverse events are the exceptions, and they belong in validated systems. For sales, specialty pharmacy, and territory data, the audit trail you need is a business one. Due diligence checks whether the commercial story is accurate, auditable, and defensible.
The evaluation table
| Criterion | Why it matters in pharma | Ask the vendor | What DataKitchen offers |
|---|---|---|---|
| In-database testing | Rows stay in your cloud account | Do tests run as SQL in my warehouse, or does data move to you? | TestGen pushes read-only SQL and stores only aggregates and outcomes |
| Test history and dispositions | You can show a number was checked | Is every result and every dismissal recorded, with who and when? | TestGen records every disposition with an audit trail |
| Lineage | You trace a wrong report to its feed | Column-level, table-level, or pipeline-level? | Column-level is Partial; Observability maps data journeys across tools |
| Deployment control | One team’s change can’t break another’s report | How does a change reach production? | Automation promotes from isolated environments, with Git version control and activity logs |
| Where it runs | Your security review | SaaS, self-hosted, or both? | TestGen open source is self-hosted; Enterprise runs cloud, self-host, or Docker |
| Pharma identifiers | NPI, NDC, and DEA fail silently on joins | Do you validate check digits or only shape? | TestGen Enterprise Commercial Pharma pack: 12 identifier tests |
| Cross-feed checks | The failures are relational | Can I test one feed against another? | Aggregate Balance and custom SQL tests |
What the comparison pages say about other vendors
| Vendor | Deployment | Column-level lineage | Open source | Estimated annual price |
|---|---|---|---|---|
| Monte Carlo | SaaS | Yes | No | $120K-$250K |
| Bigeye | SaaS | Yes | No | $80K-$180K |
| Sifflet | SaaS | Yes | No | $70K-$160K |
| Soda Enterprise | SaaS | Partial | Partial | $100K-$200K |
| Anomalo | SaaS, self-host option | Partial | No | $100K-$200K |
| Metaplane (Datadog) | SaaS | Yes | No | $60K-$150K |
| Collibra DQ | SaaS, self-host | Yes | No | $150K-$400K |
| Informatica IDMC (Salesforce) | SaaS, self-host | Yes | No | $200K-$500K+ |
| DataKitchen TestGen open source | Self-host | Partial | Yes, Apache 2.0 | $0 |
| DataKitchen TestGen Enterprise | Cloud, self-host, Docker | Partial | No | $12K-$36K |
Prices are DataKitchen’s estimates, reviewed June 2026, for 10 users and 1,000 tables. Capability values are from each comparison page’s matrix as of the same review.
Deployment control is the row with the longest track record in pharma. One DataKitchen customer has had 41 people from five companies work the same data for seven years, still in production, with 594 automated tests as the contract between them. The commercial pharma FAQ names it: the BMS CAR-T warehouse.
Read the lineage column as a real gap. If your auditors want automatic column-level lineage from feed to dashboard, several SaaS tools do more there than we do.
Test where the data breaks
A tool that only watches the gold table finds out last. The four testing points in a layered architecture are source quality, ingestion monitoring, tripwires between transforms, and regression tests in CI. In pharma the source point carries most of the weight, because vendor feeds arrive partial or restated and look fine.
Check identifiers properly too. An NPI’s tenth digit is a Luhn check digit, so a ten-digit pattern test passes a transposed number and the join drops the prescriber with no error.
Observability and testing are separate jobs. Monitors catch late and missing data; tests catch wrong values. You need both, and process observability watches the tools in between.
Ask every vendor where your rows go. Get the answer in writing.