Standardized Ingestion Reference Cases
These three synthetic, rights-cleared reference cases use the same pinned decision samples and the same explicit net-benefit binding. They demonstrate format interoperability, not domain-specific modelling: no field names, strategies, units, or transformations are inferred.
| Community | Descriptor or input | Decision interpretation |
|---|---|---|
| Machine learning | Croissant 1.1 | Compare model-selection net benefits across posterior samples. |
| Engineering and operations | Frictionless Data Package | Compare design alternatives across simulated operating scenarios. |
| Business | Arrow DataFrame-interchange SDK | Compare investment strategies across decision scenarios. |
The fixture records two strategies, strategy_a and strategy_b, and binds
them explicitly as A and B:
VOIBinding( role="net_benefit", table_id="samples", field_ids=("strategy_a", "strategy_b"), strategy_names=("A", "B"),)Run the complete reproducible walkthrough from a source checkout:
uv run python examples/standardized_ingestion/reference_cases.pyThe output contains identical EVPI values for ml, engineering, and
business. The business case deliberately enters through
from_dataframe(..., allow_copy=False), using Arrow’s standard DataFrame
interchange protocol with an explicit zero-copy requirement. The runner fails
if any format reaches a different value, making the example an executable
cross-format regression check as well as a tutorial. Its machine-readable
output also records the identical normalized Arrow schemas, the matching
Croissant/Frictionless resource digests, and the content-addressed direct
DataFrame provenance digest.
To inspect the descriptor-backed forms before calculating, run:
voiage ingest validate tests/fixtures/standardized_ingestion/canonical-decision.croissant.jsonvoiage ingest inspect tests/fixtures/standardized_ingestion/canonical-decision.datapackage.jsonCost/outcome derivation case
Section titled “Cost/outcome derivation case”A second synthetic case exercises a different decision path: it records costs
and outcomes rather than precomputed net benefit. Explicit, aligned strategy
bindings derive net benefit at 20,000 currency units per outcome unit. The same
case is materialized through Croissant, Frictionless, and a direct Arrow table,
and has an EVPI of 20 / 3 in every surface.
from examples.standardized_ingestion.reference_cases import ( run_cost_outcome_reference_cases,)
assert run_cost_outcome_reference_cases()["ml"] == 20.0 / 3.0The pinned sources, digests, binding details, and willingness-to-pay value are
recorded in cost-outcome-decision.manifest.json beside the fixture files.
The input descriptors and their SHA-256 digests live in
tests/fixtures/standardized_ingestion/.
Use canonical-decision.manifest.json to verify exact source artifacts before
reproducing a result.