U.S. Immigration Data

Priority dates, work visas, and labor market data

Methodology April 04, 2026

How My Prediction Model Works

With over a million people in the employment-based green card backlog, the monthly Visa Bulletin matters. I built this site to make waiting more transparent — and predictions more honest. Below is a technical description of how the prediction model works, what was tested and discarded, and where it still falls short.


1. Why Linear Extrapolation Fails

The instinctive approach is to extrapolate from recent pace. If EB-2 India advanced 30 days/month over the last year, project forward at that rate. The chart below shows why this breaks down on real data:

Red shaded bands mark October (fiscal year resets). Each dashed line is a 6-month rolling pace extrapolation launched from a different point in history: orange from Jun 2019 (predicts endless flatness — misses the 2021 surge), red from Sep 2021 (predicts rapid clearing — misses the retrogression that followed), purple from Mar 2022 (predicts continued advance — misses the major retrogression two months later). All three are badly wrong.

Three structural features make Visa Bulletin cutoffs resistant to simple extrapolation:

  • October resets: The U.S. fiscal year starts October 1. Unused visa numbers expire September 30. USCIS redistributes the new allocation in October, often causing a discontinuous jump or retrogression — not a trend continuation.
  • Retrogression events: When USCIS approves too many cases in a prior month, the next bulletin must retrogress to protect the annual cap. A trend extrapolation predicts advance; the actual bulletin can move backward by months.
  • End-of-fiscal-year acceleration: July–September often see accelerated advancement as USCIS processes remaining visa numbers. This seasonal surge is predictable, but a rolling average treats it as noise.

2. What We Optimize For

This model is not optimized for a single MAE number. The actual optimization target is a weighted composite metric that balances several concerns:

ComponentRaw weightRationale
1-month MAE0.38Will the cutoff move next month?
6-month MAE0.40Where will the cutoff be mid-year?
3-month MAE0.104Near-term trajectory
12-month MAE0.255Annual planning horizon

Raw weights sum to 1.139; the composite score is their weighted average (each weight divided by 1.139), so the effective normalized weights are approximately 33%, 35%, 9%, 22%.

Additional adjustments:

  • Series weighting: India EB-2 and EB-3 are weighted 1.5× (largest user base); China EB-2 at 1.2×; EB-1 series at 0.8× (smaller backlog, lower user demand).
  • Asymmetric penalty: Optimistic predictions — telling someone their date is closer than it really is — receive a 1.3× penalty. The model is calibrated to err on the side of caution.
  • Direction accuracy: An 8% weight on whether the model correctly predicts the direction of movement (advance vs. retrogression), separate from magnitude.
  • Movement-magnitude weighting: Months with large actual moves count more. We care about catching the big advances, not just predicting "no change."

What MAE Means in Cutoff-Date Space

MAE is measured in days of error between the predicted cutoff date and the actual cutoff date. This is measured in priority date space, not in calendar time.

The natural comparison baseline is 6m-lagged persistence: whatever the cutoff was 6 months ago is the "no change" forecast. During periods when cutoffs advance rapidly, that 6-month lag is large — a model that tracks the trend beats persistence substantially. The chart below shows China EB-2 from 2018. During the 2019–2022 advancing window the model prediction (green) stays much closer to the actual (blue) than the naive persistence baseline (grey). In the stall period after 2022 the three lines converge — the model correctly sees little movement.

China EB-2 filing cutoff, 2018–present. Green dashed: this model's prediction made 6 months before the bulletin. Grey dashed: naive "no-change" persistence from 6 months ago. The gap between grey and actual shows the missed advance that persistence cannot predict; the model closes much of that gap. Lines converge after 2022 when the series stalls — correct behaviour, not a flaw.


3. The Model Architecture

Per-Series, Per-Horizon Dispatch

The model routes each series to the sub-model that performs best for that series at that time horizon. The dispatch was determined by walk-forward backtesting across all combinations:

Series 1m & 3m 6m 12m
China EB-1Regime-SwitchedRegime-SwitchedGBM Gated
China EB-2RS (1m) / Expert Ensemble (3m)PaceGBM Gated
China EB-3RS (1m) / Expert Ensemble (3m)GBM GatedGBM Gated
India EB-1Regime-SwitchedGBM GatedGBM Gated
India EB-2RS (1m) / Expert Ensemble (3m)PaceGBM Gated
India EB-3RS (1m) / Expert Ensemble (3m)PacePace

