Skip to main content

Data dictionary

Generated

Generated from schema/tma.yaml at build time by gen-markdown-datadict. Do not edit; change the schema.

Units​

ClassSlotUnit (UCUM)
CurvePointt_since_zig_ss
MetricsRecordposition_window_m_medianm
MetricsRecordposition_window_m_p90m
NaiveMeansspeed_mpsm/s
NormalisationConstantsbearing_rate_scale_rad_srad/s
Observationbearing_radrad
Observationtimestamp_ss
ParameterRangeszig2_delay_ss
PlatformStatecourse_radrad
PlatformStatespeed_mpsm/s
PlatformStatetimestamp_ss
PlatformStatex_mm
PlatformStatey_mm
PredictionRowcourse_radrad
PredictionRowrange_mm
PredictionRowspeed_mpsm/s
PredictionRowtimestamp_ss
PredictionRowx_mm
PredictionRowy_mm
ScenarioMetadatamean_range_mm
ScenarioMetadatamin_range_mm
ScenarioMetadatazig_time_ss
ScenarioParametersdt_ss
ScenarioParametersnoise_sigma_radrad
ScenarioParametersownship_course0_radrad
ScenarioParametersownship_speed_mpsm/s
ScenarioParametersownship_turn_rate_rad_srad/s
ScenarioParameterstarget_bearing0_radrad
ScenarioParameterstarget_course_radrad
ScenarioParameterstarget_range0_mm
ScenarioParameterstarget_speed_mpsm/s
ScenarioParameterswindow_ss
ScenarioParameterszig2_angle_radrad
ScenarioParameterszig2_delay_ss
ScenarioParameterszig_angle_radrad

metamodel version: 1.12.0

version: 0.9.1

Single source of truth for every data type in the TMA via ML proof of concept (constitution principle I). Frame: local flat-earth Cartesian, x east, y north, metres, origin at ownship's window-start position. Bearings and courses are true, clockwise from north, radians in [0, 2π). Speeds in m/s. Times in seconds since window start. All stored floats are float32-rounded.

ERD Diagrams​

Component 1 (Continuation, DatasetHeader, DatasetRef...)​

Component 2 (GateCheck, GateVerdict)​

Component 3 (NaiveMeans, NaiveModel)​

Component 4 (Observation, PlatformState, Scenario...)​

Component 5 (Prediction, PredictionRow)​

Standalone Classes​

These classes are completely isolated with no relationships and are not used as base classes:

ClassDescription
ChangeDecisionThe single change of the iteration's change round, fixed from validation evidence and committed before phase B trains (spec 003 R5).
CurvePointOne point of an error-vs-time-since-zig curve (curves.csv row).
FeatureLayoutDocuments the model tensors (not stored as records). inputs [N, 240, 10]: bearing_sin, bearing_cos, own_x_km, own_y_km, own_course_sin, own_course_cos, own_speed_scaled, time_scaled, valid, window_mask; the derived feature set appends bearing_rate_scaled, rate_valid, intercept_scaled [N, 240, 13]. targets [N, 240, 6]: log_range_km, course_sin, course_cos, speed_scaled, x_km, y_km. loss_mask [N, 240]: window_mask and t ≥ zig_time. Features file format 2 also embeds the source DatasetHeader and the source dataset SHA-256.
MetricsRecordMetric values for one estimator on one slice at one evaluation point.
PairedComparisonA model and a reference estimator compared on rows both answered (converged and finite), with each estimator's coverage reported separately (spec 003 R9).
PredictionHeaderFirst record of every prediction file.

Classes​

ChangeDecision​

The single change of the iteration's change round, fixed from validation evidence and committed before phase B trains (spec 003 R5).

Attributes​

