Methodology
How CasePredictor turns public USCIS data into forecasts — in full detail so you can evaluate the math yourself.
Data sources
Everything on the site is built from public sources. We don't collect individual case data or store user inputs.
- USCIS Processing Times page — egov.uscis.gov/processing-times. Provides the current P50 and P93 values per form, subtype, and (historically) service center.
- USCIS Historic Processing Times tool — monthly/ quarterly snapshots of past medians, used for our trend charts.
- USCIS quarterly XLSX datasets — Immigration and Citizenship Data. Quarterly receipts, approvals, denials, and pending counts by form.
- State Department Visa Bulletin — travel.state.gov. Monthly Final Action Dates and Dates for Filing per category and country.
- Freshness — a monthly automated pipeline re-scrapes each source. Code is open on GitHub; diffs are committed so you can audit any data change.
What the numbers mean
USCIS publishes two percentiles per form, not an average. The P50 is the median: half of completed cases finished faster, half slower. The P93 is the 93rd percentile: 93% of completed cases finished within this time.
Processing times are right-skewed: most cases finish in a predictable window, but a small tail (RFEs, background checks, administrative holds) stretches much longer. Percentiles describe the middle and the slow end separately, which is more honest than a single average.
These percentiles are retrospective, not predictive: they summarize cases that completedrecently, not what's queued up today. If USCIS' pace changes mid-year, a predicted range computed from yesterday's percentiles won't capture it perfectly. See the Limitations section below.
The ETA calculation
Given your receipt date and a selected form+subtype, we produce a prediction window with three ingredients:
1. Range from percentiles
lowDate = receiptDate + P50 months highDate = receiptDate + P93 months
This gives a likely decision window rooted in how recent cases actually completed.
2. Log-normal distribution fit
We fit a log-normal distribution closed-form from the two percentiles:
μ = ln(P50) σ = (ln(P93) − μ) / Φ⁻¹(0.93) where Φ⁻¹(0.93) ≈ 1.476
From (μ, σ) we get the full PDF/CDF and can place your elapsed time on the percentile curve (the "you are at the Nth percentile" readout on the ETA page).
3. Trend adjustment
Using the last ~12 months of historical medians (where available), we run a least-squares linear regression and report the slope as days per month. If the trend is strongly positive (getting slower), we call that out on the ETA page without silently shifting the prediction — we'd rather show you the direction and let you decide how to interpret it.
Why not machine learning?
Three reasons. (1) The USCIS data is already aggregated — there are no per-case features to learn from. (2) With roughly seven quarterly snapshots per form, any complex model would overfit. (3) Interpretability matters more than marginal accuracy here: an applicant reading their own ETA should be able to verify the math, not trust a black box.
Visa bulletin projections
The Priority Date Checker projects when a given priority date will become current using a frequency-weighted pace model over the full bulletin history:
avgPositive = mean(months where cutoff moved forward) frequency = count(positive months) / count(all non-FY-boundary months) effectivePace = avgPositive × frequency monthsOut = gapDays / effectivePace projectedMonth = latestBulletin + monthsOut
This model separates how much the cutoff advances when it does move from how often it advances. October bulletin retrogressions (caused by visa number exhaustion at the fiscal-year boundary) are excluded since they are structural, not indicative of ongoing pace. Optimistic and pessimistic ranges use the 75th and 25th percentiles of positive movements multiplied by the same frequency.
If no months show positive movement, we decline to project rather than emit a misleading estimate. When pace-based projection is unavailable, a queue-based fallback using pending I-485 counts from USCIS EB inventory data may be shown for employment categories.
Chart conventions
A quick reference so you can read any chart on the site confidently:
- Heatmap
- Rows × columns matrix with color-coded cells. Darker = higher value. Used for forms × subtypes or forms × months at a glance.
- Range bar
- Horizontal bar from P50 to P93 per item. The bar length shows the spread; the left edge shows the typical wait.
- Distribution chart
- Smooth curve derived from the log-normal fit. A vertical marker shows your elapsed time's position on the percentile curve.
- Bullet chart
- Value-vs-zones indicator. Colored bands (fast / typical / slow) let you see at a glance where a number sits against benchmarks.
- Sparkline
- A tiny inline trend line without axes. Used inside stat cards and tables to give shape context next to a number.
- Year-over-year (YoY)
- Overlays multiple calendar years on the same month-of-year axis, revealing seasonal patterns and fiscal-year resets.
- Delta bar
- Horizontal bars showing change since the previous period. Green = improvement, red = regression (or inverted — each chart labels its convention).
- Stacked area
- Cumulative volume across categories over time. Shows both the total and the composition in one view.
- Donut chart
- Composition of a single total: approvals, denials, pending. Used for quarterly snapshots of disposition.
Limitations
- RFEs, background checks, and holds — not modeled. A case caught in additional review will land in the slow tail (past P93); our percentiles represent cases that completed, including eventual long ones.
- Policy changes — regulatory shifts or fee changes can alter pace abruptly. Trend lines only catch this in hindsight.
- No per-case lookup — we forecast the aggregate, not your specific case. Use the USCIS Case Status tool for that.
- Quarterly historical granularity — the historic processing-times dataset publishes quarterly snapshots, which limits how finely we can measure within-year trends.
- National processing times only — USCIS currently reports at the national level. Per-service-center breakdowns are not available in our data.
- Projections assume trends continue— both ETAs and visa-bulletin projections are extrapolations. Real movement depends on annual quotas and demand that aren't in the input data.
Corrections
Each monthly re-scrape overwrites stale data, so typos and transient errors in upstream sources auto-correct as USCIS updates. If you spot a value that looks wrong compared to the official USCIS page, please open an issue on our GitHub repository with a screenshot and the URL you checked against. We review these within a week.