Data exchange
What our exchange is validated against
Every response is checked against the standard’s own schemas on each run. Here is which ones — and what that check has already found.
Everyone says they comply with ICAR, and there is no way to check it from outside: the standard has neither certification nor a register of implementations. The only thing that tells a claim apart from words is showing what exactly it is checked against.
- Standard version
- ICAR ADE 1.5.1
- Branch at ICAR
- ADE-1
- Copy taken
- 3 September 2026
- Commit at ICAR
- ac55844e9c
The schemas of the standard sit as a copy in the project tree, and every run validates against them what the book gives out. Below is what takes part in that check, what does not, and why.
schema files of the standard in the project tree
of them take part in checking our resources
resources of the book are checked on every run
The difference between 303 and 77 is not a slip. 11 of our resources are checked, and the schemas taking part are the ones without which the check would not happen: common ancestors, types, enumerations. The other 226 sit in the tree so that references resolve in full and so that an update of the standard is visible in a line-by-line comparison — including the parts the book does not do.
What the book gives out and takes in
14 collections at the paths of the standard; 7 of them accept data. The rest are closed to writing on purpose: registering an animal and transferring ownership are statements the Association answers for, and they go through an application with verification.
| What it is in the book | ICAR schema | Contents | Intake |
|---|---|---|---|
| Animal | icarAnimalCoreResource | The record: identifiers, sex, date of birth, breed, parents. | export only |
| Test-day result | icarTestDayResultEventResource | Daily yield, fat, protein and somatic cells on a date. | accepted |
| Parturition | icarReproParturitionEventResource | Date, parity, calving ease, the list of calves with sex and status. | accepted |
| Insemination | icarReproInseminationEventResource | Date, service number, sire, method of reproduction. | accepted |
| Weight | icarWeightEventResource | Live weight on a date, in kilograms. | accepted |
| Pregnancy check | icarReproPregnancyCheckEventResource | The result of the test; it lives on the insemination and has no record of its own. | export only |
| Type classification | icarTypeClassificationEventResource | Linear traits and composite scores, with the classifier named. | export only |
| Breeding value | icarBreedingValueResource | Index value, reliability, weight profile, comparison base. | export only |
| Arrival | icarMovementArrivalEventResource | The animal came to the holding: purchase, import, transfer. | export only |
| Departure | icarMovementDepartureEventResource | The animal left: sale, transfer, culling for slaughter. | export only |
| Death | icarMovementDeathEventResource | Death on the farm — a separate resource with fields of its own. | export only |
Schemas that take part in the check
Our resources refer to common ancestors, those to types, and types to enumerations. The closed circle of these references is what the response of the book is actually checked against. Names are given as they are in the repository: one search finds the schema by them.
Resources — 18
Types — 31
Enumerations — 28
What the standard has and the book does not
226 schemas take no part in the check, and that is not a gap. The standard describes the whole farm — from the feed table to the slaughter plant — while a herd book answers for descent and productivity. The boundary is visible here.
| Topic of the standard | Schemas | Why not here |
|---|---|---|
| Feed and rations | 30 | Feeding is kept in the herd management system; the book needs the result, not the ration. |
| Health and treatment | 31 | The veterinary side is separate both in law and in responsibility. |
| Slaughter and carcasses | 16 | Meat recording: another industry, other measurements, another consumer. |
| Animal groups | 28 | Group events and sorting are needed by robots on the farm, not by the book. |
| Devices and sensors | 30 | Readings from the milking parlour and from sensors are raw material for the farm; the book takes the result. |
| Inventory and turnover | 9 | Stock and the movement of goods are the holding’s task, not that of breed recording. |
| Reproduction beyond ours | 23 | Heats, abortions, embryo transfer — the next step, named in the ICAR section map. |
| Milk beyond ours | 18 | Milking detail by quarter and by visit; the book keeps test-day recordings. |
| The rest of the standard core | 41 | Common ancestors, references to resources, service wrappers for collections. |
The split into topics is made by a keyword in the schema name. The rule is crude and is good for exactly what it was set up for: showing the size of the standard and the boundaries of the book.
What the check has already found
A mistake of ours
The list of calves on a calving went out without the mandatory fields the common ancestor of the resource requires. The book’s own validation was bound to miss it — it knew nothing about the ancestor. Any partner validating against the schema would have rejected every calving with calves we sent.
A mistake in the standard itself
icarTypeClassificationEventResource declares two fields mandatory that neither it nor its ancestors define: the list of required fields was copied from a neighbouring type when the resource was split in two. Nothing can satisfy such a schema. Here it is lifted by an exception written for that specific breakage and is printed as a separate line so that it does not dissolve into the green.
A gap in the standard
icarBreedingValueType has neither a daughter count nor a herd count, although a progeny evaluation cannot be verified without them: two hundred daughters in a single herd describe the herd, not the bull. Until the working group adds the fields, the book accepts daughters and herds as an extension — at resource level, or identical across every trait in the set. What we serve stays strictly to the standard, with no extension.
Source and updates
The schemas are taken from the adewg/ICAR repository under the Apache 2.0 licence, branch ADE-1, commit ac55844e9c76. The files are not modified.
The copy sits in the tree on purpose. A check that goes out to the network fails when someone else’s server is unavailable and — worse — passes when it is unavailable unnoticed. An update of the copy is visible in a line-by-line comparison: a divergence from the standard becomes an event that someone has read and accepted.