Transparency Report

Here is exactly how your score is built.

Most “chance me” tools hand you a number and a shrug. We think you deserve better. Below is the real engine — every formula, every weight, every shortcut and every thing we don’t know. Nothing here is pseudo-mathematical fog. If a part is uncertain, we say so.

Our promise: the math on this page is the math in the code. We would rather show you an honest “we’re not sure” than a confident lie dressed up as a probability.

How the score works

AdmitGPT computes one number per college: P(admit), a value between 0 and 1. It is built from five pieces added together on a log-odds scale, then squashed back into a probability. That is the whole idea — not a mystery, an addition.

1Academic strength (Z-scores)

We place you on a bell curve against the college’s own admitted class — and against a clean US 4.0 reference, not the raw mixed-scale corpus mean (that older bug mapped a 2.90 GPA onto a positive Z and inflated everyone).

SAT_Z = (YourSAT − CollegeSATmean) / σcollegeσcollege = (SAT75 − SAT25) / 1.35 // IQR-based; fallback ±100 pts if no college SAT data → SAT_Z = nullGPA_Z = (YourGPA_4.0 − μref) / σrefμref, σref from computeGpaReference(): the corpus’s 4.0-plausible subset (raw GPA in [0, 4.3]), σ floored at 0.50 international non-standard GPA gets +0.4 if below ref (or +2.0 for Game Makers)Academic_Z = SAT_Z present ? 0.55·SAT_Z + 0.45·GPA_Z : GPA_Z − 0.20 // test-optional uncertainty penalty clamp(Academic_Z, [−4, 4])

2The “spike” (extracurriculars & awards)

Each activity is scored on six dimensions, then everything is combined with diminishing returns so one mega-achievement can’t run away with the score. Self-reported, unverifiable claims are downgraded one notch so you can’t invent a spike.

itemBase = W × T × R × P × D × V W = tier points (Game Maker 9, Outlier 7, T1 5, T2 3, T3 1.5) T = tier-level multiplier R = rarity factor P = institutional strength D = cognitive load V = validation weightitemContribution = ( itemBase > 10 ? 10 + 2·ln(1 + itemBase−10) : itemBase ) × C C = clamp(confidence/100, 0, 1)S = Σ(itemContribution) / 5.5 // scaled, caps per tier still enforced + diversityBonus (breadth across categories, up to +3.5) + depthBonus (repeat high-tier in one field, up to +1.5)

3Protocol selection

Your profile is tagged by what kind of applicant you are. This only changes how much weight the spike gets — never the formulas above.

Game Maker → spike weight 0.175 (academics 0.10, or 0.40 if academically weak) Outlier → spike weight 0.140 (academics 0.65, or 1.00 if weak) Standard → spike weight 0.110 (academics 0.90) International & weak academics → ×1.25 boost on spike weight

4Verification discount

A spike you can’t prove keeps a floor of its weight. Anything externally vouched (peer, institution, or professional audit) lifts it back toward full.

verifiedShare = verifiedItems / totalItems (0 if no items)verifiedMult = VERIFIED_SPIKE_FLOOR + (1 − FLOOR)·verifiedShare FLOOR = 0.6 → an all-self-reported profile keeps 60% of its spike weight

5Major & international fit

If past applicants to this college in your intended major were admitted at a very different rate than the overall pool, we nudge the score. International applicants at colleges that rarely admit non-residents get a small penalty.

majorMod = ( (majorRate / overallRate) − 1 ) × 0.5 // centred on 0intlMod = ( (nonResidentRate / 0.10) × 0.1 − 0.3 ) × isInternational

6The master formula

Everything is added on the log-odds scale, then passed through a logistic (sigmoid) curve. This is the standard, literature-grounded way to model admission probability (Giani & Walling 2020; Lee, Kizilcec & Joachims 2023). The spike is hard-capped so a single achievement can never overpower weak grades.

baseLogit = ln( rate / (1 − rate) )academicTerm = 1.5 × clamp(Academic_Z, [−4, 4])spikeTerm = clamp( S × spikeWeight × verifiedMult, [−2.0, 2.0] )majorMod, intlMod as abovecombinedLogit = baseLogit + academicTerm + spikeTerm + majorMod + intlModcalibratedLogit = 1.0 × combinedLogit + 0.0 // placeholder; see note belowP(admit) = 1 / (1 + e−calibratedLogit)

Honest footnote on calibration: the final step is a pass-through today.CALIB_SLOPE = 1.0 and CALIB_INTERCEPT = 0.0, so the output is the raw additive logit, not a calibrated probability. We report it as an exploratory ordinal signal — a relative ranking you can trust more than the exact percentage. Fitting real SLOPE/INTERCEPT on held-out outcomes is the next step.

Does it actually work?

We validated the engine against held-out profiles from our own corpus. The short version: the ranking is solid (AUC ≈ 0.74, meaning it correctly orders “got in” vs “rejected” about three times out of four), but the exact percentage at the very top is shaky. We’re not going to pretend otherwise.

By school tier (held-out)

TierPredictedObserved
Reach (top decile of your list)46.2%63.2%✗ off
Match (middle 60%)33.0%31.0%✓ close
Safety (bottom 30%)89.1%93.8%✓ close

By admission-rate decile (the honesty test)

DecilePredictedObserved
1 (safest)0.970.97
30.900.92
50.780.80
70.580.61
90.340.36
10 (most selective)0.0130.246✗ miscalibrated

Notice decile 10: we predict 1.3%, reality is 24.6%. At the most selective schools, our model under-confidently shrinks toward zero. That is a known limitation of training on a corpus where “got into Harvard” is rare. Take any single-digit percentage here as “very hard, but the true odds are higher than this says.”

What this number is not

  • Not an official probability. It is an exploratory, ordinal signal from one student corpus — not a calibrated likelihood and not affiliated with any college.
  • Not a guarantee. Admissions involve essays, fit, luck, and factors we don’t model. Use it to strategize, not to decide your worth.
  • Biased by its data. Our corpus skews toward a certain kind of high-achieving, internationally-minded applicant. Results for under-represented profiles are less reliable.
  • Narrow by design. It only scores schools already in our dataset. A school with no data simply can’t be scored honestly.

Where the data comes from

We are careful to only claim what we can point to.

  • Student outcomesstudentsdata.json: 1,122 self-reported profiles (2017–2023), 692 with an acceptance and 212 with a rejection. Crowd-sourced; noisy by nature.
  • College statscollegesdata.json: 6,273 institutions, primarily from the U.S. Department of Education College Scorecard.
  • Academic modeling basis — Giani & Walling (2020), Journal of College Access; Lee, Kizilcec & Joachims (2023), arXiv:2302.03610.

We deliberately removed earlier citations we could not verify (an “AdmitMatch technical guide”, a “College Board placement methodology”, and a vague “Fan et al.”). If we can’t link it, we don’t cite it.

Try AdmitGPTVerify a profileRead the source