WorkflowResearch & Discovery

CRO Data Intake and Normalizer

CRO data management without the re-keying: every deliverable read, normalised, checked against its contract and cited

Every contract-lab deliverable becomes clean, cited records in the warehouse within hours, with nothing typed in by hand.

See one case, screen by screen ↓
demo96valuesread from one microsomal stability study, each with its page or cell
demo74valuesloaded the same morning — 22 held for the CRO’s reply, not loaded
target2.1hmedian from receipt to records in the warehouse
target79%of deliverables load clean on the first pass; the rest reach a person with the evidence
The problem

Why CRO data takes days to reach the people waiting for it

Every contract lab sends results its own way. One CRO drops a final report PDF and a results workbook on SFTP, another posts an instrument export to its portal, a third emails an Excel file. Half-lives arrive in minutes or hours, clearance in mL/min/g, permeability in nm/s, protein binding as % bound — and compounds come back as “NB-4471”, “Cmpd 16” or a tube label with two digits swapped.

So a data steward re-keys every value into the house schema, converts the units and matches each name to the registry, while a scientist reads the report to check the controls and replicates against the statement of work. A CRO can mark a plate “Pass” against its own SOP range when the contract does not accept it — and unless someone opens the contract, that value goes straight into the SAR view the designers rely on.

target3–5daysfrom receipt to records in the warehouse, by hand
demo472hoursof re-keying avoided in eight weeks — the working solution’s own estimate, on its sample data
Where a deliverable’s working days goestimated
By hand4 days
With the solution0.3 days
  • Finding the package and matching it to the study0.5 → 0.1 d
  • Re-keying values into the house schema1.5 → 0.1 d
  • Converting units and matching compound IDs0.5 → 0.1 d
  • Checking controls and replicates against the contract1 → 0.1 d
  • Querying the CRO and loading the warehouse0.5 → 0.1 d

Estimated split for a typical in-vitro ADME deliverable, by hand and with the solution, in working days.

How it works

How a deliverable moves

Six agents classify, extract, normalise and check every deliverable against its contract; the study monitor decides each exception.

What comes in
Deliverables inPDF, Excel, CSV · SFTP, portal or mailbox
Agents at work
Deliverable classifierCRO, study, assay
Then
Result extractor
Unit & identity normaliser
Then
Study-spec checkeragainst the contract
A person decides
Study monitordecides each exception
What comes out
Cited records loaded
Query to the CRO
CRO scorecard
One case, step by step

One CRO study, from drop folder to warehouse