NameCardinality:TypeDescription
carried_set_rule1..1string
change1..1stringe.g. feature_set: derived
decided_at1..1string
git_commit1..1string
phase_a_experiment1..1string
plan0..1stringThe plan this decision pre-registers (configs/<…>/plan.json). Required from iteration 3 (spec 007): tma-g2 scores a test split only with the decision that names its plan.
rationale1..1stringValidation evidence cited.
stalled1..1booleanAny gated criterion failed or was inconclusive on validation.
test_seed0..1stringDataset seed of the test split the decision commits to (the plan's fresh_test seed, or its dataset seed); tma-g2 checks it against the plan.

Continuation​

The committed model a seeded continuation started from (scripts/train-continue.mjs; spec 003 decision 14, spec 004 decision 15). Its epoch records up to best_epoch are kept in the continued run's manifest, with their val_loss as recorded under the earlier config.

Attributes​

NameCardinality:TypeDescription
best_epoch1..1integer
git_commit0..1stringThe source model's training-code commit, when it recorded one.
rescored_val_loss0..1floatThe source's best weights re-scored under the continued run's loss, written by tma-train when it resumed (spec 004 FR-002). With best_epoch and best_val_loss it makes the kept weights auditable: a run whose best_epoch is the source's must have best_val_loss equal to this value and weights_digest equal to the source's.
val_loss1..1floatThe source's best-epoch validation loss under the source's config.
weights_digest1..1stringSHA-256 of the weights the continuation resumed from (the source's best epoch).

Referenced by:​

CurvePoint​

One point of an error-vs-time-since-zig curve (curves.csv row).

Attributes​

NameCardinality:TypeDescription
course_deg_median0..1float
estimator1..1string
gross_error_rate1..1float
n1..1integer
non_converged_rate0..1float
range_rel_median0..1floatAbsent when not finite (more than half the rows non-converged), as in MetricsRecord.
range_rel_p900..1float
speed_kt_median0..1float
t_since_zig_s1..1float

DatasetHeader​

First record of every dataset file.

Attributes​

NameCardinality:TypeDescription
created_by1..1stringCommand line that produced the file.
dataset_seed1..1stringDecimal uint64 string.
generator_git_commit0..1stringCommit of the checkout that ran tma-generate (absent before schema 0.8.0).
generator_git_dirty0..1booleanTrue when that checkout had uncommitted changes (only allowed with --allow-dirty; absent before schema 0.8.0).
generator_version1..1string
index_end1..1integerLast scenario index (exclusive).
index_start1..1integerFirst scenario index (inclusive).
parameter_ranges1..1ParameterRanges
record1..1RecordKind
redraw_count1..1integerGeometries rejected for violating min_range_m.
scenario_count1..1integer
schema_version1..1string
split1..1Split

Referenced by:​

DatasetRef​

Attributes​

NameCardinality:TypeDescription
digest0..1stringSHA-256 of the dataset file (absent in manifests written before schema 0.4.0).
header1..1DatasetHeader
path1..1string

Referenced by:​

EpochRecord​

Attributes​

NameCardinality:TypeDescription
epoch1..1integer
seconds1..1floatCumulative wall time.
train_loss1..1float
val_loss1..1float

Referenced by:​

EstimatorRef​

Attributes​

NameCardinality:TypeDescription
name1..1string
settings_json1..1stringEstimator settings as JSON.

Referenced by:​

ExperimentManifest​

Everything needed to reproduce an experiment run.

Attributes​

NameCardinality:TypeDescription
id1..1string
command_lines1..*string
created1..1stringISO 8601 timestamp.
datasets1..*DatasetRef
estimators1..*EstimatorRef
generator_version1..1string
git_commit1..1string
git_dirty0..1booleanTrue when the working tree had uncommitted changes (absent before schema 0.4.0).
node_version0..1stringNode.js version that ran the experiment (byte identity is promised per pinned Node).
normalisation0..1NormalisationConstants
schema_version1..1string

FeatureLayout​

Documents the model tensors (not stored as records). inputs [N, 240, 10]: bearing_sin, bearing_cos, own_x_km, own_y_km, own_course_sin, own_course_cos, own_speed_scaled, time_scaled, valid, window_mask; the derived feature set appends bearing_rate_scaled, rate_valid, intercept_scaled [N, 240, 13]. targets [N, 240, 6]: log_range_km, course_sin, course_cos, speed_scaled, x_km, y_km. loss_mask [N, 240]: window_mask and t ≥ zig_time. Features file format 2 also embeds the source DatasetHeader and the source dataset SHA-256.

Attributes​

NameCardinality:TypeDescription
feature_set0..1FeatureSetAbsent means raw.
input_channels1..*string
rows1..1integer
target_channels1..*string

FloatRange​

Closed interval [min, max].

Attributes​

NameCardinality:TypeDescription
max1..1float
min1..1float

Referenced by:​

GateCheck​

Attributes​

NameCardinality:TypeDescription
name1..1string
ci_high0..1floatUpper bound of the bootstrap interval.
ci_level0..1floatInterval coverage, e.g. 0.95.
ci_low0..1floatLower bound of the bootstrap interval.
detail1..1string
result1..1GateResult
threshold0..1floatLimit the statistic is tested against.
value0..1floatStatistic tested (e.g. median range error).

Referenced by:​

GateVerdict​

Machine verdict for a gate; the team review records the final decision.

Attributes​

NameCardinality:TypeDescription
checks1..*GateCheck
decided_by1..1string
gate1..1GateId
result1..1GateResult

MetricsRecord​

Metric values for one estimator on one slice at one evaluation point.

Attributes​

NameCardinality:TypeDescription
course_deg_median0..1float
course_deg_p900..1float
estimator1..1string
excluded1..1integer
gross_error_rate0..1float
n1..1integer
non_converged_rate0..1floatFraction of rows with no estimate (scored +∞; explains absent medians/P90).
point1..1string"final" or "zig+s".
position_m_mean0..1floatMean position error over converged rows (non-converged rows count in gross_error_rate).
position_window_m_median0..1floatMedian over scenarios of each scenario's mean position error over its predicted rows (time-late window-mean position, SRD §5; reported, not gated).
position_window_m_p900..1float90th percentile over scenarios of the same per-scenario mean.
range_rel_median0..1float
range_rel_p900..1float
slice1..1string"overall" or e.g. "range_band=5-10km".
speed_kt_median0..1float
speed_kt_p900..1float

ModelManifest​

Everything needed to reproduce and identify a trained model.

Attributes​

NameCardinality:TypeDescription
id1..1string
best_epoch1..1integer
best_val_loss0..1floatThe validation loss a later epoch must beat, under this manifest's config: the best epoch's val_loss, or, after a continuation changed the loss, the best weights re-scored under the new loss (spec 004 FR-002). Persisted so a chained job resumes against the same value. Absent before schema 0.8.2 (then the best epoch's recorded val_loss).
complete1..1booleanFalse while training is in progress (checkpoint).
config1..1TrainingConfig
continued_from0..1ContinuationPresent when the run was seeded from a committed model (absent before schema 0.8.2).
cpu_model1..1string
epochs1..*EpochRecord
g0_experiment0..1stringId of the G0 experiment whose verdict the training guard accepted.
generator_version1..1string
git_commit0..1stringCommit of the training code, read when training started (absent before schema 0.6.0).
git_dirty0..1booleanTrue when the working tree had uncommitted changes when training started (absent before schema 0.6.0).
node_version1..1string
normalisation1..1NormalisationConstants
parameter_count1..1integer
schema_version1..1string
source_dataset_header0..1DatasetHeaderHeader of the dataset the train features came from (lineage; absent before schema 0.8.0).
stop_reason0..1StopReason
tf_interop_threads0..1integerTF_NUM_INTEROP_THREADS in force when training ran (absent: unset).
tf_intraop_threads0..1integerTF_NUM_INTRAOP_THREADS in force when training ran (absent: unset, so the TensorFlow default of one per core).
tfjs_node_version1..1string
train_features_digest1..1string
val_features_digest1..1string
wall_s1..1float
weights_digest1..1stringSHA-256 of best-epoch weights.

NaiveMeans​

Training-set means used by the naive baseline for one prediction mode.

Attributes​

NameCardinality:TypeDescription
course_cos1..1float
course_sin1..1float
log_range_km1..1floatMean of ln(range in km).
n1..1integerNumber of labels averaged.
speed_mps1..1float

Referenced by:​

NaiveModel​

Naive baseline (SRD §5): predicts training-set means. final uses each scenario's last-sample label; per_timestep uses every post-zig label.

Attributes​

NameCardinality:TypeDescription
final1..1NaiveMeans
per_timestep1..1NaiveMeans
schema_version1..1string
train_digest1..1stringSHA-256 of the train file.

NormalisationConstants​

Fixed scaling constants computed from the train split's input channels only.

Attributes​

NameCardinality:TypeDescription
bearing_rate_scale_rad_s0..1float90th percentile of |trailing least-squares bearing rate| over train inputs; required for the derived feature set.
computed_from1..1stringAlways "inputs_only".
position_scale_km1..1float
speed_scale_mps1..1float
time_scale_s1..1float
train_header_digest1..1stringSHA-256 of the train header.

Referenced by:​

Observation​

One bearing from ownship to target. Stone Soup analogue Detection. When valid is false (dropout) bearing_rad is 0 and must be ignored.

Attributes​

NameCardinality:TypeDescription
bearing_rad1..1float
timestamp_s1..1float
valid1..1boolean

Referenced by:​

  • Scenario : scenario__observations 1..*

PairedComparison​

A model and a reference estimator compared on rows both answered (converged and finite), with each estimator's coverage reported separately (spec 003 R9).

Attributes​

NameCardinality:TypeDescription
course_deg_median0..1float
course_deg_median_ref0..1float
coverage_estimator1..1floatAnswered / scored.
coverage_reference1..1floatAnswered / scored.
estimator1..1string
gross_error_rate0..1float
gross_error_rate_ref0..1float
n_common1..1integer
point1..1string
range_rel_median0..1float
range_rel_median_ref0..1float
range_rel_p900..1float
range_rel_p90_ref0..1float
reference1..1string
slice1..1string
speed_kt_median0..1float
speed_kt_median_ref0..1float

ParameterRanges​

Ranges from which ScenarioParameters are drawn. Initial ownship course, target bearing and target course are always uniform on [0, 2π); zig sign is uniform ±.

Attributes​

NameCardinality:TypeDescription
dropout_fraction1..1FloatRange
dt_s1..1float
los_offset_rad0..1FloatRangeAngle off the line of sight, on the other bow, after an across_los turn; required when zig_rule is across_los.
min_range_m1..1floatGeometries closer than this at any sample are redrawn.
noise_sigma_rad_values1..*floatσ drawn uniformly from this set.
ownship_speed_mps1..1FloatRange
ownship_turn_rate_rad_s0..1FloatRangeTurn rate drawn uniformly per scenario; absent means an instantaneous zig.
range_distribution1..1RangeDistribution
target_range0_m1..1FloatRange
target_speed_mps1..1FloatRange
window_s1..1FloatRange
zig2_delay_s0..1FloatRangeDelay from the start of leg 2 to the second turn; absent means one zig. The second zig follows zig_rule (and uses the same turn rate as the first).
zig_angle_abs_rad1..1FloatRange
zig_fraction1..1FloatRange
zig_rule0..1ZigRuleHow each zig is chosen; absent means random (generators 0.1.0–0.2.0). Under across_los zig_angle_abs_rad is still drawn but not used.

Referenced by:​

PlatformState​

One platform state. Stone Soup analogue GroundTruthState.

Attributes​

NameCardinality:TypeDescription
course_rad1..1float
speed_mps1..1float
timestamp_s1..1float
x_m1..1float
y_m1..1float

Referenced by:​

  • Track : track__states 1..*

Prediction​

One estimator's output for one scenario.

Attributes​

NameCardinality:TypeDescription
estimator1..1string
mode1..1PredictionMode
record1..1RecordKind
rows1..*PredictionRow
scenario_index1..1integer

PredictionHeader​

First record of every prediction file.

Attributes​

NameCardinality:TypeDescription
dataset_digest1..1stringSHA-256 of the truth file.
estimator1..1string
mode1..1PredictionMode
record1..1RecordKind
schema_version1..1string

PredictionRow​

An estimator's target estimate at one timestep.

Attributes​

NameCardinality:TypeDescription
converged1..1boolean
course_rad1..1float
iterations0..1integer
range_m1..1float
speed_mps1..1float
timestamp_s1..1float
x_m1..1float
y_m1..1float

Referenced by:​

Scenario​

One ownship-vs-target run over a window.

Attributes​

NameCardinality:TypeDescription
metadata1..1ScenarioMetadata
observations1..*Observation
ownship1..1Track
record1..1RecordKind
target1..1Track

ScenarioMetadata​

Seed, parameter draws and derived slicing keys for one scenario.

Attributes​

NameCardinality:TypeDescription
index1..1integerScenario index within the dataset.
mean_range_m1..1float
min_range_m1..1float
parameters1..1ScenarioParameters
samples1..1integerNumber of timesteps (60–240).
seed1..1stringScenario seed as a decimal uint64 string.
turn2_start_index0..1integerFirst timestep after the second turn starts (absent with one zig or no turn rate).
turn_start_index0..1integerFirst timestep after the turn starts (absent for an instantaneous zig).
zig2_index0..1integerFirst timestep on leg 3, after the second turn completes (absent with one zig). Gate times still count from zig_index.
zig_index1..1integerFirst timestep on leg 2 (with a rate-limited turn, the first after it completes).
zig_time_s1..1float

Referenced by:​

ScenarioParameters​

The random draws that define one scenario.

Attributes​

NameCardinality:TypeDescription
dropout_fraction1..1floatProbability each bearing is missing.
dt_s1..1floatBearing interval.
noise_sigma_rad1..1floatBearing noise σ; 0 = noise-free.
ownship_course0_rad1..1floatOwnship course on leg 1.
ownship_speed_mps1..1float
ownship_turn_rate_rad_s0..1floatOwnship turn rate at the zig (rate-limited turn, spec 003 US6). Absent or 0: the course changes instantaneously, as in generator 0.1.0.
target_bearing0_rad1..1floatTrue bearing at window start.
target_course_rad1..1float
target_range0_m1..1floatRange at window start.
target_speed_mps1..1float
window_s1..1floatWindow length; multiple of dt_s.
zig2_angle_rad0..1floatSigned course change at the second zig; positive is clockwise.
zig2_delay_s0..1floatSecond zig (generator 0.3.0, spec 007): time from the first sample on leg 2 to the start of the second turn. Absent: one zig, two legs.
zig_angle_rad1..1floatSigned course change at the zig; positive is clockwise.
zig_fraction1..1floatZig time as a fraction of the window.

Referenced by:​

Track​

Time-ordered states of one platform. Stone Soup analogue GroundTruthPath.

Attributes​

NameCardinality:TypeDescription
id1..1TrackId
states1..*PlatformState

Referenced by:​

TrainingConfig​

Hyperparameters and seeds for one training run (SRD §4; constitution III).

Attributes​

NameCardinality:TypeDescription
id1..1stringEstimator name used in predictions.
batch_size1..1integer
bucket_batches0..1integerBatches per length-bucketing group (default 16).
feature_set0..1FeatureSetInput channel set; absent means raw. Must match the features files.
kernel_size0..1integerCausal CNN kernel size.
layers0..1integerStacked layers: causal CNN conv layers (no dilation; default 3), or recurrent layers for instantaneous and time_late (default 1; each returns sequences; spec 003 R20).
learning_rate1..1float
length_bucketing0..1booleanLength bucketing (research R15; default false). Each group of bucket_batches batches of the epoch's seeded permutation is sorted by valid length, cut into batches whose rows are trimmed to the longest window, and the batch order is shuffled with a seed derived from train_seed and the epoch. The model takes a variable time dimension. Not for mlp.
loss_weight_course1..1float
loss_weight_range1..1float
loss_weight_speed1..1float
max_epochs1..1integer
max_wall_s1..1floatWall-clock cap in seconds.
model_kind1..1ModelKind
patience1..1integerEpochs without validation improvement before stopping.
shuffle_labels1..1booleanPermute targets across scenarios (leakage check).
tfjs_threads0..1integerTensorFlow intra-op and inter-op thread count, set by tma-train through TF_NUM_INTRAOP_THREADS and TF_NUM_INTEROP_THREADS before tfjs-node loads. Absent: the TensorFlow default (one per core) or whatever the environment sets.
train_limit0..1integerUse only the first N training scenarios (tests and smoke runs).
train_seed1..1stringDecimal uint64; derives initializer seeds and batch order.
units1..1integerLSTM units (per direction), conv filters or dense width.

Referenced by:​

Slots​

NameCardinality/RangeUsed By
changeDecision__carried_set_rule1..1
string
changeDecision__change
e.g. feature_set: derived
1..1
string
changeDecision__decided_at1..1
string
changeDecision__git_commit1..1
string
changeDecision__phase_a_experiment1..1
string
changeDecision__plan
The plan this decision pre-registers (configs/<…>/plan.json). Required from iteration 3 (spec 007): tma-g2 scores a test split only with the decision that names its plan.
0..1
string
changeDecision__rationale
Validation evidence cited.
1..1
string
changeDecision__stalled
Any gated criterion failed or was inconclusive on validation.
1..1
boolean
changeDecision__test_seed
Dataset seed of the test split the decision commits to (the plan's fresh_test seed, or its dataset seed); tma-g2 checks it against the plan.
0..1
string
continuation__best_epoch1..1
integer
continuation__git_commit
The source model's training-code commit, when it recorded one.
0..1
string
continuation__rescored_val_loss
The source's best weights re-scored under the continued run's loss, written by tma-train when it resumed (spec 004 FR-002). With best_epoch and best_val_loss it makes the kept weights auditable: a run whose best_epoch is the source's must have best_val_loss equal to this value and weights_digest equal to the source's.
0..1
float
continuation__val_loss
The source's best-epoch validation loss under the source's config.
1..1
float
continuation__weights_digest
SHA-256 of the weights the continuation resumed from (the source's best epoch).
1..1
string
curvePoint__course_deg_median0..1
float
curvePoint__estimator1..1
string
curvePoint__gross_error_rate1..1
float
curvePoint__n1..1
integer
curvePoint__non_converged_rate0..1
float
curvePoint__range_rel_median
Absent when not finite (more than half the rows non-converged), as in MetricsRecord.
0..1
float
curvePoint__range_rel_p900..1
float
curvePoint__speed_kt_median0..1
float
curvePoint__t_since_zig_s1..1
float
datasetHeader__created_by
Command line that produced the file.
1..1
string
datasetHeader__dataset_seed
Decimal uint64 string.
1..1
string
datasetHeader__generator_git_commit
Commit of the checkout that ran tma-generate (absent before schema 0.8.0).
0..1
string
datasetHeader__generator_git_dirty
True when that checkout had uncommitted changes (only allowed with --allow-dirty; absent before schema 0.8.0).
0..1
boolean
datasetHeader__generator_version1..1
string
datasetHeader__index_end
Last scenario index (exclusive).
1..1
integer
datasetHeader__index_start
First scenario index (inclusive).
1..1
integer
datasetHeader__parameter_ranges1..1
ParameterRanges
datasetHeader__record1..1
RecordKind
datasetHeader__redraw_count
Geometries rejected for violating min_range_m.
1..1
integer
datasetHeader__scenario_count1..1
integer
datasetHeader__schema_version1..1
string
datasetHeader__split1..1
Split
datasetRef__digest
SHA-256 of the dataset file (absent in manifests written before schema 0.4.0).
0..1
string
datasetRef__header1..1
DatasetHeader
datasetRef__path1..1
string
epochRecord__epoch1..1
integer
epochRecord__seconds
Cumulative wall time.
1..1
float
epochRecord__train_loss1..1
float
epochRecord__val_loss1..1
float
estimatorRef__name1..1
string
estimatorRef__settings_json
Estimator settings as JSON.
1..1
string
experimentManifest__command_lines1..*
string
experimentManifest__created
ISO 8601 timestamp.
1..1
string
experimentManifest__datasets1..*
DatasetRef
experimentManifest__estimators1..*
EstimatorRef
experimentManifest__generator_version1..1
string
experimentManifest__git_commit1..1
string
experimentManifest__git_dirty
True when the working tree had uncommitted changes (absent before schema 0.4.0).
0..1
boolean
experimentManifest__id1..1
string
experimentManifest__node_version
Node.js version that ran the experiment (byte identity is promised per pinned Node).
0..1
string
experimentManifest__normalisation0..1
NormalisationConstants
experimentManifest__schema_version1..1
string
featureLayout__feature_set
Absent means raw.
0..1
FeatureSet
featureLayout__input_channels1..*
string
featureLayout__rows1..1
integer
featureLayout__target_channels1..*
string
floatRange__max1..1
float
floatRange__min1..1
float
gateCheck__ci_high
Upper bound of the bootstrap interval.
0..1
float
gateCheck__ci_level
Interval coverage, e.g. 0.95.
0..1
float
gateCheck__ci_low
Lower bound of the bootstrap interval.
0..1
float
gateCheck__detail1..1
string
gateCheck__name1..1
string
gateCheck__result1..1
GateResult
gateCheck__threshold
Limit the statistic is tested against.
0..1
float
gateCheck__value
Statistic tested (e.g. median range error).
0..1
float
gateVerdict__checks1..*
GateCheck
gateVerdict__decided_by1..1
string
gateVerdict__gate1..1
GateId
gateVerdict__result1..1
GateResult
metricsRecord__course_deg_median0..1
float
metricsRecord__course_deg_p900..1
float
metricsRecord__estimator1..1
string
metricsRecord__excluded1..1
integer
metricsRecord__gross_error_rate0..1
float
metricsRecord__n1..1
integer
metricsRecord__non_converged_rate
Fraction of rows with no estimate (scored +∞; explains absent medians/P90).
0..1
float
metricsRecord__point
"final" or "zig+s".
1..1
string
metricsRecord__position_m_mean
Mean position error over converged rows (non-converged rows count in gross_error_rate).
0..1
float
metricsRecord__position_window_m_median
Median over scenarios of each scenario's mean position error over its predicted rows (time-late window-mean position, SRD §5; reported, not gated).
0..1
float
metricsRecord__position_window_m_p90
90th percentile over scenarios of the same per-scenario mean.
0..1
float
metricsRecord__range_rel_median0..1
float
metricsRecord__range_rel_p900..1
float
metricsRecord__slice
"overall" or e.g. "range_band=5-10km".
1..1
string
metricsRecord__speed_kt_median0..1
float
metricsRecord__speed_kt_p900..1
float
modelManifest__best_epoch1..1
integer
modelManifest__best_val_loss
The validation loss a later epoch must beat, under this manifest's config: the best epoch's val_loss, or, after a continuation changed the loss, the best weights re-scored under the new loss (spec 004 FR-002). Persisted so a chained job resumes against the same value. Absent before schema 0.8.2 (then the best epoch's recorded val_loss).
0..1
float
modelManifest__complete
False while training is in progress (checkpoint).
1..1
boolean
modelManifest__config1..1
TrainingConfig
modelManifest__continued_from
Present when the run was seeded from a committed model (absent before schema 0.8.2).
0..1
Continuation
modelManifest__cpu_model1..1
string
modelManifest__epochs1..*
EpochRecord
modelManifest__g0_experiment
Id of the G0 experiment whose verdict the training guard accepted.
0..1
string
modelManifest__generator_version1..1
string
modelManifest__git_commit
Commit of the training code, read when training started (absent before schema 0.6.0).
0..1
string
modelManifest__git_dirty
True when the working tree had uncommitted changes when training started (absent before schema 0.6.0).
0..1
boolean
modelManifest__id1..1
string
modelManifest__node_version1..1
string
modelManifest__normalisation1..1
NormalisationConstants
modelManifest__parameter_count1..1
integer
modelManifest__schema_version1..1
string
modelManifest__source_dataset_header
Header of the dataset the train features came from (lineage; absent before schema 0.8.0).
0..1
DatasetHeader
modelManifest__stop_reason0..1
StopReason
modelManifest__tf_interop_threads
TF_NUM_INTEROP_THREADS in force when training ran (absent: unset).
0..1
integer
modelManifest__tf_intraop_threads
TF_NUM_INTRAOP_THREADS in force when training ran (absent: unset, so the TensorFlow default of one per core).
0..1
integer
modelManifest__tfjs_node_version1..1
string
modelManifest__train_features_digest1..1
string
modelManifest__val_features_digest1..1
string
modelManifest__wall_s1..1
float
modelManifest__weights_digest
SHA-256 of best-epoch weights.
1..1
string
naiveMeans__course_cos1..1
float
naiveMeans__course_sin1..1
float
naiveMeans__log_range_km
Mean of ln(range in km).
1..1
float
naiveMeans__n
Number of labels averaged.
1..1
integer
naiveMeans__speed_mps1..1
float
naiveModel__final1..1
NaiveMeans
naiveModel__per_timestep1..1
NaiveMeans
naiveModel__schema_version1..1
string
naiveModel__train_digest
SHA-256 of the train file.
1..1
string
normalisationConstants__bearing_rate_scale_rad_s
90th percentile of |trailing least-squares bearing rate| over train inputs; required for the derived feature set.
0..1
float
normalisationConstants__computed_from
Always "inputs_only".
1..1
string
normalisationConstants__position_scale_km1..1
float
normalisationConstants__speed_scale_mps1..1
float
normalisationConstants__time_scale_s1..1
float
normalisationConstants__train_header_digest
SHA-256 of the train header.
1..1
string
observation__bearing_rad1..1
float
observation__timestamp_s1..1
float
observation__valid1..1
boolean
pairedComparison__course_deg_median0..1
float
pairedComparison__course_deg_median_ref0..1
float
pairedComparison__coverage_estimator
Answered / scored.
1..1
float
pairedComparison__coverage_reference
Answered / scored.
1..1
float
pairedComparison__estimator1..1
string
pairedComparison__gross_error_rate0..1
float
pairedComparison__gross_error_rate_ref0..1
float
pairedComparison__n_common1..1
integer
pairedComparison__point1..1
string
pairedComparison__range_rel_median0..1
float
pairedComparison__range_rel_median_ref0..1
float
pairedComparison__range_rel_p900..1
float
pairedComparison__range_rel_p90_ref0..1
float
pairedComparison__reference1..1
string
pairedComparison__slice1..1
string
pairedComparison__speed_kt_median0..1
float
pairedComparison__speed_kt_median_ref0..1
float
parameterRanges__dropout_fraction1..1
FloatRange
parameterRanges__dt_s1..1
float
parameterRanges__los_offset_rad
Angle off the line of sight, on the other bow, after an across_los turn; required when zig_rule is across_los.
0..1
FloatRange
parameterRanges__min_range_m
Geometries closer than this at any sample are redrawn.
1..1
float
parameterRanges__noise_sigma_rad_values
σ drawn uniformly from this set.
1..*
float
parameterRanges__ownship_speed_mps1..1
FloatRange
parameterRanges__ownship_turn_rate_rad_s
Turn rate drawn uniformly per scenario; absent means an instantaneous zig.
0..1
FloatRange
parameterRanges__range_distribution1..1
RangeDistribution
parameterRanges__target_range0_m1..1
FloatRange
parameterRanges__target_speed_mps1..1
FloatRange
parameterRanges__window_s1..1
FloatRange
parameterRanges__zig2_delay_s
Delay from the start of leg 2 to the second turn; absent means one zig. The second zig follows zig_rule (and uses the same turn rate as the first).
0..1
FloatRange
parameterRanges__zig_angle_abs_rad1..1
FloatRange
parameterRanges__zig_fraction1..1
FloatRange
parameterRanges__zig_rule
How each zig is chosen; absent means random (generators 0.1.0–0.2.0). Under across_los zig_angle_abs_rad is still drawn but not used.
0..1
ZigRule
platformState__course_rad1..1
float
platformState__speed_mps1..1
float
platformState__timestamp_s1..1
float
platformState__x_m1..1
float
platformState__y_m1..1
float
predictionHeader__dataset_digest
SHA-256 of the truth file.
1..1
string
predictionHeader__estimator1..1
string
predictionHeader__mode1..1
PredictionMode
predictionHeader__record1..1
RecordKind
predictionHeader__schema_version1..1
string
predictionRow__converged1..1
boolean
predictionRow__course_rad1..1
float
predictionRow__iterations0..1
integer
predictionRow__range_m1..1
float
predictionRow__speed_mps1..1
float
predictionRow__timestamp_s1..1
float
predictionRow__x_m1..1
float
predictionRow__y_m1..1
float
prediction__estimator1..1
string
prediction__mode1..1
PredictionMode
prediction__record1..1
RecordKind
prediction__rows1..*
PredictionRow
prediction__scenario_index1..1
integer
scenarioMetadata__index
Scenario index within the dataset.
1..1
integer
scenarioMetadata__mean_range_m1..1
float
scenarioMetadata__min_range_m1..1
float
scenarioMetadata__parameters1..1
ScenarioParameters
scenarioMetadata__samples
Number of timesteps (60–240).
1..1
integer
scenarioMetadata__seed
Scenario seed as a decimal uint64 string.
1..1
string
scenarioMetadata__turn2_start_index
First timestep after the second turn starts (absent with one zig or no turn rate).
0..1
integer
scenarioMetadata__turn_start_index
First timestep after the turn starts (absent for an instantaneous zig).
0..1
integer
scenarioMetadata__zig2_index
First timestep on leg 3, after the second turn completes (absent with one zig). Gate times still count from zig_index.
0..1
integer
scenarioMetadata__zig_index
First timestep on leg 2 (with a rate-limited turn, the first after it completes).
1..1
integer
scenarioMetadata__zig_time_s1..1
float
scenarioParameters__dropout_fraction
Probability each bearing is missing.
1..1
float
scenarioParameters__dt_s
Bearing interval.
1..1
float
scenarioParameters__noise_sigma_rad
Bearing noise σ; 0 = noise-free.
1..1
float
scenarioParameters__ownship_course0_rad
Ownship course on leg 1.
1..1
float
scenarioParameters__ownship_speed_mps1..1
float
scenarioParameters__ownship_turn_rate_rad_s
Ownship turn rate at the zig (rate-limited turn, spec 003 US6). Absent or 0: the course changes instantaneously, as in generator 0.1.0.
0..1
float
scenarioParameters__target_bearing0_rad
True bearing at window start.
1..1
float
scenarioParameters__target_course_rad1..1
float
scenarioParameters__target_range0_m
Range at window start.
1..1
float
scenarioParameters__target_speed_mps1..1
float
scenarioParameters__window_s
Window length; multiple of dt_s.
1..1
float
scenarioParameters__zig2_angle_rad
Signed course change at the second zig; positive is clockwise.
0..1
float
scenarioParameters__zig2_delay_s
Second zig (generator 0.3.0, spec 007): time from the first sample on leg 2 to the start of the second turn. Absent: one zig, two legs.
0..1
float
scenarioParameters__zig_angle_rad
Signed course change at the zig; positive is clockwise.
1..1
float
scenarioParameters__zig_fraction
Zig time as a fraction of the window.
1..1
float
scenario__metadata1..1
ScenarioMetadata
scenario__observations1..*
Observation
scenario__ownship1..1
Track
scenario__record1..1
RecordKind
scenario__target1..1
Track
track__id1..1
TrackId
track__states1..*
PlatformState
trainingConfig__batch_size1..1
integer
trainingConfig__bucket_batches
Batches per length-bucketing group (default 16).
0..1
integer
trainingConfig__feature_set
Input channel set; absent means raw. Must match the features files.
0..1
FeatureSet
trainingConfig__id
Estimator name used in predictions.
1..1
string
trainingConfig__kernel_size
Causal CNN kernel size.
0..1
integer
trainingConfig__layers
Stacked layers: causal CNN conv layers (no dilation; default 3), or recurrent layers for instantaneous and time_late (default 1; each returns sequences; spec 003 R20).
0..1
integer
trainingConfig__learning_rate1..1
float
trainingConfig__length_bucketing
Length bucketing (research R15; default false). Each group of bucket_batches batches of the epoch's seeded permutation is sorted by valid length, cut into batches whose rows are trimmed to the longest window, and the batch order is shuffled with a seed derived from train_seed and the epoch. The model takes a variable time dimension. Not for mlp.
0..1
boolean
trainingConfig__loss_weight_course1..1
float
trainingConfig__loss_weight_range1..1
float
trainingConfig__loss_weight_speed1..1
float
trainingConfig__max_epochs1..1
integer
trainingConfig__max_wall_s
Wall-clock cap in seconds.
1..1
float
trainingConfig__model_kind1..1
ModelKind
trainingConfig__patience
Epochs without validation improvement before stopping.
1..1
integer
trainingConfig__shuffle_labels
Permute targets across scenarios (leakage check).
1..1
boolean
trainingConfig__tfjs_threads
TensorFlow intra-op and inter-op thread count, set by tma-train through TF_NUM_INTRAOP_THREADS and TF_NUM_INTEROP_THREADS before tfjs-node loads. Absent: the TensorFlow default (one per core) or whatever the environment sets.
0..1
integer
trainingConfig__train_limit
Use only the first N training scenarios (tests and smoke runs).
0..1
integer
trainingConfig__train_seed
Decimal uint64; derives initializer seeds and batch order.
1..1
string
trainingConfig__units
LSTM units (per direction), conv filters or dense width.
1..1
integer

Enums​

FeatureSet​

Model input channel sets (spec 003 R6).

TextMeaning:Description
derivedNoneraw plus bearing_rate_scaled, rate_valid and intercept_scaled (13 channels), computed causally from bearings and ownship states up to each row.
rawNoneIteration-1 layout, 10 input channels.

Used by​

GateId​

TextMeaning:Description
G0NonePipeline verified.
G1None
G2None
G3None

Used by​

GateResult​

TextMeaning:Description
failNone
inconclusiveNoneThe 95% bootstrap interval straddles the threshold (G1 report, T033).
passNone

Used by​

ModelKind​

Model families of SRD §4.

TextMeaning:Description
causal_cnnNoneCausal 1-D CNN control for the instantaneous variant.
instantaneousNoneCausal single-layer LSTM (operator's running solution).
mlpNoneMLP over the flattened window, control for the time-late variant.
time_lateNoneBidirectional LSTM over the whole window.

Used by​

PredictionMode​

TextMeaning:Description
finalNoneOne row at the last timestep of the window.
per_timestepNoneOne row per post-zig timestep using bearings up to that time.

Used by​

RangeDistribution​

TextMeaning:Description
log_uniformNone
uniformNone

Used by​

RecordKind​

Discriminator for records in NDJSON files.

TextMeaning:Description
headerNoneDataset or prediction file header (first line).
predictionNoneOne Prediction.
scenarioNoneOne Scenario.

Used by​

Split​

Dataset split. Train/validation/test are 80/10/10 by scenario index.

TextMeaning:Description
heldoutNoneHeld-out geometry with parameter ranges outside training.
testNone
trainNone
validationNone

Used by​

StopReason​

TextMeaning:Description
divergedNone
early_stoppingNone
max_epochsNone
wall_clockNone

Used by​

TrackId​

TextMeaning:Description
ownshipNone
targetNone

Used by​

ZigRule​

How each zig's direction and size are chosen (generator 0.3.0, spec 007).

TextMeaning:Description
across_losNoneTurn across the line of sight: the new course puts the target on the other bow at an angle off drawn from los_offset_rad, by the shorter turn. Uses the true bearing at the last sample before the turn.
randomNoneSize from zig_angle_abs_rad, side uniformly ±, regardless of the target.

Used by​