6.7.2.6 SourceReliability
6.7.2.6.1 Purpose¶
A versioned preference between sources for an event or observation type and an attribute group, with optional farm exceptions and tolerances. It decides which source wins when comparable evidence disagrees.
6.7.2.6.2 Questions it answers¶
- Which source wins for the date, the sire or a measurement?
- Does a farm have an exception to the default ranking?
- How far can two values differ before the disagreement is counted?
6.7.2.6.3 Fields¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
id |
string (uuid) |
1..1 |
Key. |
applies_to |
string |
1..1 |
An event type, an observation type code, or * for all. |
attribute_group |
enum | 1..1 |
Values: timing, classification, genetics, clinical, quantities, identity, all. Default: all. |
ranking |
list of enum | 1..1 |
Values: those of SourceFeed.reliability_class.Ordered, first = most reliable, e.g. genetics of a service: official_registry > management_software. |
farm_exception |
Farm | 0..1 |
Only for an explicit exception, e.g. a management software that a farm does not keep up to date. |
time_tolerance_seconds |
integer |
0..1 |
Candidate-search tolerance only; temporal proximity does not establish duplicate measurement identity. |
value_tolerance |
decimal |
0..1 |
Observations only: beyond it the disagreement is counted for the feed. |
rule_set |
ReconciliationRuleSet | 1..1 |
|
created_at |
datetime |
1..1 |
6.7.2.6.4 Relationships¶
References
SourceReliability.farm_exception→ Farm (0..1)SourceReliability.rule_set→ ReconciliationRuleSet (1..1)
6.7.2.6.5 Rules & constraints¶
- Versioned preference after confirming comparable evidence; feed class is only a default.
- Record origin, method, matrix and upstream identity matter, not merely its transport channel.
- Duplicate proof requires original sample/session/result identity or documented common upstream lineage.
- Independent lab and sensor results coexist; preference for proved duplicates uses ObservationSelection.
- Ties: the most complete evidence wins, then the one received first. Never "most recent": re-exports reset timestamps.