3. Time-Domain Correlation Metrics: Computing CORA Proximity Scores

Why CORA Uses a Two-Stage Proximity Score

CORA (COnsistent Representation of Assessment) does not reduce a time-history comparison to a single number in one step. It first computes a sub-score per channel — one for phase, one for magnitude, one for shape — and then combines them into an overall proximity score. The reason is diagnostic: two curves can match in amplitude but be shifted in time, or match in timing but differ in peak height. A single scalar hides which of these is happening; the sub-scores expose it.

For this case we work with a single channel pair: a CAE acceleration signal a_cae(t) and a test acceleration signal a_test(t), both already aligned to a common time base and sampling rate (the preprocessing from the previous step). The task is to compute the three sub-scores, combine them, and record the overall rating.

The CORA Sub-Score Definitions

CORA evaluates each sub-score on a normalized scale from 0 to 1, where 1 means perfect agreement. The three components are:

  • Phase score — measures how well the timing of features (peaks, zero crossings, envelope transitions) coincides. It is driven by the time lag between corresponding features, normalized by a tolerance window.
  • Magnitude score — measures agreement in amplitude, typically via the ratio of peak values or the relative error of the envelope, penalizing over- and under-prediction symmetrically.
  • Shape score — measures how closely the overall waveform profile matches, using a corridor around the reference curve and the fraction of the CAE signal that stays inside it.

The overall proximity is a weighted combination. A common CORA weighting is equal thirds, but the weights are configurable and should be documented alongside the result, because a phase-heavy weighting will rate a time-shifted but otherwise correct signal more harshly than a magnitude-heavy one.

CORA's sub-scores are only meaningful after the time and amplitude axes are aligned. If the signals are still offset, the phase score collapses and drags the overall rating down even when the underlying physics agrees. Always confirm alignment before interpreting a low score.

Computing the Sub-Scores on a Worked Example

Consider a short segment with three dominant peaks. The CAE peaks occur at t = 0.120 s, 0.245 s, 0.370 s; the test peaks occur at t = 0.128 s, 0.251 s, 0.379 s. The peak amplitudes are CAE [4.8, 5.2, 4.6] and test [4.5, 5.0, 4.4] (units of g). The tolerance window for phase is Δt_tol = 0.020 s.

Phase score. The lags are 0.008, 0.006, 0.009 s. Normalizing each by the tolerance and averaging the penalty:

lag_i   = |t_cae_i - t_test_i|          # 0.008, 0.006, 0.009
penalty = mean(lag_i / Δt_tol)          # (0.40 + 0.30 + 0.45)/3 = 0.383
phase_score = 1 - penalty               # 0.617

Magnitude score. Using the symmetric relative error of peak amplitude:

rel_err_i = |A_cae_i - A_test_i| / max(A_cae_i, A_test_i)
          # 0.0625, 0.0385, 0.0435
mag_score = 1 - mean(rel_err_i)         # 1 - 0.0482 = 0.952

Shape score. With a corridor of ±10% of the reference envelope, suppose 87% of the CAE samples fall inside the corridor. The shape score is then 0.87.

Overall proximity. With equal weights:

overall = (phase_score + mag_score + shape_score) / 3
        = (0.617 + 0.952 + 0.870) / 3
        = 0.813

The overall score of 0.813 is dominated by the phase deficit: magnitude and shape are strong, but the consistent ~7–9 ms lag pulls the phase score down. That is exactly the diagnostic value of the sub-scores — the number tells you where to look, not just how good the match is.

CORA Proximity Score: Sub-Score Computation and Combination CAE signal a_cae(t) aligned, resampled Test signal a_test(t) aligned, resampled Phase score 1 − mean(lag / Δt_tol) = 0.617 Magnitude score 1 − mean(rel. peak error) = 0.952 Shape score fraction inside ±10% corridor = 0.870 Weighted combine w_p·phase + w_m·mag + w_s·shape equal thirds here Overall 0.813 rating: good Diagnostic reading Phase 0.617 is the weak component: consistent 6–9 ms lag across all three peaks. Magnitude 0.952 and shape 0.870 are strong — amplitude and profile agree well. Action: investigate the time-base offset before tuning amplitude or damping.

Interpreting the Sub-Scores

The overall number alone is a rating; the sub-scores are a diagnosis. Read them in this order:

PatternLikely causeNext check
Low phase, high magnitude & shapeTime-base offset or lagCross-correlation lag; re-align time base
Low magnitude, high phase & shapeAmplitude scaling or damping mismatchCheck excitation level, damping ratio, sensor gain
Low shape, high phase & magnitudeMissing high-frequency content or noiseFilter cutoff, sampling rate, mode participation
All three lowWrong mode, wrong channel, or misalignmentVerify channel mapping and units first

In the worked example, the pattern is the first row: phase is the outlier. The correct engineering response is not to adjust the model's stiffness or damping — those would change magnitude and shape, which already agree — but to resolve the timing offset. This is the practical payoff of computing sub-scores rather than a single correlation coefficient.

Documenting the Overall Rating

A CORA result is only useful if it is recorded with enough context to be reproduced and audited. The minimum documentation set for this case is:

  • Channel and units — e.g., accelerometer X, g.
  • Time window — the segment over which the score was computed.
  • Sub-scores — phase, magnitude, shape, each to three decimals.
  • Weights — the combination weights used (equal thirds here).
  • Tolerances — Δt_tol, amplitude error basis, corridor width.
  • Overall score and rating band — e.g., 0.813 → "good" under the project's banding.

Rating bands are project-specific; a common convention treats ≥0.9 as excellent, 0.7–0.9 as good, 0.5–0.7 as marginal, and <0.5 as poor. The band must be stated explicitly, because a 0.813 means nothing without the scale it is judged against.

Do not report the overall score without the sub-scores and the weights. A score of 0.813 computed with phase-heavy weights and one computed with magnitude-heavy weights describe different physical situations even when the number is identical. The weights are part of the result, not a footnote.

Reproducible Check

To confirm the computation on your own data, verify three things in sequence: (1) the phase lags are computed against the same feature set on both curves — mismatched peak detection will corrupt the phase score; (2) the magnitude error uses a symmetric basis so over- and under-prediction are penalized equally; (3) the shape corridor is centered on the reference (test) curve, not the CAE curve, so the score measures how well the simulation tracks the measurement. If the overall score disagrees with a visual overlay, the sub-scores will tell you which of these three checks failed.