Encounter XP Budget Calculator
ANA›Life Services Authority›National Calculator Authority›Encounter XP Budget Calculator
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
Encounter XP Budget Calculator
Calculate the XP budget for a D&D 5e encounter based on your party's composition and desired difficulty level.
Number of Player Characters
Average Character Level (1–20)
Encounter Difficulty
Easy Medium Hard Deadly
Number of Monsters (for multiplier)
Calculate XP Budget Fill in the fields above and click Calculate.
function encCalc() { var partySize = parseInt(document.getElementById('enc-party-size').value); var charLevel = parseInt(document.getElementById('enc-char-level').value); var difficulty = document.getElementById('enc-difficulty').value; var numMonsters = parseInt(document.getElementById('enc-num-monsters').value);
// Validation if (isNaN(partySize) || partySize 20) { document.getElementById('enc-result').innerHTML = 'Please enter a valid number of player characters (1–20).'; return; } if (isNaN(charLevel) || charLevel 20) { document.getElementById('enc-result').innerHTML = 'Please enter a valid character level (1–20).'; return; } if (isNaN(numMonsters) || numMonsters 100) { document.getElementById('enc-result').innerHTML = 'Please enter a valid number of monsters (1–100).'; return; }
// XP thresholds per character per level (DMG p. 82) // [level]: [easy, medium, hard, deadly] var xpThresholds = { 1: [25, 50, 75, 100], 2: [50, 100, 150, 200], 3: [75, 150, 225, 400], 4: [125, 250, 375, 500], 5: [250, 500, 750, 1100], 6: [300, 600, 900, 1400], 7: [350, 750, 1100, 1700], 8: [450, 900, 1400, 2100], 9: [550, 1100, 1600, 2400], 10: [600, 1200, 1900, 2800], 11: [800, 1600, 2400, 3600], 12: [1000, 2000, 3000, 4500], 13: [1100, 2200, 3400, 5100], 14: [1250, 2500, 3800, 5700], 15: [1400, 2800, 4300, 6400], 16: [1600, 3200, 4800, 7200], 17: [2000, 3900, 5900, 8800], 18: [2100, 4200, 6300, 9500], 19: [2400, 4900, 7300, 10900], 20: [2800, 5700, 8500, 12700] };
var diffIndex = {easy: 0, medium: 1, hard: 2, deadly: 3}; var idx = diffIndex[difficulty];
var perCharXP = xpThresholds[charLevel][idx]; var totalBudget = perCharXP * partySize;
// Encounter multiplier based on number of monsters (DMG p. 82) // Adjusted for party size 5 var baseMultiplier; if (numMonsters === 1) baseMultiplier = 1; else if (numMonsters === 2) baseMultiplier = 1.5; else if (numMonsters = 6) { // Decrease multiplier by one step var steps2 = [1, 1.5, 2, 2.5, 3, 4]; var stepIdx2 = steps2.indexOf(baseMultiplier); multiplier = stepIdx2 > 0 ? steps2[stepIdx2 - 1] : baseMultiplier; }
// Adjusted XP budget = total budget / multiplier (how much raw XP monsters should total) var rawXPBudget = Math.round(totalBudget / multiplier);
var diffLabel = difficulty.charAt(0).toUpperCase() + difficulty.slice(1);
document.getElementById('enc-result').innerHTML = 'Results for a ' + diffLabel + ' Encounter' + '' + 'XP Threshold per Character:' + perCharXP.toLocaleString() + ' XP' + 'Total Party XP Budget:' + totalBudget.toLocaleString() + ' XP' + 'Encounter Multiplier (' + numMonsters + ' monsters):×' + multiplier + '' + 'Raw Monster XP Budget (before multiplier):' + rawXPBudget.toLocaleString() + ' XP' + '' + 'Select monsters whose combined XP totals approximately ' + rawXPBudget.toLocaleString() + ' XP. ' + 'Their adjusted XP (×' + multiplier + ') will equal ~' + (rawXPBudget * multiplier).toLocaleString() + ' XP, matching your ' + diffLabel + ' budget of ' + totalBudget.toLocaleString() + ' XP.'; }
#### Formula
Total XP Budget = XP Threshold per Character (by level & difficulty) × Number of PCs Raw Monster XP Budget = Total XP Budget ÷ Encounter Multiplier Encounter Multiplier is based on the number of monsters: 1 monster → ×1 | 2 → ×1.5 | 3–6 → ×2 | 7–10 → ×2.5 | 11–14 → ×3 | 15+ → ×4 (Adjusted up one step for parties <3, down one step for parties ≥6)
#### Assumptions & References
- XP thresholds are sourced from the Dungeon Master's Guide (5e), Chapter 3, p. 82.
More Calculators
- Circuit Breaker Sizing Calculator
- Brute Force Attack Time Calculator
- GFCI and AFCI Placement Calculator
- Hash Collision Probability Calculator
- Vocabulary Growth Rate Calculator
- Home Electrical Panel Load Capacity Calculator
- Encryption Key Length Security Estimator
- Property Damage Claim Value Estimator
- Claim Settlement vs Litigation Cost Comparator
- Claim Settlement Estimator
- Property Damage Settlement Estimator
- Loss of Use / Additional Living Expenses Calculator
Read Next
Claim Settlement Vs Litigation Cost Comparator ANA › Life Services Authority › National Calculator Authority › Claim Settlement vs Litigation Cost Comparator .calc-container...
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...