Flow matching has emerged as a powerful alternative to diffusion models for generative modeling, but standard conditional flow matching is fundamentally misaligned with partially observed time series: starting from an uninformed Gaussian source forces the model to transport even already-observed entries from noise to the target, wasting capacity on trivially known regions. We propose MissPath-FM, a partial-observation-aware flow matching framework that redesigns the source prior and probability path for incomplete time series. MissPath-FM employs structured source priors (interpolation priors and Gaussian process posterior priors) to initialize the flow close to the observed signal, paired with a missingness-aware smooth path that allocates transport asymmetrically between observed and missing regions. We evaluate systematically across four datasets, four missingness mechanisms (MCAR, block, MNAR, irregular), two missing ratios, and three sequence lengths (T in {24, 48, 96}), totaling 48 settings against eight baselines. MissPath-FM wins 29 of 32 settings at T=48 and 45 of 48 overall (93.8%). Our ablations reveal a regime-dependent design hierarchy in which no single component suffices: under random missingness the source prior yields a large initial gain, but under structured block missingness it can fail entirely and the learned flow becomes indispensable; the missingness-aware path contributes a further 12%-26% across all regimes. Mechanistically, structured priors shorten observed-region transport by up to 15x, concentrating the velocity field on genuinely uncertain entries. Project page: https://zgp110.github.io/misspath-fm/
Figures & tables
Figure 1: Overview of MissPath-FM. (1) A structured source prior initializes z0 close to the observed signal. (2) A missingness-aware path ( sobs>smiss ) locks in observed entries early. (3) A context-conditioned Transformer predicts the velocity; at inference, z0 is integrated with 20 Euler steps and observed entries are restored.
Data and context
Source prior (choose one)
x∈RT×D
complete series
μint,Σ(m)
Option A: interpolation (default)
m∈{0,1}T×D
mask, 1 = observed
μ⋆,Σ⋆
Option B: GP posterior (optional)
δ
time since last observation
σobs,σmiss
prior noise scales
c=(xobs,m,δ)
conditioning context
Flow matching
Path schedule
z0∼p0(⋅∣c)
source endpoint ( t=0 )
sobs,smiss
transport speeds
Table 1: Notation, grouped by role. The two source priors are alternative choices for the same object p0(⋅∣c) , not sequential steps.
Transport-based
Deterministic / Generative
Dataset
Mechanism
Rate
FlowTS
CLWF
TSFlow
PSW-I
SAITS
BRITS
CSDI
GP-VAE
Ours
ETTm1
MCAR
30%
0.393
0.190
0.121
0.144
0.096
0.103
0.159
0.454
0.075
MCAR
50%
0.431
0.224
0.132
0.162
0.109
0.122
0.203
0.583
0.085
Block
30%
0.396
0.197
0.245
0.265
0.152
0.160
0.248
0.511
0.106
Block
50%
0.450
0.249
0.267
0.320
0.199
0.238
0.358
0.572
0.145
MNAR
30%
0.439
0.366
0.186
0.243
0.143
0.186
0.219
0.746
0.117
Table 2: Imputation results (MAE ↓ , T=48 ). Best in bold , second best underlined . MissPath-FM wins 29/32 settings. All methods share identical splits and masks. Baselines use official code where available; FlowTS, TSFlow, and CLWF include re-implemented components (Appendix C ).
Figure 3: Qualitative imputation on ETTm1. (a) MNAR 30%: MissPath-FM recovers masked extreme values where baselines deviate. (b) Block 30%: within the contiguous gap (shaded), TSFlow diverges and BRITS flattens, while MissPath-FM tracks the ground truth with calibrated uncertainty.
Prior-Only
Incremental Flow
Dataset
Setting
(A) Gaussian +Flow
(B) Interpolation Prior
(C) GP Prior
(D) +Flow Matching
(E) +Context Encoding
(F) +Missingness- Aware Path
Δflow
ETTm1
MCAR 30%
0.7387
0.1091
0.1214
0.0918
0.0856
0.0751
−31%
Block 30%
0.7248
0.2162
0.4150
0.1335
0.1253
0.1057
−51%
Synthetic
MCAR 30%
0.8165
0.1614
0.1089
0.1208
0.1182
0.0981
−10%
Block 30%
0.8056
0.8574
0.6326
0.5578
0.4938
0.3737
−41%
Electricity
MCAR 30%
0.4028
0.1897
0.2230
0.1238
0.1137
0.0910
−52%
Table 3: Incremental ablation (MAE ↓ , 4 d.p.). Configurations A–F add one component at a time. Best per row in bold . Δflow : gain of (F) over best Prior-Only.
Dataset
History
SAITS
BRITS
CSDI
GP-VAE
FlowTS
CLWF
TSFlow
Ours
ETTm1
Clean
0.489
0.692
0.763
0.694
0.702
0.483
0.355
0.266
30% MCAR
0.528
0.692
0.593
0.704
0.679
0.480
0.365
0.264
Synthetic
Clean
0.791
0.781
1.084
0.787
0.850
0.825
0.566
0.511
30% MCAR
0.806
0.778
1.071
0.794
0.850
0.837
0.573
0.572
Electricity
Clean
1.040
0.873
0.861
0.937
0.935
0.947
0.226
0.149
30% MCAR
0.871
0.821
1.056
0.907
0.918
0.953
0.237
0.153
Table 4: Forecasting results at h=24 (MAE ↓ ). Best in bold , second underlined .
Synthetic
ETTm1
Electricity
Method
Disc.
Pred.
Spec.
Disc.
Pred.
Spec.
Disc.
Pred.
Spec.
CSDI
0.500
0.925
1.540
0.474
0.745
1.313
0.500
0.631
1.294
GP-VAE
0.500
0.809
1.657
0.500
0.887
1.062
0.477
0.581
1.341
FlowTS
0.275
0.266
0.126
0.184
0.214
0.045
0.250
0.279
0.112
TSFlow
0.500
0.929
1.538
0.500
0.906
1.699
0.500
0.734
1.655
Gauss.+Std
0.300
0.240
0.155
0.198
0.286
0.256
0.182
0.201
0.113
Table 5: Generation quality (all metrics ↓ ). Best in bold , second underlined .
Figure 8
Figure 5: Velocity field magnitude ∥vθ∥ at t=0.5 on ETTm1 MCAR 30%. (a) Gaussian prior: velocity is spread across all entries. (b) Interpolation prior: observed entries are silenced and velocity concentrates on missing entries. (c) GP posterior prior: missing-entry velocity is further reduced, since the posterior mean starts closer to the target.
Table 8: Sequence length generalization on ETTm1 (MAE ↓ ). MissPath-FM wins all 16 settings.
CRPS ↓
ACE ↓
Setting
Ours
CSDI
TSFlow
GP-VAE
Ours
CSDI
TSFlow
GP-VAE
ETTm1 MCAR30
0.053
0.075
0.081
0.524
0.018
0.073
0.123
0.500
ETTm1 Block30
0.076
0.121
0.173
0.559
0.050
0.167
0.025
0.500
Synth MCAR30
0.069
0.079
0.089
0.798
0.046
0.064
0.249
0.500
Synth Block30
0.245
0.324
0.475
0.799
0.104
0.111
0.203
0.500
Electr MCAR30
0.065
0.106
0.110
0.349
0.052
0.091
0.288
0.500
Appendix
Table 9: Uncertainty calibration (all metrics ↓ ). MissPath-FM wins 29/32 metric–setting combinations, including a clean sweep on the multivariate Energy Score.
Dataset
Setting
A → B (Prior)
B → F (Flow)
ETTm1
MCAR 30%
−85%
−31%
ETTm1
Block 30%
−70%
−51%
Synthetic
MCAR 30%
−87%
−10%
Synthetic
Block 30%
−21%
−41%
Electricity
MCAR 30%
−53%
−52%
Electricity
Block 30%
+79%
−71%
Appendix
Table 10: Prior and flow contributions (%). A → B: best prior-only vs Gaussian+Flow; B → F: Full MissPath-FM vs best prior-only.
Axis
Value
MAE
Dataset / Setting
Solver
Euler-10
0.550
Synthetic Block 50%
Euler-20
0.470
Euler-50
0.476
Euler-100
0.482
Adaptive RK23
0.481
GP ℓ
2.0
0.517
Synthetic Block 50%
Appendix
Table 11: Hyperparameter sensitivity. Each block varies one axis; defaults in bold .
Prior+Path
Medium gaps
Long gaps
Gaussian+Std
0.890
0.877
Interp+Std
0.456
0.684
GP+Std
0.297
0.618
GP+MA
0.296
0.607
Appendix
Table 12: Gap-bucketed MAE (Synth. Block 50%). GP priors benefit medium gaps most; long gaps remain challenging for all configurations.
Table 14: Leave-one-out ablation (MAE ↓ ; in parentheses, change relative to Full). † PhysioNet uses a fresh draw of the artificial holdout mask in this harness, so its absolute MAE differs by 4–6% from Tables 2 and 3 .
Observed-entry MAE ↓
Mean ∥vθ∥ on observed entries
Setting
Gaussian source
Ours
Gaussian source
Ours
ETTm1 MCAR30
0.7418
0.0229
0.9536
0.0394
ETTm1 Block30
0.7663
0.0236
0.9661
0.0398
Electr. MCAR30
0.3993
0.0247
1.0313
0.0371
Physio Art10
0.6153
0.0253
0.8068
0.0362
Appendix
Table 15: Observed entries before deterministic restoration. Gaussian source: Gaussian prior with standard path. Ours: interpolation prior with MA path.
Setting
SAITS
SAITS+RR
TSFlow
TSFlow+RR
Ours
ETTm1 MCAR30
0.0942
0.0950
0.1190
0.1173
0.0751
ETTm1 Block30
0.1432
0.1468
0.2401
0.3092
0.1067
Electr. MCAR30
0.1583
0.1599
0.1584
0.1465
0.0920
Electr. Block30
0.1836
0.1905
0.3412
0.5414
0.2241
Physio Art10
0.2336
0.2346
–
–
0.2271
Physio MNAR50
0.3138
0.3162
–
–
0.3283
Appendix
Table 16: Baselines retrained with RandomRate (+RR). MAE ↓ ; best per row in bold .
MCAR
Block
Dataset
Rate
Ours
Gauss.
SAITS
Ours
Gauss.
SAITS
ETTm1
10%
0.069
0.752
0.085
0.084
0.671
0.120
30%
0.076
0.751
0.098
0.106
0.709
0.149
50%
0.086
0.742
0.110
0.144
0.712
0.210
70%
0.103
0.738
0.132
0.219
0.714
0.252
90%
0.189
0.740
0.212
0.389
0.728
0.302
Appendix
Table 17: Missing-rate sweep (MAE ↓ ). Gauss.: Gaussian prior with flow matching. Best per row and mechanism in bold .
Dataset
σnoise
sobs=2.0
sobs=1.5
sobs=1.0
SAITS
ETTm1
0.0
0.0754
0.0812
0.0861
0.1055
0.1
0.0902
0.0961
0.0990
0.1109
0.2
0.1256
0.1325
0.1363
0.1323
0.3
0.1731
0.1794
0.1862
0.1712
0.5
0.2888
0.2944
0.2963
0.2557
Electricity
0.0
0.0921
0.1033
0.1114
0.1557
Appendix
Table 18: Observation-noise sensitivity (MCAR 30%, MAE ↓ ). Best per row in bold .
Method
MCAR
Block
MNAR
Train (s)
Peak memory
SAITS
0.1222
0.1846
0.2032
95
565 MB
BRITS
0.1180
0.2294
0.2020
1541
242 MB
TSFlow
0.1149
0.2727
0.1967
696
306 MB
Ours
0.0775
0.1181
0.1235
466
1037 MB
Appendix
Table 19: ETTm1 at T=192 , rate 30% (MAE ↓ ), with training time and peak GPU memory.
Length T
GP posterior prior
Interpolation prior
Ratio
48
601 ms
15.5 ms
39×
192
1316 ms
56.5 ms
23×
Appendix
Table 20: Source-prior construction time per batch ( B=64 , D=7 ).