Halden Biosciences delivers microsomal stability study HB-26-0417 — a report, a results workbook, 23 compounds in human and mouse liver microsomes. Here is what happens next, screen by screen, in the working solution.

  1. 01Morning

    The week’s intake, on one screen

    Dr. Priya Raman · Study monitor

    Priya opens the solution and sees every CRO package this week: 38 deliverables read, normalised and checked against their contracts, 30 already in the warehouse, 6 waiting for her decision — each with its evidence. Two packages are arriving now, from Quillon and Larkspur.

    “38 CRO deliverables this week — read, normalised and checked against their contracts.”

  2. 0209:28

    A screening plate set arrives, and loads clean

    The agents

    Larkspur Screening drops plate set 12 on SFTP and Priya presses Process now. The classifier names study LS-0932 and contract NWB-SOW-050 §1; the extractor reads 4 plates, 1,408 compound wells and 4 plate Z′ values; every compound matches the library manifest. Z′ is 0.72–0.82 on every plate against a contracted minimum of 0.5, and 6 hits sit above the 60% threshold. No exceptions — it joins the next warehouse load without anyone touching it.

    “No exceptions — joins the next warehouse load.”

  3. 03Day 8 of 10

    The Halden study: 96 values, each one traced

    Dr. Priya Raman · Study monitor

    D-2611 opens with the source on the left and the records on the right: 96 values built by 4 agents, mean confidence 98, 46 CLint values converted from mL/min/g to µL/min/mg. “Cmpd 16” is matched to NWB-4486 through row 16 of the shipped manifest, and “> 60 min” stays a qualified value. Priya clicks the verapamil control on mouse plate 2, and a line runs to Table 2 on page 6 of the report.

    “Outside the contracted 3–15 min — the CRO marked it ‘Pass’ against its own SOP range (3–20 min).”

  4. 04Checked

    The contract wins over the CRO’s SOP

    Study-spec checker

    Three exceptions, each with its evidence. The verapamil half-life on MLM plate 2 is 17.9 min; Schedule 4.2.3 of NWB-SOW-031 accepts 3–15 min in mouse microsomes. Page 11 of the report notes that plate 2 used microsome lot ML-2291 after a second freeze–thaw cycle. The exception affects 22 MLM values across 11 compounds.

    Suggested: “Hold the plate 2 values and ask Halden to repeat the plate with a fresh microsome lot.” The agents propose — a named person decides.

  5. 05Decided

    Two quick calls, recorded with her name

    Dr. Priya Raman · Study monitor

    NWB-4490 was not incubated — a precipitate formed at 1 µM in phosphate buffer — so Priya records it as not tested, and chemists will see why it is missing. NWB-4488 replicates in human microsomes were 17.6 and 27.6 min, a CV of 31% against the contracted 20%; it loads with a “high variability” flag beside the value.

  6. 06Drafted

    A cited query to the study director, ready to approve

    CRO query writer

    For the plate 2 control, the query writer drafts a note to Dr. Ilse Varga, Study Director at Halden, with Dr. Lena Ortiz in copy. It cites page 6, Table 2 and contract §4.2.3, asks for MLM plate 2 to be repeated with a fresh microsome lot, and says which 22 values are held. Nothing is sent until Priya approves.

    “Drafted by the CRO query writer — sent through the Halden portal after you approve.”

  7. 07Loaded

    74 values in the warehouse, 22 held

    Warehouse loader

    With every exception decided, Priya loads the study. The loader checks 96 records against house schema v4, writes 74 values with house units, qualifiers and flags, keeps 22 out for the CRO’s reply, and writes 74 citations back to the page or cell. The Aster program’s SAR view refreshes, so designers see the new values now.

    “Nothing re-keyed — every value carries its source.”

  8. 08On the record

    Who did what, and when

    Every agent and every person

    The study’s activity trail shows each step in order: the classifier matching the package to HB-26-0417, the extractor reading 96 values from Table 2, Table 3 and the Summary sheet, the normaliser’s conversions, the checker’s three exceptions, Priya’s decisions, the query approved and sent, and the load of 74 values with 22 held.

  9. 09Every week

    How each CRO performs against its contract

    Omar Haddad · Head of External Research

    The dashboard shows values loaded, clean first pass, receipt to loaded, on-time delivery by CRO and where checks fail. It names the pattern: Sorrel’s in-vivo PK misses most often — 3 of the last 8 rat studies ran past 20 working days. The CRO scorecard goes to Omar each week.

Who it’s for

Built for everyone who waits on CRO data.

The same study, seen by the five people who handle it — what their week looked like, and what it looks like now.

PR
Dr. Priya RamanStudy monitor, External Research
Study monitor
Before
Reads each CRO report against its contract by hand, and finds a failed control only when someone asks why a value looks wrong.
Now
Starts from a short list of exceptions, each with the report passage and the contract clause, and decides with one click.
SP
Sam PatelResearch data steward
Data steward
Before
Re-keys values, converts units and works out which compound “NB-4493” really is.
Now
Confirms only the identities that do not match the shipped manifest — like NB-4493, mapped to NWB-4439 with the digits swapped — and keeps the unit and alias rules.
LO
Dr. Lena OrtizDMPK scientist, Program Aster
Scientist
Before
Waits days for CRO results to reach the SAR view, and cannot see which values are suspect.
Now
Sees new values the day they load, with flags beside them and a link from every value to its page or cell.
OH
Omar HaddadHead of External Research
Head of External Research
Before
Hears that a CRO is late or sloppy from anecdotes in program meetings.
Now
Gets a weekly scorecard: on time, clean first pass, QC failures and open queries for each CRO, against its contract.
DO
Dana OkaforResearch IT
Research IT
Before
Gets asked to load spreadsheets nobody can trace back to a report.
Now
Runs the warehouse connection and keeps the GLP copy register; every load arrives with its citations and holds.
Built on the engine

6 agents. Each with one job, and hard limits.

Six agents classify, extract, normalise and check every deliverable against its contract; the study monitor decides each exception.

Deliverable classifier

Reads every file in a CRO package — report PDF, results workbook, instrument export, cover email — and identifies the CRO, study, assay and contract schedule.

  • Never guesses a study — unmatched packages go to a person
  • GLP studies are labelled on arrival
Result extractor

Turns report tables, workbook cells and instrument exports into result records in the house schema, with a page or cell for every value.

  • Every value carries its file and page or cell
  • Qualifiers are kept as reported
  • Zero is never written for a value below the quantification limit