Expert Ensemble (1m–3m, EB-2/3)

For short-horizon EB-2/3 predictions, the model uses a Hedge aggregator: a collection of individual forecasting "experts" whose weights are updated online based on recent accuracy. Experts that have been accurate recently receive more weight.

  • Queue simulation: Demand-based model using I-140 petition counts by fiscal year and category.
  • Seasonal median: Historical median movement for each calendar month.
  • 12-month linear trend: Rolling average that captures sustained advancing periods.
  • 3-month momentum: Short-window signal for recent acceleration or deceleration.
  • Fiscal year cycle: Explicit model of the October reset behavior.
  • Persistence: No-change baseline, always included as a conservative anchor.

The seasonal rhythm chart shows why explicit month-by-month modeling matters:

October (red) marks the fiscal year reset. July–September (green) show the end-of-year acceleration. A model that ignores these structural patterns will systematically mispredict both transitions.

GBM Gated (6m and 12m for most series)

For longer horizons on EB-1 and most China series, the model uses a gradient-boosted machine learning model (GBM) with a gating mechanism trained on 10+ years of bulletin history. The GBM takes 27 features as input:

  • Current cutoff date and velocity (recent pace)
  • Monthly movement history (1m through 12m, average)
  • Fiscal year phase (month of year, months into FY, FY boundary proximity)
  • I-140 backlog density near the cutoff (I-485 queue)
  • EB-1 surplus indicator (unused EB-1 visa numbers that flow to EB-2 under INA §202)
  • ROW (rest-of-world) issuance patterns
  • Regime classification (advancing / stalled / retrogressing / recovering / volatile)

The GBM was tuned with Optuna across 50+ trials, and is validated on a strict walk-forward backtest: the model is retrained on all data available before each evaluation point, never using future data.

Regime-Switched (China EB-1 1–11m, India EB-1 1–5m)

EB-1 series are structurally different: they clear rapidly near fiscal year end then retrogress, driven by INA §202 per-country caps and annual visa allocation rather than queue depth. For these series, a regime-aware persistence model that tracks the current monthly velocity outperforms both the expert ensemble and GBM.

Pace (6m for India EB-2/3 and China EB-2; 12m for India EB-3)

For India EB-2, EB-3, and China EB-2 at 6 months, and India EB-3 at 12 months, the Oppenheim Constant Pace extrapolation (12-month rolling average velocity) outperforms the GBM. These series are currently in deep stall — the pace model correctly predicts minimal movement.


4. Benchmarked Against Community Approaches

The most common community approaches to predicting visa bulletin movements, measured on the same walk-forward backtest (2016–2026, 6 series). All horizons (1m, 3m, 6m, 12m) evaluated directly. “This model” is the production dispatch described in Section 3.

The “Composite Score” column is a normalized weighted average of per-horizon MAE: (0.38 × MAE 1m + 0.104 × MAE 3m + 0.40 × MAE 6m + 0.255 × MAE 12m) ÷ 1.139 (days of priority-date space). Lower is better. All values are directly backtested on a walk-forward evaluation (2016–2026, 6 series). “Dir%” is direction accuracy at 6-month horizon. This model wins on both composite (164d vs next-best Pace 180d) and 6m MAE (198d vs 213d), but remains close to persistence at 1m where no EB-2/3 model meaningfully beats no-change.”

Method Composite vs Baseline MAE 6m Dir%
Persistence (no change) [1] 195d baseline 229d 8%
Oppenheim Constant Pace [2] 180d −15d 213d 38%
Demand-Supply Queue [3] 193d −2d 227d 69%
12-Month Dashboard Trend [4] 231d +36d 261d 54%
Seasonal Pattern [5] 199d +4d 235d 27%
3-Month Momentum [6] 298d +103d 331d 46%
Polynomial Trend [7] 469d +274d 479d 55%
This model [8] 164d −31d 198d 46%
  1. Persistence (no change): Control — predict last month's cutoff
  2. Oppenheim Constant Pace: "Chatting with Charlie" (Charlie Oppenheim, former DOS Chief of Visa Control); 12-month rolling average pace. Written methodology guide.
  3. Demand-Supply Queue: Queue model; high direction accuracy, worse point estimate. AgentCalc-style methodology
  4. 12-Month Dashboard Trend: USCIS Visa Availability Dashboard; 12-month moving average; commonly cited by attorneys
  5. Seasonal Pattern: Historical median by calendar month; discussed on r/USCIS_EB3 forums
  6. 3-Month Momentum: Recent pace extrapolated; fails on regime changes. Common in r/USCIS quick estimates
  7. Polynomial Trend: Degree-2 regression on 5 years; badly extrapolates. visabulletintracker.com-style
  8. This model: Per-series dispatch: RS for China EB-1 (1–11m) and India EB-1 (1–5m); GBM Gated for India EB-1/China EB-3 at 6m and 5 series at 12m; Pace for remaining 6m/12m series; expert ensemble otherwise. Beats Persistence at 6m on all 6 series (198d vs 229d avg).

