Skip to content

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:

Terminal window
uv run python examples/standardized_ingestion/reference_cases.py

The 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:

Terminal window
voiage ingest validate tests/fixtures/standardized_ingestion/canonical-decision.croissant.json
voiage ingest inspect tests/fixtures/standardized_ingestion/canonical-decision.datapackage.json

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.0

The 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.