Unit & identity normaliser

Converts units by approved rules and matches compound names to the registry through the manifest shipped for the study.

  • Conversions only by an approved rule
  • Ambiguous identities go to the data steward
Study-spec checker

Checks controls, replicates, recovery, integrity markers, time points, compounds delivered and turnaround against the contract, and raises an exception with the evidence for every failed criterion.

  • Never marks a failed control as passed
  • Contract range wins over the CRO’s SOP
  • Proposes — a person decides
Warehouse loader

Loads decided records to the research data warehouse with house units, qualifiers, flags, holds and the citation to the source.

  • Loads only when every exception is decided
  • GLP data labelled “convenience copy”
  • Every load on the audit trail
CRO query writer

Drafts a short, precise query to the CRO study director, citing the report page or workbook cell and the contract clause, and saying which values are held.

  • Sends only after a person approves
  • No internal compound structures in messages
Study monitor

Accepts, holds or queries. The agents propose; a named person decides.

Ask in plain words

Ask about any deliverable, value or contract

The study monitor, the steward and the scientists can ask in plain words — or tell it what to change. Every answer links to the page or cell it rests on.

What is blocking the Halden stability load?

Three decisions are open on HB-26-0417. The verapamil control on MLM plate 2 ran at 17.9 min; the contract allows 3–15 min. Halden marked it “Pass” against its own SOP and notes a second freeze–thaw of the microsome lot — 22 values wait on this. NWB-4488 replicates differ, CV 31%. NWB-4490 was not tested — solubility. The other 71 values are clean.

Which CRO fails quality checks most often?

Over the last 8 weeks, Halden Biosciences at 6.1%, then Corrib Labs at 4.2% and Quillon Bioanalytical at 3.8%; Larkspur Screening is lowest at 1.6%. Most of Halden’s failures are controls — its SOP accepts a wider verapamil range in mouse microsomes than the contract.

Show every result for NWB-4471

Across the CRO deliverables, in house units: HLM CLint 28.8 µL/min/mg, MLM CLint 64.5 µL/min/mg, Caco-2 Papp A→B 8.4 × 10⁻⁶ cm/s, efflux ratio 1.3, IRAK4 IC50 3.2 nM, hERG IC50 > 30 µM, fraction unbound 0.042, IL-6 release IC50 38 nM, CYP3A4 IC50 14 µM. Every value opens the exact page or cell it came from.

Add a rule: remind the CRO when a deliverable is 2 days late

Done — the rule “Send the CRO a reminder when a deliverable is 2 working days past the contracted turnaround” is in Settings. Today it would remind Corrib Labs about CL-7719 (day 12 of 10). Every reminder is on the audit trail.

Every screen

The working solution, as it ships.

13 screens from the working solution, on its sample data. Pick one to see it large.

HomeThis week’s intake from six CROs, what is arriving now, what waits for the study monitor and how each CRO is doing against its contract.
Agents at workA screening plate set read as it arrives: classified, extracted, matched to the library manifest and checked against the contract — each step with what it found.
Every deliverableEvery package from every CRO, with its stage, value count and turnaround clock in working days against the contract.
Source to recordThe report on one side, the records on the other — click a value and a line runs to its page, table or cell.
Exceptions with evidenceEach failed check with the report passage, the contract clause and a suggested decision.
Decisions, recordedA compound recorded as not tested and a high-variability flag, each with the name and the time.
The CRO queryA drafted query to the study director, citing the report page and the contract clause, sent only after approval.
Load to the warehouseValues written with house units, qualifiers and flags; held values kept out; every value linked back to its source.
Activity trailEvery agent step and every human decision on the study, in order, with who and when.
Every exceptionExceptions across all CROs: needing a decision, waiting on the CRO, and decided today.
Study specsEach contract’s acceptance criteria beside the CRO’s own SOP — and where the contract wins.
CRO performanceValues loaded, clean first pass, on-time delivery by CRO, where checks fail and the exception mix.
Your rulesWho decides each kind of exception, and the quality rules the agents apply.
Governance

Built for research data you can trace: cited, checked, decided by a person.

