1. Test-CAE Correlation Workflow Setup and
Why the ingestion stage decides the correlation outcome
Every CORA scorecard is only as trustworthy as the data fed into it. Before a single metric is computed, the test and CAE signals must share a common time base, a verified channel map, consistent units, and a known sampling relationship. If any of these is wrong, the correlation engine will still produce a number — it will simply be a number that describes a data-handling mistake rather than a physical agreement or disagreement. This case establishes a reproducible ingestion workflow that makes those four conditions explicit and checkable, so that later scoring reflects engineering reality.
The workflow has a fixed order of operations: acquire → normalize → map → verify → freeze. Each stage produces an artifact that the next stage consumes, and the final frozen dataset is the only input permitted to the CORA scorecard. The diagram below shows the data path and the verification gates that sit between stages.
Acquire: what the raw inputs must carry
Test data typically arrives as a universal file (.unv) or a delimited text export, with one column per channel and a header block describing the measurement. CAE data usually arrives as a nodal or element time-history export (.csv or a solver-specific response file). The ingestion step must capture, for every channel, at least: a stable channel name, a physical quantity (acceleration, force, displacement, strain), a unit string, a sampling interval, and a start time. If the source file does not carry these, they must be supplied in a sidecar manifest — never inferred silently.
A minimal manifest entry looks like this:
{
"channel": "SEAT_TRACK_ACC_X",
"source": "test",
"quantity": "acceleration",
"unit": "g",
"dt_s": 0.0005,
"t0_s": 0.0,
"samples": 4096,
"file": "run07_seat_track.csv",
"column": 3
}
The CAE counterpart uses the same schema with "source": "cae" and a node or element reference in place of the column index. Keeping both sides in one manifest format is what makes the mapping stage mechanical rather than interpretive.
Normalize: units before anything else
Unit conversion is applied at ingestion, not at scoring. Convert every channel to a declared SI base: acceleration to m/s², force to N, displacement to mm, strain to microstrain. Record both the original unit and the conversion factor in the manifest so the transformation is auditable. A common failure is a test channel in g compared against a CAE channel in m/s²; the resulting CORA corridor will be off by a factor of 9.81 and the score will look like a modeling error when it is a unit error. Gate G1 blocks the pipeline if any channel lacks a declared unit or if a conversion factor is missing.
Map: one test channel to one CAE channel
Channel mapping is a table, not a convention. Each row binds a test channel to a CAE channel and records the direction convention (for example, +X test equals −X CAE if the coordinate systems are mirrored) and the sign. The mapping table is the single source of truth for which pairs will be scored. Two rules keep it honest:
- Every scored test channel must have exactly one CAE partner; unmapped channels are excluded explicitly, not by omission.
- Direction and sign are recorded per pair, because a mirrored axis produces a perfectly anti-correlated signal that a naive correlation would flag as a failure.
Gate G2 verifies that the mapping is one-to-one and complete for the declared channel set before any signal is touched.
Verify: sampling and time base
Test and CAE rarely share a sampling rate. The verification stage computes the ratio of the two sampling intervals and the overlap window in absolute time. If the ratio is not an integer, resampling is required — but that decision belongs to the preprocessing case, not here. At ingestion the only requirement is that the relationship is known and recorded: dt_test, dt_cae, the ratio, and the common overlap [t_start, t_end]. Gate G3 fails if the overlap window is empty, if either sampling interval is zero or missing, or if the channel counts disagree after mapping.
Freeze: the artifact the scorecard consumes
The output of a successful ingestion run is a frozen dataset plus a manifest hash. The frozen dataset contains the normalized, mapped, time-base-annotated signals; the hash lets any later scorecard prove which data version it scored. A run is considered reproducible when re-ingesting the same source files with the same manifest produces an identical hash. The verification summary below is the acceptance record for this stage.
| Check | Condition for pass | Typical failure symptom |
|---|---|---|
| G1 unit declaration | Every channel has quantity + unit + factor | Score off by 9.81× or 1000× |
| G2 channel map | 1:1 mapping for all scored channels | Missing channel silently dropped |
| G3 sampling/time base | dt known, overlap window non-empty | Signals compared over mismatched windows |
| Hash stability | Re-run yields identical hash | Non-deterministic column ordering |
With the frozen dataset and its manifest in place, the correlation workflow has a single, auditable input. The next stage — filtering, resampling, and alignment — operates on this frozen artifact, so any change in preprocessing can be traced back to a specific data version rather than to an undocumented edit.