Provenance, uncertainty, and licensing¶
OpenSoil treats provenance as part of the value, not optional metadata.
Required trace¶
Where available, every normalized observation preserves:
- original provider and organization;
- provider record identifier;
- original property name, value, unit, depth, and method;
- retrieval and observation/model dates;
- spatial resolution or geographic accuracy;
- provider citation and source URL;
- license name and URL;
- transformations, warnings, and uncertainty.
The first SDA adapter uses a provider horizon key as record_id, preserves the map-unit/component/horizon keys in survey_context, and sets retrieval time to the time the upstream payload entered the OpenSoil cache.
What null means¶
null means OpenSoil did not obtain or verify the field for that response. It does not mean zero, no uncertainty, public domain, or no citation requirement.
Cache provenance¶
Cache metadata is always explicit. A hit reports the original storage time and current age. OpenSoil does not silently return expired data if a provider fails. Process restarts clear the current in-memory cache.
Scientific comparison checklist¶
Before comparing values, confirm:
- canonical property concepts match;
- original methods are compatible;
- units match or a recorded conversion is valid;
- depth intervals align or a defensible aggregation is documented;
- data kinds answer the same question;
- spatial and temporal support are appropriate;
- uncertainty and missing-data behavior are understood;
- provider licensing permits the intended use.
OpenSoil will eventually offer comparison assistance, but it will not declare compatibility solely because two records share a property ID.
Privacy boundary¶
The public provider API queries already-public source systems and does not use OpenSoil account data. Private farms, exact fields, uploaded reports, and member records remain on the main application boundary and are not exposed by api.opensoil.net.