ECG Record schema 1.0 — field reference

Written by ecg-records 0.1; read by this release (emitted: 1.1.0). Readers accept schema major 1. JSON Schema: ecgfeat/schemas/ecg-record/1.0/schema.json ($id urn:ecg-record:1.0).

Validation tiers come only from the shipped registry (validation-evidence.json); a field can claim more than unvalidated only by citing an evidence manifest (see tools/check_validation_registry.py).

Published fields

Pointer Profiles Validation (ceiling) Evidence Validated for Engine source Known limitations
/delineation/fiducials/p_onset summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/p/onset P-wave delineation is the weakest endpoint in the repository's LUDB/QTDB benchmarks; P waves are frequently missed at short RR (<600 ms) or when the P wave overlaps the preceding T wave.
/delineation/fiducials/p_offset summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/p/offset P-wave delineation is the weakest endpoint in the repository's LUDB/QTDB benchmarks; P waves are frequently missed at short RR (<600 ms) or when the P wave overlaps the preceding T wave.
/delineation/fiducials/qrs_onset summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/qrs/onset —
/delineation/fiducials/r_peak summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/r_peak_index —
/delineation/fiducials/qrs_offset summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/qrs/offset —
/delineation/fiducials/j_point summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/j_index —
/delineation/fiducials/t_offset summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/t/offset —
/measurements/intervals/p_duration_ms summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/p_dur_ms P-wave delineation is the weakest endpoint in the repository's LUDB/QTDB benchmarks; P waves are frequently missed at short RR (<600 ms) or when the P wave overlaps the preceding T wave.
/measurements/intervals/pr_interval_ms summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/pr_ms P-wave delineation is the weakest endpoint in the repository's LUDB/QTDB benchmarks; P waves are frequently missed at short RR (<600 ms) or when the P wave overlaps the preceding T wave.
/measurements/intervals/qrs_duration_ms summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/qrs_ms Per-beat per-lead QRS width; the record-level consensus QRS can differ from per-lead widths near 100-120 ms.
/measurements/intervals/qt_interval_ms summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/qt_ms Raw measured interval; it is not formal QT reporting and is not rate corrected.
/measurements/intervals/tpeak_tend_ms summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/tpe_ms —
/measurements/intervals/jt_interval_ms all, debug unvalidated (benchmark_validated) — — /beat_features/*/jt_ms —
/measurements/amplitudes/p_amplitude_uv summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/p_amp_mv LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes. P-wave delineation is the weakest endpoint in the repository's LUDB/QTDB benchmarks; P waves are frequently missed at short RR (<600 ms) or when the P wave overlaps the preceding T wave.
/measurements/amplitudes/r_amplitude_uv summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/r_amp_mv LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes.
/measurements/amplitudes/s_amplitude_uv summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/s_amp_mv LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes.
/measurements/amplitudes/st_80ms_uv summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/st_80ms_mv LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes. Legacy native ST level at J+80 ms on the analysis signal; the opt-in hybrid ST sources do not replace this published value.
/measurements/amplitudes/t_amplitude_uv summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/t_amp_mv LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes.
/measurements/amplitudes/u_amplitude_uv all, debug unvalidated (benchmark_validated) — — /beat_features/*/u_amp_signed_mv LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes.
/measurements/areas/qrs_signed_area_uv_ms summary, all, debug unvalidated (benchmark_validated) — — /beat_features/*/qrs_signed_area Trapezoid integral of the baseline-subtracted analysis signal over [QRS onset, QRS offset] inclusive; legacy unit mV x internal sample converted by 1e6 / internal_fs.
/measurements/global/heart_rate_bpm summary, all, debug unvalidated (benchmark_validated) — — /global_features/heart_rate_bpm —
/measurements/global/frontal_qrs_axis_deg summary, all, debug unvalidated (benchmark_validated) — — /global_features/qrs_axis_deg not_applicable(input_mode_limited) for limited input.
/measurements/global/qtc_bazett_ms all, debug unvalidated (benchmark_validated) — — /global_features/qtc_bazett_ms Formal QTc; not_applicable(input_mode_limited) for limited input.
/measurements/global/qrs_wide_ms all, debug unvalidated (benchmark_validated) — — /global_features/qrs_wide_ms —

Debug-only and capped quantities

Quantity Tier Ceiling Reason
/debug/st_morphology internal_debug known_problem The four-class ST morphology was never validated and is anti-correlated with ischemia; it must not be used as ischemia evidence.
/debug/st_pattern_class internal_debug unvalidated No stable definition or validation.
/debug/st_t_confusion internal_debug unvalidated No stable definition or validation.
st_hybrid_* internal_debug unvalidated Experimental opt-in ST bypass (22 legacy keys); may appear only in debug output.
twelve_sl_* internal_debug unvalidated Vendor-style compatibility block (16 legacy keys); not part of the core schema.

Top-level members

Member Required
schema_version yes
profile yes
record_id yes
intended_use no
acquisition yes
axes yes
quality yes
provenance yes
delineation yes
measurements yes
artifacts yes
metadata no
debug no
extensions no

Absence states

Plain null (no stronger claim), unmeasurable(reason) and not_applicable(reason). Dense fields encode reasons as a whole-field {kind, reason}, a per-field default state, and sparse <beat_id>|<lead> maps that override it.