Data integration
Your data sources, in one shape you can trust
Pharmaceutical data arrives from many places, in many formats, and rarely agrees with itself. PDS has spent 37 years converting it into a single structure your team can query, report on, and rely on.
Three sources, three answers
-
Three sources,
three answersSources that don’t agree with each other. Definitions that drift over time. A monthly reconciliation nobody enjoys and nobody fully trusts.
-
The fields come first
Before any source is loaded, the structure is agreed: week, territory, product, and the measure.
-
Source 1 arrives
Its dates, territory codes, and product name are converted to the agreed fields as it goes in.
-
Source 2 arrives
Different column names, different spellings. The same four fields.
-
Source 3 arrives
One of its rows repeats a row from Source 1. It is set aside, not counted twice.
-
One structure
Three sources, five rows, one way of writing each field. This is what your team queries.
- source_1.csv
- source_2.xlsx
- source_3.txt
Source files arrive here
| WK_END | TERR | PRODUCT | NRX |
|---|---|---|---|
| 09/13/26 | T-012 | YOUR BRAND 10MG | 124 |
| 09/13/26 | T-014 | YOUR BRAND 10MG | 97 |
| Week of | Territory | Brand | New Rx |
|---|---|---|---|
| 13 Sep 2026 | Territory 15 | Your Brand 10 mg | 88 |
| 13 Sep 2026 | Territory 16 | Your Brand 10 mg | 102 |
| date | terr_name | item | nrx_count |
|---|---|---|---|
| 2026-09-13 | TERR 17 | YB10 | 76 |
| 2026-09-13 | TERR 12 | YB10 | 124 |
One structure - Wk 37
| Week | Territory | Product | Source | NRx |
|---|---|---|---|---|
| Wk 37 | Territory 12 | Your brand | Source 1 | 124 |
| Wk 37 | Territory 14 | Your brand | Source 1 | 97 |
| Wk 37 | Territory 15 | Your brand | Source 2 | 88 |
| Wk 37 | Territory 16 | Your brand | Source 2 | 102 |
| Wk 37 | Territory 17 | Your brand | Source 3 | 76 |
| Wk 37 | Territory 12 | Your brand | Source 3 , Repeat, set aside | 124 |
Three sources, three answers
Sources that don’t agree with each other. Definitions that drift over time. A monthly reconciliation nobody enjoys and nobody fully trusts.
-
Step 1: The fields come first
Before any source is loaded, the structure is agreed: week, territory, product, and the measure.
The agreed fields, with an example row The agreed format
Week Territory Product NRx Wk 37 Territory 12 Your brand 124 -
Step 2: Three sources arrive
Each writes the week, the territory, and the product its own way. Each is converted to the agreed fields as it goes in.
source_1.csv WK_END TERR PRODUCT NRX 09/13/26 T-012 YOUR BRAND 10MG 124 source_2.xlsx Week of Territory Brand New Rx 13 Sep 2026 Territory 15 Your Brand 10 mg 88 source_3.txt date terr_name item nrx_count 2026-09-13 TERR 17 YB10 76 Each line, converted One structure - Wk 37
Week Territory Product NRx Wk 37 Territory 12 Your brand 124 Wk 37 Territory 15 Your brand 88 Wk 37 Territory 17 Your brand 76 -
Step 3: A repeat is set aside
One of Source 3’s rows repeats a row from Source 1. It is set aside, not counted twice.
Territory 12, delivered twice Territory 12 - Wk 37
Week Territory Product Source NRx Wk 37 Territory 12 Your brand Source 1 124 Wk 37 Territory 12 Your brand Source 3 , Repeat, set aside 124 -
Step 4: One structure
Three sources, five rows, one way of writing each field. This is what your team queries.
The three sources in one structure One structure - Wk 37
Week Territory Product Source NRx Wk 37 Territory 12 Your brand Source 1 124 Wk 37 Territory 14 Your brand Source 1 97 Wk 37 Territory 15 Your brand Source 2 88 Wk 37 Territory 16 Your brand Source 2 102 Wk 37 Territory 17 Your brand Source 3 76 Wk 37 Territory 12 Your brand Source 3 , Repeat, set aside 124
Inspected before it goes anywhere
We inspect every source for inaccuracies before it goes anywhere, because everything downstream depends on it.
-
Step 1: Receive
We take your data from every source it comes from, in whatever format it arrives in.
-
Step 2: Clean
We clean the raw data, so the same thing is written the same way in every source.
-
Step 3: Inspect
We inspect it for inaccuracies before it is used, because everything downstream depends on it.
-
Step 4: Convert
We convert it into one structure, organized into the fields your team queries.