NBA Shot Fine-Tuning Simulator
Published model · Gradual Distributional Shifts · ← All-or-Nothing Simulator
33,362 three-pointers from the 2014-15 season. League average: about 35%. What if the mix of shot conditions had been slightly different — a few more open looks, a few fewer deep pull-ups?
Shift the mix of shot conditions gradually — moving 20% of tight-defense shots to open rather than moving every shot at once.
Curious what's happening inside the model when you apply a scenario? See the companion walkthrough Inside the Model — it traces one shot's conditions through the equation and shows how the league make rate emerges from all 33,362 individual predictions.
How to Use This Tool
Shift shot-condition distributions gradually and see how the make rate would change
How to Use This Tool
Shift shot-condition distributions gradually and see how the make rate would change
1. Choose league or player
Start with All 3-point shots to use the league-wide published model, or pick a player like Stephen Curry. When you pick a player, the simulator searches for a custom model built on that player's shots only — the variables may differ from the published six. A blue callout names the discovered variables; a gray notice tells you when the sample was too small for a reliable custom model and the published model is being refit on that player's shots instead. Sliders reset to that player's observed baseline when you switch.
2. Set the distribution
Use the preset buttons for a quick start, or drag sliders to change the mix of shot conditions. Unlike pinning every shot to one value, sliders let you shift just some attempts — for example, moving 20% of Tight defense to Open. The colored bar under each header shows the variable's model leverage. Each variable's percentages must sum to 100%.
3. Run the scenario
Click Run scenario to send your slider settings through the active model (published or custom, depending on which player is selected). The result shows the projected make rate and a 95% confidence interval. The How certain is this result? chart shows 10,000 simulated outcomes so you can see how much the baseline and your scenario overlap.
4. Explore each factor
Click Explore Each Factor after a run to see every level of every variable, holding your other sliders fixed. This is the quickest way to see whether defender distance, shot clock, or shot distance is doing most of the work in your current scenario.
5. Switch to All-or-Nothing
Fine-Tuning shifts distributions, approximating realistic changes in shot selection. If you'd rather pin every shot to one specific value per condition — useful for testing extreme scenarios that make the model's assumptions visible — use the All-or-Nothing Simulator link above the scenario panel. Your player selection carries over.
6. Save, share, and reset
Every run is saved to the Saved Scenarios drawer at the bottom of the page — click Load on any card to restore its slider settings, or Remove to drop it. Use Share scenario to copy a link with your settings encoded, or Reset to baseline to return sliders to the current player's observed mix. The league-wide baseline is ~35%; individual players vary widely.
Loading simulator…
Couldn't load the simulator
Want to set every respondent to one specific value instead? All-or-Nothing Simulator →
Set the distribution
The number on each card is the variable's swing on this page — how far the prediction would move if you concentrated all responses in this variable's lowest-leverage level versus its highest-leverage level, using the real values within each level. A bigger swing means redistributing this variable matters more.
Note: this page doesn't pin everyone to one specific value. It shifts what kind of responses show up in the model's average — emphasizing some, de-emphasizing others — so the answers stay grounded in situations the data actually contains. That's why swings here are smaller than on the All-or-Nothing page, where every respondent is set to the same extreme value.
Predicted outcome
How did you change the survey?
Each pair of bars compares the actual distribution (green) to the distribution under your scenario (red where you changed it). This is what you changed — not the predicted impact, just the input.
How certain is this result?
Every prediction has wiggle room — these histograms show how much. The green bars are the plausible answers for the baseline; the red bars are the plausible answers for your scenario. Where the colors overlap, the two answers are close enough that the model can't cleanly tell them apart.
Calibration: predicted vs. observed
How closely the model's predicted probabilities track the observed outcome rates, binned by predicted decile. Bubble size shows respondents per bin. The dashed diagonal is perfect calibration; the blue scenario line is your run; the gray line (when present) is the unmodified base model for comparison.
Explore each factor
For each variable, see how the predicted outcome would change if you switched that one distribution to 100% at each level — holding all your other selections fixed. Reveals which individual levels have the most leverage given your current scenario.