1. Introduction
Free throws are the most controlled shot in basketball. The distance is fixed at 15 feet, there is no defensive pressure, and the shooter has several seconds to prepare. Given all that, it is worth asking whether the outcome of the first free throw in a two-shot sequence tells us anything useful about the second.
Two competing stories exist. One is that the shots are independent: each attempt draws on the same stable physical skill, so the first outcome carries no information about the second beyond what we already know about the player. The other is that momentum or mental state matters within a sequence. Making the first shot might build confidence; missing it might introduce hesitation.
This analysis tests those two stories using NBA regular-season data. The goal is to get a clean estimate of whether there is a within-player sequential effect, separated from the compositional effect that comes from better shooters naturally converting more of both shots.
2. Data and Cleaning
2.1 Source
The raw data comes from free throws.csv, a play-by-play record of NBA regular-season free throw attempts. Each row is a single attempt and records the game ID, period, clock time, player name, shot outcome (made or missed), and a text description of the play type.
2.2 Filtering Steps
Several filters reduce the data to clean two-shot pairs. Only regular-season games are kept; playoff observations are dropped. Three-shot foul sequences are excluded by removing any play descriptions containing the digit 3 or the phrase "of 1". Technical free throws are also removed since they are isolated single attempts with no second shot to pair with.
After filtering, a variable FTno is extracted from the play description text. It takes the value 1 for the first attempt and 2 for the second. The data is then pivoted so each row represents one two-shot pair with columns FT1 and FT2, both binary (1 = made, 0 = missed). Pairs with missing values in either column are dropped.
2.3 Final Sample
The cleaned dataset contains 245,456 two-shot free throw pairs across 1,007 unique players. One minor data quality issue surfaced: 51 player-game-time combinations had duplicate records for the same shot number. These were collapsed to one observation per pair using the first recorded value.
3. Descriptive Statistics
Table 1 shows the raw conversion rates split by first-shot outcome.
| Condition | FT2 Success Rate | N |
|---|---|---|
| Overall FT1 success rate | 73.5% | 245,456 |
| Overall FT2 success rate | 77.8% | 245,456 |
| FT2 rate given FT1 made | 79.5% | ≈180,000 |
| FT2 rate given FT1 missed | 73.2% | ≈65,000 |
| Difference | 6.3 pp | — |
Players convert FT2 at a higher rate when they make FT1 (79.5%) than when they miss it (73.2%). The 6.3 percentage point gap is the raw number before any controls are applied. It is also worth noting that FT2 rates are higher than FT1 rates overall, consistent with a small warm-up or feedback mechanism within the sequence.
4. Statistical Analysis
4.1 Two-Sample Proportions Test
The first test compares FT2 success rates between players who made FT1 and players who missed FT1.
H₁: p(FT2|FT1=1) ≠ p(FT2|FT1=0)
The test uses a continuity correction. Results:
The 95% confidence interval on the difference is (0.059, 0.067), confirming the 6.3 percentage point gap is precisely estimated and not a sampling artifact. The null hypothesis is rejected at any conventional significance level.
This test establishes a strong, statistically significant association between FT1 and FT2 outcomes. It does not tell us whether that association is causal or driven by variation in shooter quality.
4.2 Linear Probability Model
The linear probability model (LPM) treats FT2 as the outcome and FT1 as the only predictor:
| Term | Estimate | Std. Error | t-value | p-value |
|---|---|---|---|---|
| Intercept (β₀) | 0.7315 | 0.0016 | 449.8 | < 2.2 × 10⁻¹⁰ |
| FT1 (β₁) | 0.0632 | 0.0019 | 33.3 | < 2.2 × 10⁻¹⁰ |
| R² = 0.0045 | N = 245,456 | ||||
The intercept of 0.7315 is the predicted FT2 success rate for players who missed FT1, matching the descriptive figure from Section 3. The slope of 0.0632 means making FT1 is associated with a 6.3 percentage point increase in FT2 success. The effect is statistically significant with t = 33.3.
However, R² = 0.0045. FT1 explains less than half a percent of total variation in FT2. This is expected: individual player ability dominates, and the model includes no player-level controls.
4.3 Pooled Logistic Regression
A logistic regression is more appropriate for a binary outcome since it keeps predicted probabilities within [0, 1]:
| Term | Estimate | Std. Error | z-value | p-value |
|---|---|---|---|---|
| Intercept (α) | 1.0023 | 0.0088 | 113.28 | < 2.2 × 10⁻¹⁰ |
| FT1 (γ) | 0.3510 | 0.0106 | 33.13 | < 2.2 × 10⁻¹⁰ |
| AIC = 258,875 | N = 245,456 | ||||
The logistic coefficient on FT1 is 0.351. Converting to an odds ratio:
Making the first free throw increases the odds of making the second by roughly 42%. In probability terms, predicted FT2 success rises from 73.1% to 79.5%, consistent with all earlier figures. The results are fully aligned across the proportions test and LPM.
4.4 Fixed-Effects Logistic Regression
The previous models pool all players. A player who shoots 85% from the line will tend to make both FT1 and FT2 at high rates, creating a positive correlation between the two shots that reflects skill, not sequential dynamics. To isolate the within-player effect, the analysis adds player fixed effects using feglm from the fixest package:
Here, αᵤ is a player-specific intercept for player j. This absorbs all stable player-level variation. The model asks a sharper question: for the same player, does making FT1 improve FT2 success?
During estimation, 83 players are dropped because they show only one outcome type (all makes or all misses), leaving 245,219 observations across 1,007 players.
| Term | Estimate | Std. Error | z-value | p-value |
|---|---|---|---|---|
| FT1 (δ) | 0.1233 | 0.0112 | 11.01 | < 2.2 × 10⁻¹⁰ |
| Player FEs = 1,007 | Adj. Pseudo R² = 0.0400 | N = 245,219 | ||||
The within-player coefficient is δ̂ = 0.1233. The corresponding odds ratio is:
Controlling for player ability, making the first free throw increases the odds of making the second by about 13% within the same player. In probability terms, this is roughly a 1.0 to 1.5 percentage point increase in FT2 success for a typical shooter.
The pooled estimate (OR ≈ 1.42) drops sharply once player fixed effects enter (OR ≈ 1.13). A large share of the raw association is compositional: better shooters make both shots at higher rates. But the residual within-player effect is real. With z = 11.01 and N > 245,000, this cannot be attributed to noise.
5. Model Comparison
Table 5 puts all four approaches side by side.
| Model | Controls | FT1 Estimate | p-value |
|---|---|---|---|
| Proportions Test | None | +6.3 pp diff | < 0.001 |
| Linear Probability | None | +6.3 pp slope | < 0.001 |
| Logistic (pooled) | None | OR ≈ 1.42 | < 0.001 |
| Logistic (player FEs) | Player identity | OR ≈ 1.13 | < 0.001 |
Adding player fixed effects cuts the odds ratio from 1.42 to 1.13, a reduction of about 70% of the raw estimate. That gap is the compositional piece: better players make both shots more often, and that accounts for most of the raw association.
The remaining within-player effect of OR ≈ 1.13 is modest in absolute terms but statistically robust. Whether it reflects psychological momentum, physical calibration across the two attempts, or some other within-sequence mechanism is not identifiable from this data alone.
6. Limitations
Unobserved game context. Even within the same player, not all free throw situations are identical. Late-game pressure, foul trouble, opponent, and fatigue are not included in the model. If any of these affect both FT1 and FT2 simultaneously, the within-player estimate may still carry omitted variable bias.
Duplicate records in raw data. Cleaning surfaced 51 player-game-time groups with duplicate shot entries. These were resolved by taking the first recorded value. If any of these were genuine re-attempts rather than data entry errors, the resolution adds a small error to the sample.
No temporal modeling. Each pair is treated as independent of other pairs involving the same player. A richer model could account for hot-hand dynamics across possessions or intra-game fatigue, which might interact with the within-pair effect estimated here.
LPM boundary issue. The linear probability model can produce predictions outside [0, 1] for extreme covariate configurations. In this dataset the predictor is binary and the outcome range is moderate, so this is unlikely to matter in practice. The logistic models avoid this issue entirely.
7. Conclusion
The raw data makes the gap look large: players who make FT1 convert FT2 at a 6.3 percentage point higher rate. But most of that gap is driven by shooter quality rather than anything happening within the sequence itself.
After controlling for player identity, the effect drops to roughly 1 to 1.5 percentage points. That is a small number. But it holds up across 245,000 pairs and 1,007 players with z > 11. It is not a fluke.
The practical takeaway: if you see a player miss FT1, their FT2 success rate will dip slightly relative to their baseline, but it will not collapse to the level of a much worse shooter. The popular narrative of hot-hand momentum overstates the effect. At the same time, the assumption of perfect independence between consecutive free throws is also wrong, just wrong in a small and precisely estimated way.
There is a real, small, within-player sequential effect. It survives controls, it is consistent across methods, and it is worth knowing about.
Analysis conducted in R using tidyverse, stringr, and fixest. Code is reproducible from Freethrow.R.