ForHosting KIT · Home, food & hobbies

D&D passive perception calculator

Wisdom +3 and a proficient +3 give a passive Perception of 16: 10, plus 3, plus 3. Add expertise, advantage or the Observant feat and see each term the Dungeon Master will check. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Wisdom modifier
3
Proficiency bonus
3
You get
Passive perception
16
Score
16
Base
10
Proficiency applied
3

Passive Perception is the fifth-edition Dungeons and Dragons score a Dungeon Master uses when a character might notice a hidden door, an ambush, or a whispered conversation without rolling a d20. This D&D passive perception calculator builds that score from the published formula: ten plus the Wisdom modifier, plus the Perception proficiency contribution, plus five for advantage or minus five for disadvantage, plus any extra bonuses, minus any extra penalties. Enter the Wisdom modifier from the character sheet, the proficiency bonus for the character's level, whether the character is proficient or has expertise in Perception, and any advantage, Observant-feat, item, or other flat adjustments.

How fifth-edition Passive Perception is built from the character sheet

In fifth-edition Dungeons and Dragons, a passive check is the score you would expect if the character took ten on the d20 and then applied every modifier that normally belongs on that check. For Perception the relevant ability is Wisdom, so the starting pair is always ten plus the Wisdom modifier printed next to the ability score. If the character is proficient in Perception, add the full proficiency bonus for the character's level.

If the character has expertise in Perception, as a rogue, bard, or other class feature may grant, add twice that proficiency bonus instead of once; expertise implies proficiency and is never stacked on top of a third copy of the bonus. When the character would have advantage on Wisdom (Perception) checks, the passive-check rule adds five. When the character would have disadvantage, the same rule subtracts five.

Extra flat bonuses such as the Observant feat, a magic item, or a temporary effect that the table treats as a constant are added after those core terms. Extra flat penalties are subtracted the same way. The result is a single integer the Dungeon Master compares to a stealth roll, a hidden object's DC, or an ambush threshold.

Because the mapping is a closed arithmetic identity and not a table interpolation, this calculator never rounds a half proficiency, never invents Jack of All Trades unless you fold that half bonus into the extra bonus field yourself, and never pretends a missing Wisdom modifier is zero. A typical scout with Wisdom plus three, proficiency plus three, and no extra terms scores sixteen. The same scout with expertise scores nineteen.

Add Observant plus five and the score becomes twenty-four. Those three checkpoints are enough to verify the formula by hand before you trust a session spreadsheet.

Where a Passive Perception calculator earns its keep at the table

Home Dungeon Masters constantly compare a party's Passive Perception list against a scout's stealth roll or a hidden-door DC, and they do that between scenes rather than during a speech. A trusted oracle that returns the official integer from sheet numbers removes the moment when someone adds expertise twice or forgets the plus five from advantage on a dim-light watch. Virtual tabletop modules and bot commands need a deterministic map so a slash command that reads Wisdom, proficiency, and a feat flag never disagrees with the printed Player's Handbook.

Adventure writers who publish stat blocks and skill-challenge appendices want the same score the table will compute, not a rounded guess. Teachers running after-school clubs use Passive Perception as a concrete linear function students can check by hand: ten, plus a modifier, plus a proficiency term, plus a plus-or-minus five. Failed validation does not consume balance, which keeps exploratory scripts cheap when learners deliberately omit Wisdom or send a fractional bonus.

Keep requests small, pin the integer score and the breakdown string in automated tests, and you get reproducible numbers for prep tools, VTT plugins, and edge workers without standing up a rules engine. If you later need a full skill-check roller, an encounter stealth contest against several monsters, or a Passive Investigation twin, treat those as separate search intents rather than overloading this Passive Perception landing. The contract here is one character, one score, one closed formula.

Session prep against stealth and hidden doors

Convert each hero's Wisdom modifier, Perception proficiency, and feats into an official Passive Perception list, then compare those integers to ambush rolls and secret-door DCs before the session starts.

VTT bots and character-sheet macros

Expose a deterministic Passive Perception map so Foundry, Discord, or sheet automations return the same integer the Player's Handbook formula produces for that row of numbers.

NPC and stat-block authoring

When you assign a draft scout Wisdom plus four and expertise, look up the Passive Perception instantly and keep published blocks aligned with the fifth-edition passive-check rule.

How do I calculate D&D 5e Passive Perception?

Start at 10, add the Wisdom modifier, add the Perception proficiency bonus (or twice that bonus for expertise), add 5 if the character would have advantage or subtract 5 for disadvantage, then add extra bonuses and subtract extra penalties. Send those fields here to get the integer score and a labeled breakdown.

Does proficiency or expertise add to Passive Perception?

If neither flag is set, the proficiency bonus is ignored even if you sent the number.

How do advantage and disadvantage change Passive Perception?

The fifth-edition passive-check rule adds 5 when the character would have advantage on the check and subtracts 5 when the character would have disadvantage. Send advantage as none, advantage, or disadvantage. The two states are not combined; pick one.

Does the Observant feat count in this calculator?

Yes. Observant adds a flat +5 to Passive Perception (and Passive Investigation). Put that 5 in the bonus field along with any magic-item or other constant modifiers. The calculator does not invent feat names; it adds the number you send.

Can I subtract a penalty from passive Perception?

Yes. Enter a flat penalty, for example one that works like exhaustion, and it is taken off after ten, Wisdom, proficiency, advantage and extra bonuses are added together.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/hobby/dnd-passive-perception

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/hobby/dnd-passive-perception \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"wisdom_modifier":3}'
{
  "wisdom_modifier": 3
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "hobby.dnd_passive_perception",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

min_wisdom_modifier-10
max_wisdom_modifier15
max_proficiency_bonus12
min_bonus-30
max_bonus30
max_penalty30
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

The response returns the integer Passive Perception, a labeled breakdown of every term, and the same closed formula the Player's Handbook uses for passive checks. Unknown or out-of-range numbers fail with invalid_input instead of inventing a stealth DC. The free browser tool and the prepaid API share one deterministic module, so session notes, VTT macros, and stat-block validators never disagree on the same sheet.

Input contract, accepted fields, and the shape of the response

The value must be a finite integer from minus ten to fifteen, which covers official ability modifiers and a little homebrew headroom. Optional proficient and expertise are booleans that also accept one, zero, yes, and no. Expertise doubles the proficiency bonus and marks the character proficient even if you omitted the proficient flag. Optional advantage is a closed list: none, advantage, or disadvantage, also accepted as adv and dis. Formula restates the closed identity. Message states the score in one sentence. Send a JSON body with the required field wisdom_modifier, or one of its aliases wis_mod, wisdom_mod, wis, or modifier. Optional proficiency_bonus (aliases pb, prof_bonus, proficiency) is a non-negative integer from zero to twelve and defaults to zero; it is added only when proficient or expertise is true. Optional bonus (aliases other_bonus, extra_bonus, item_bonus) is a signed integer from minus thirty to thirty for Observant, items, and other flats. Optional penalty (aliases other_penalty, extra_penalty) is a non-negative integer from zero to thirty that is subtracted. Missing wisdom_modifier, non-integers, values outside the published ranges, and unknown advantage tokens fail with invalid_input and are not billed. On success the body echoes every resolved input, reports proficiency_applied and advantage_modifier as the actual numbers that entered the sum, and returns passive_perception and the synonym score as the same integer. Successful API calls use the published base price of $0.002 per item; validation failures do not consume prepaid balance.

What does the D&D passive perception calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →