How to Rank Low-Fill Residency Programs Using NRMP SOAP Data

10 min read
NRMP SOAP Data Dashboard Cover

In the 2024 Main Residency Match, approximately 2,500 positions across nearly 1,000 programs failed to fill through the algorithm and spilled into the Supplemental Offer and Acceptance Program. That is not a rounding error. That is a market signal, repeated year after year, and it tells you exactly where demand fell short of supply. The applicants who read that signal correctly build rank lists that match. The ones who rely on forum anecdotes and reputation gossip build lists that do not.

I have analyzed match data through multiple cycles, and the pattern is consistent: low-fill behavior is measurable, predictable, and exploitable if you know which variables to pull. This article walks through the full process, which NRMP data matters, how to score programs, how to avoid the statistical traps, and how to convert the numbers into a rank list that maximizes your probability of matching rather than your ego.

This article is for educational purposes only. It is not financial advice, not legal advice, and not tax advice. Figures vary by individual circumstances, consult a qualified professional before acting.

Why NRMP SOAP Data Is the Best Starting Point for Low-Fill Program Strategy

Start with definitions, because most applicants use "low-fill" loosely and pay for it. In practical terms, a low-fill program is one that meets at least one of three conditions:

  • Unfilled positions after the main Match. The algorithm ran, and the program still had open slots.
  • Repeated SOAP participation. The program appears in SOAP lists across multiple cycles, not just one.
  • High fill volatility. The program's fill rate swings significantly year to year, suggesting unstable demand.

The data shows these are the only definitions worth using, because they are the only ones grounded in observable outcomes. Everything else, "that program is a backup," "nobody wants to train there," "my classmate matched there with a 215", is anecdote. And anecdote is the enemy of a good rank list. Forum threads suffer from survivorship bias, selection bias, and plain fabrication. The NRMP's Results and Data reports and SOAP position lists suffer from none of these. They are the raw record of where supply exceeded demand.

That record matters more than any other public dataset because it answers the question that actually determines your fate: where were programs unable to fill their seats? A program that enters SOAP three out of five years is telling you, with its own behavior, that it does not attract enough ranked applicants to fill. That is the clearest accessibility signal available. Roughly 94 percent of SOAP positions fill within the four SOAP rounds, which means these programs are genuinely motivated to fill, they are not selective holdouts. They are buyers in a buyer's market, and you want to be selling.

What Data to Pull: The NRMP Variables That Predict Low-Fill Risk

The NRMP publishes more data than most applicants ever read. Here are the core fields to extract, by specialty and program where available:

  1. Positions offered, the denominator for every calculation.
  2. Positions filled, the numerator.
  3. Unfilled positions entering SOAP, the primary low-fill indicator.
  4. Fill percentage, filled divided by offered, computed per year.
  5. SOAP frequency, the count of years a program or specialty appears in SOAP over your analysis window.
  6. Program type and specialty, categorical, preliminary, transitional year, advanced.
  7. Year-over-year change, the delta that reveals trends versus noise.

With those fields, you can compute a low-fill score using three simple metrics:

  • Unfilled share = unfilled positions ÷ positions offered. A program that offers 12 positions and leaves 3 unfilled has an unfilled share of 25 percent. That is a strong signal.
  • SOAP frequency = years in SOAP ÷ years in your window. Four appearances in five years is a frequency of 0.8. Persistent.
  • Volatility = the range or standard deviation of fill percentage across 3-5 years. A program that fills 100, 75, 92, 83, 100 percent is volatile. Volatile programs are opportunities in down years and traps in up years.

The specialty comparison deserves attention. The data shows that fill risk concentrates in two places: specialties with smaller or shrinking applicant pools, and programs in geographically constrained locations. Family Medicine consistently produces the largest absolute number of unfilled positions, several hundred per cycle, despite being a large specialty. Transitional Year programs historically fill at lower rates than categorical programs because the applicant pool treats them as means to an end. Meanwhile, categorical Internal Medicine fills at roughly 97-98 percent overall, but that aggregate hides enormous variation: big-name academic IM programs fill instantly while smaller community programs in less desirable regions quietly enter SOAP. Aggregate specialty data will mislead you if you stop there. Program-level data is where the signal lives.

Building a Ranking Framework: How to Score Programs for SOAP Opportunity

Here is where most applicants go wrong: they rank by prestige and hope. That is statistically indefensible if your goal is to match. Instead, build a weighted scoring model. My preferred framework uses four components:

Component Suggested Weight What It Captures
SOAP frequency (5-year) 40% Persistence of low-fill behavior
Mean unfilled share 25% Depth of the fill gap
Fill volatility 20% Predictability of the signal
Geography/reputation adjustment 15% Demand pressure working against you

The weighting logic is deliberate. Persistence beats magnitude. A program that enters SOAP four of five years with two unfilled positions is a safer bet than a program with one dramatic eight-unfilled year. The first is a structural pattern; the second might be an anomaly, a scandal, a leadership change, or a data quirk.

Apply the geography and reputation adjustment as a discount. A low-fill community program in a rural Midwest location scores as highly accessible. A program in San Diego or Manhattan that happened to underfill once does not, desirable geography creates applicant overflow that can erase a fill gap in a single cycle. The data shows location desirability is the fastest mean-reverting variable in the entire model.

Then tier your list by probability of offer, not by brand name:

  • Safety tier: Score above ~70. Repeated SOAP presence, high unfilled share, low-desirability geography.
  • Target tier: Score 40-69. Moderate fill gaps, some volatility, average demand.
  • Stretch tier: Below 40. Strong fill history, desirable location or name. Include a few. Just do not let them dominate.

Simple. Repeatable. Defensible. When a dean or advisor asks why you ranked a program, "the data shows a 0.8 SOAP frequency and a 22 percent mean unfilled share" is a better answer than anything you will find on Reddit.

Applying the Rankings: How to Interpret Low-Fill Signals Without Overreading the Data

Now the warnings, because this framework fails when applied carelessly.

A single SOAP year proves nothing. Emergency Medicine is the cautionary tale. In 2023, EM left more than 550 categorical positions unfilled, an astonishing collapse that made national headlines. Applicants who treated that as the new normal and loaded up on EM as a "safety" specialty got a rude surprise in 2024, when unfilled EM positions dropped by roughly three-quarters as demand snapped back. One data point is a headline. Three to five data points are a trend. Rank trends.

Low-fill does not mean low standards. Some unfilled programs still screen aggressively on board scores, graduation year, or visa status. A program can fail to fill because its applicant pool was too small, not because it accepted everyone who applied. Cross-check every safety-tier program against your own profile before assuming accessibility.

That cross-check is where the model meets reality. Combine the low-fill score with your applicant-specific variables:

  • Board scores relative to the specialty's matched-applicant means
  • Visa needs, J-1 and H-1B sponsorship filters eliminate entire tiers of programs for IMGs, and IMG match rates sit 20 to 30 percentage points below US MD seniors, which means IMGs should weight the safety tier far more heavily
  • Clinical performance and red flags, gaps, failures, and remediation change which programs are realistically attainable regardless of fill data
  • Geographic constraints, yours, not just the program's
Applicant Screening Low-Fill Program Flags

The practical decision rule: if your goal is to maximize Match probability, prioritize programs with persistent low-fill trends, three or more SOAP appearances in five years, and treat everything else as secondary. But never assume all low-fill programs are equally attainable. I have seen applicants with mid-230s go unmatched in Family Medicine because they ranked twelve coastal programs and zero rural community ones. The fill data was there. They just refused to read it honestly.

Step-by-Step Process for Creating Your Own Low-Fill Residency Program List

Here is the repeatable workflow, start to finish:

  1. Download the source data. Pull the NRMP Results and Data: Main Residency Match report and the SOAP unfilled-positions lists for the past 3-5 cycles. These release every March.
  2. Filter by your specialty. Extract every program with at least one SOAP appearance in your window.
  3. Compute the metrics. Fill percentage, unfilled share, SOAP frequency, and volatility for each program. A basic spreadsheet handles this in an afternoon.
  4. Score and tier. Apply the weighted model. Sort into safety, target, and stretch.
  5. Cross-check against reality. Visit program websites. Verify visa sponsorship, score cutoffs, graduation-year limits, and USCE requirements. Delete programs that screen you out regardless of their fill data.
  6. Build the final shortlist. A defensible structure for a risk-averse applicant: roughly 50-60 percent safety-tier programs, 30 percent targets, and 10-15 percent stretch. Adjust the mix toward safety if you are an IMG, have a red flag, or are applying in a competitive specialty.

The bottom line, and the data supports both halves of it: NRMP SOAP and Match reports convert directly into a working low-fill ranking system built on fill rate, SOAP frequency, and volatility, and a strong ranking strategy prioritizes probability of matching over prestige, refined by specialty, geography, and your own profile.

Do these four things this week:

  1. Download the two most recent NRMP reports and build your initial spreadsheet.
  2. Compute SOAP frequency for every program in your specialty over five years.
  3. Tier your list using the 40/25/20/15 weights, then stress-test it against your scores and visa status.
  4. Set a calendar reminder for March, when the next data drops, because the applicants who update their models annually are the ones whose rank lists keep working.

Keep reading

View more