“Dir%” is conditional direction accuracy — how often the model correctly predicts whether the cutoff will advance or retrogress, given that it actually moves (months where persistence is trivially correct are excluded). The Demand-Supply model achieves the highest Dir% (67%) but worse point error; the Oppenheim Pace model is the strongest single-method community baseline.

Per-series breakdown (h=6): sub-model in parentheses
SeriesPersistencePaceOur ModelWinner
China EB-1175d168d158d (RS)Our model
China EB-2196d157d157d (Pace)Tied
China EB-3217d194d157d (GBM)Our model
India EB-1292d281d234d (GBM)Our model
India EB-2225d215d215d (Pace)Tied
India EB-3269d266d266d (Pace)Tied

Feature Importance: GBM Ablation Study

To measure which inputs actually drive the GBM's predictions, we ran a feature-group ablation study: for each group, we zeroed out all features in that group at inference time and measured the change in 6-month MAE (averaged across all 6 series). The baseline MAE with all features intact is 200d.

Feature Group What It Contains Ablated MAE Δ MAE Interpretation
Macro / Demand I-140 approval ratio, I-485 queue size, utilization rate, demand ratio, 6-month velocity 247d +47d Most important group — drives nearly all GBM improvement over simpler baselines
Velocity 1-month through 12-month moving-average cutoff movement 201d +1d Negligible isolated impact at 6-month horizon
Seasonality Month of year, FY boundary flags, months into FY 199d −1d Marginal (seasonal signal captured elsewhere)
Demand Drop ROW velocity, issuance drop ratio 199d −1d Marginal at aggregate level
Cross-Series EB-1 surplus, EB-1 movement signals, near-cutoff I-485 density 194d −7d Model performs better without it — adds noise at this horizon

Key findings:

  • Demand signals dominate: The macro group (I-140 backlog ratio, I-485 pending queue density, visa utilization) accounts for essentially all of the GBM's improvement over simpler baselines like Oppenheim Pace or persistence. Without these features, the GBM degrades by 47 days.
  • Cross-series signals hurt at 6 months: The statutory EB-1 → EB-2 overflow rule is real (INA §203), but the GBM picks up noise from the EB-1 surplus features at this horizon. This is consistent with findings that EB-1 spillover only clearly predicts EB-2/3 movement at shorter (1–3 month) windows for some series.
  • Velocity and seasonality are redundant at GBM level: These features matter for the 1-month expert ensemble (where seasonal rhythm and recent momentum are primary signals), but the GBM at 6–12 months gets more value from structural demand indicators.

5. What Was Tested and Rejected

  • Fiscal year conditional models: Separate experts for FY boundary months vs. steady-state. Insufficient training data (~8 transitions per series).
  • Hardcoded regime dispatch: "If advancing, use demand signal; if stalled, use persistence." Cannot be tuned and does not generalize across series. Replaced by trainable Hedge weights.
  • GBM at 1-month horizon as point predictor: The base-rate problem: ~80% of months have no significant movement for EB-2/3. The GBM predicts spurious moves. Used only for movement probability classification, not as a point predictor.
  • PERM filing volume: Hypothesized as a 12–18 month leading indicator of EB-2/3 demand. Feature ablation (zeroing the feature at inference) showed the GBM trees did not use it in any decision path. The apparent improvement was from accumulating more training data.

6. Known Limitations

  • India EB-3: The cutoff has barely moved in years. The structural backlog makes any 6-month prediction inherently uncertain. Confidence intervals are wide; directional guidance is more reliable than point estimates.
  • Retrogression events: When USCIS must retrogress to protect the cap, it is typically not predictable from historical patterns. The model will under-predict these events.
  • Policy shocks: Congressional action, USCIS fee changes, and I-140 filing surges before policy deadlines are not predictable from the visa bulletin data alone.

Monthly analysis posts compare predictions to actual bulletins. See recent analyses or historical prediction accuracy.