Enter your values to compare scenarios; the calculation runs only in this browser.
Practical Basketball Matchup Duel Predictor
Compare 12 attributes and height between an attacker and defender in Practical Basketball. Returns expected points per possession and a recommendation.
Score a 1v1 duel. Enter the attacker and defender attribute profiles, set heights, and read expected points per possession plus the recommendation.
| Attribute | Attacker | Defender |
|---|---|---|
| Three-Point | ||
| Mid-Range | ||
| Driving Layup | ||
| Driving Dunk | ||
| Standing Dunk | ||
| Interior Defense | ||
| Perimeter Defense | ||
| Strength | ||
| Speed with Ball | ||
| Speed | ||
| Acceleration | ||
| Pass Accuracy |
Why a matchup duel predictor?
Practical Basketball’s 1v1 decision (attack / neutral / pass) depends on the full 12-attribute profile plus height. The Matchup Duel Predictor is a deterministic scorer you can run in your browser. It does not invent data: every probability is computed from the composite positioning score and a recommendation gate.
Score a 1v1 duel. Enter the attacker and defender attribute profiles, set heights, and read expected points per possession plus the recommendation.
| Attribute | Attacker | Defender |
|---|---|---|
| Three-Point | ||
| Mid-Range | ||
| Driving Layup | ||
| Driving Dunk | ||
| Standing Dunk | ||
| Interior Defense | ||
| Perimeter Defense | ||
| Strength | ||
| Speed with Ball | ||
| Speed | ||
| Acceleration | ||
| Pass Accuracy |
Inputs
attacker_profile— 12-attribute profile (3PT, MID, DRV_LAY, DRV_DNK, STD_DNK, INT_DEF, PER_DEF, STR, SPD_BALL, SPD, ACC, PASS).attacker_height_in— 60-90 in.defender_profile— 12-attribute profile.defender_height_in— 60-90 in.defender_distance_m— 0-8 m.possession_count— 0+ integer.pure_sharpshooter— boolean (no finishing).
Outputs
P_finish,P_and_one,P_strip,P_pass,P_turnover— sum to 1.00 within 1% tolerance.expected_points_per_possessionin [-0.20, 1.60].duel_indexin [-1, +1].recommendation— attack (duel_index > +0.20) / neutral / pass_to_teammate (duel_index < -0.20).attacker_position,defender_position— derived from height.
Composite positioning score
A_attack = 0.30 * 3PT + 0.20 * MID + 0.25 * DRV_LAY + 0.10 * DRV_DNK
+ 0.05 * STD_DNK + 0.05 * SPD_BALL + 0.05 * ACC
D_defend = 0.30 * INT_DEF + 0.30 * PER_DEF + 0.15 * STR
+ 0.15 * SPD + 0.10 * ACC
A_attack /= 99 ; D_defend /= 99
gap = A_attack - D_defend
height_gap = (attacker_height_in - defender_height_in) / 12.0
composite = clip(0.5 * gap + 0.5 * height_gap, -1, +1)
Height counts as much as the skill differential, which is why a 6’10“ big with 60 ratings can hold off a 6’2“ slasher with 80 ratings on a 1v1.
Edge cases
- Lockdown defender (PER_DEF ≥ 90) → P_finish ceiling 0.85, P_strip floor 0.08.
- Pure sharpshooter (DRV_LAY < 30, DRV_DNK < 30) → +0.10 to P_pass, -0.08 to P_finish.
- Drop coverage (defender_distance_m > 6) → +0.15 to P_finish; recommend “catch-and-shoot”.
- Tall attacker (≥ 82 in) vs short defender (< 72 in) → +0.06 to P_finish for post moves.
How the two tools compose
Run the Dribble Move Probability Calculator for the move you want to engage. If recommendation = attack, the dribble calculator’s best_follow_up overrides the duel recommendation; if recommendation = pass_to_teammate, pass before engaging the dribble move.