Every value cites its sourceEach record carries its file and page, or sheet and cell. Click any value to draw the line to the exact place in the report, workbook or export it came from.
The contract is the standardEvery package is checked against its statement of work. Where the CRO’s own SOP is looser, the contract range wins — a plate marked “Pass” by the CRO can still be held.
A named person decides every exceptionThe agents propose a decision with the evidence; the study monitor or data steward decides, and the decision is recorded with their name and the time.
Held values never reach the warehouseA study loads only when every exception is decided. Values held for a CRO query stay out until they are released.
Nothing goes to a CRO unapprovedThe query writer drafts each query with its citations; it goes to the CRO only after a person approves it.
GLP data stays a convenience copyGLP study values load labelled as a convenience copy for research use; the signed report and the test facility’s archived dataset stay the record. This setting is always on.
Configuration

Your contracts and your rules, not ours

Who decides, which quality rules the agents apply and where deliverables come from are all settings.

SettingDefaultChoose from
Hold values when a control is outside the contracted rangeOnOn · Off — even when the CRO marks it “Pass” against its own SOP
Flag replicate variability above20% CVUp or down in steps of 1%
Minimum recovery for permeability70%Up or down in steps of 5%
Accept a compound alias when the manifest row matchesOnOn · Off — otherwise the data steward decides
Keep qualified values as reportedOnOn · Off — “> 60 min”, “< LLOQ” never become plain numbers
Draft a CRO query for every held valueOnOn · Off — you approve before it is sent
Who decides compound identitySam PatelAny named person on the team
Unit rules6 rulese.g. nm/s → 10⁻⁶ cm/s (× 0.1) · Add a rule
Connections

Works with the way your CROs already deliver

SFTP drop folderschecked every 10 minutes
CRO portalsdaily sync
External research mailboxreports and workbooks sent by email
Study contracts and specsstatements of work and their acceptance criteria
Compound registry and shipped manifestsregistry IDs and aliases
Research data warehousecited records loaded, SAR view refreshed
What it changes

The difference, in numbers.

Every figure is labelled: a target the solution is built to, an estimate, a typical published result, or a proven one.

target
2.1h
median from receipt to records in the warehouse
By hand3–5 days
With agents≈ 2 h
estimated
70–90%
less transcription effort for scientists and data stewards
By handevery value re-keyed
With agents10–30% of the effort
target
79%
of deliverables load clean on the first pass; the rest reach a person with the evidence
clean on first pass

“demo” = seen in the working solution, on its fictional sample data · “target” = the design goal, measured in the live solution · “estimated” = our estimate, before measurement. People, CROs, compounds and studies named on this page are characters and examples in the working solution.

Questions

What external research teams ask us.

What is CRO data management?

It is the work of getting results from contract research organizations — reports, results workbooks and instrument exports — into your own research data systems in a consistent, trusted form. CRO Data Intake does it with agents that classify each package, extract every value into your house schema, normalise units and compound IDs, check the data against the contract, and load it with a citation to its source.

How does it handle different CRO formats?

The classifier reads every file in a package — report PDF, Excel workbook, CSV instrument export and cover email — and identifies the CRO, study, assay and contract schedule. The extractor reads tables with their page or cell coordinates, so a value from a PDF table and a value from a workbook cell are both traced to their source.

How are units and compound IDs normalised?

Units are converted only by approved rules you keep in Settings — for example mL/min/g protein to µL/min/mg, nm/s to 10⁻⁶ cm/s, or % bound to fraction unbound. Compound names are matched to the registry through the manifest shipped for the study; a name that does not match goes to the data steward with the most likely match and the reason.

Does it check the data against the study contract?

Yes. The study-spec checker tests every acceptance criterion in the statement of work — controls, replicate variability, recovery, integrity markers, time points, compounds delivered and turnaround. When the CRO’s own SOP is looser than the contract, the contract range wins.

Do people stay in control?

Yes. The agents propose a decision for every exception; the study monitor or data steward decides. A study loads only when every exception is decided, held values stay out of the warehouse, and no query goes to a CRO until a person approves it.

What happens to qualified and below-LLOQ values?

They stay as reported. “> 60 min” or “< LLOQ” never become plain numbers, and zero is never written for a value below the quantification limit.

Can it load GLP study data?

It loads GLP study values as a convenience copy for research use, labelled as such. The signed report and the test facility’s archived dataset stay the record, and every value cites the signed report page.

How long does it take to go live?

The Agentic Solution Engine builds and deploys it from your requirements and documents — your statements of work, house result schema, unit rules and a sample of past CRO deliverables — and it goes live once every quality gate has passed. We will walk you through it on your own deliverables first.

See it on
your CRO data.

We’ll run CRO Data Intake on a sample of your own CRO deliverables and contracts.