{"id":9451,"date":"2026-09-15T09:00:00","date_gmt":"2026-09-15T09:00:00","guid":{"rendered":"https:\/\/www.simplywise.com\/blog\/?p=9451"},"modified":"2026-09-15T15:38:01","modified_gmt":"2026-09-15T15:38:01","slug":"stair-calculator","status":"publish","type":"post","link":"https:\/\/www.simplywise.com\/blog\/stair-calculator\/","title":{"rendered":"Stair Calculator"},"content":{"rendered":"<p><script>\ndocument.addEventListener('DOMContentLoaded', function() {\n  var sels = ['.entry-header','.page-header','article > h1:first-child','.entry-footer'];\n  sels.forEach(function(s){document.querySelectorAll(s).forEach(function(el){el.style.display='none';});});\n  var el = document.querySelector('.sw-a');\n  while (el && el !== document.body) {\n    el.style.maxWidth='100%'; el.style.width='100%'; el.style.padding='0'; el.style.margin='0';\n    el.style.float='none'; el.style.flex='0 0 100%';\n    el = el.parentElement;\n  }\n  document.body.style.marginTop='0'; document.body.style.paddingTop='0';\n});\n<\/script>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&#038;display=swap\" rel=\"stylesheet\">\n<style id=\"pm-style\">.single-post .entry-header,.single-post .entry-meta,.single-post .page-header,.single-post article>h1:first-child{display:none !important;}.single-post .post-tags,.single-post .entry-footer,.single-post .breadcrumb-nav{display:none !important;}.single-post article.post .entry-content{padding-top:0 !important;margin-top:0 !important;max-width:100% !important;width:100% !important;}.single-post .content-area,.single-post #primary,.single-post .site-main{padding:0 !important;max-width:100% !important;width:100% !important;}.single-post .row--index>.col-xs-12{padding-left:0 !important;padding-right:0 !important;}.single-post .row.no-pad>[class*=\"col-\"]{width:100% !important;max-width:100% !important;flex:0 0 100% !important;margin-left:0 !important;padding-left:0 !important;padding-right:0 !important;}.single-post article.post,.single-post article.pm{max-width:100% !important;width:100% !important;margin:0 !important;padding:0 !important;float:none !important;flex:0 0 100% !important;}.single-post .container,.single-post .container-fluid{max-width:100% !important;width:100% !important;padding-left:0 !important;padding-right:0 !important;}.single-post .row--index,.single-post .row.no-pad,.single-post .site-content{max-width:100% !important;width:100% !important;margin-left:0 !important;margin-right:0 !important;padding-left:0 !important;padding-right:0 !important;}.pm *{box-sizing:border-box;}.pm{margin:0;background:#f8fafc;color:#3f3f46;font-family:'Inter',-apple-system,'Segoe UI',sans-serif;font-size:16.5px;line-height:1.7;-webkit-font-smoothing:antialiased;max-width:100%;width:100%;}.pm__inner{max-width:720px;margin:0 auto;padding:0 24px;}.pm a{color:#2563eb;text-decoration:none;font-weight:500;}.pm h1,.pm h2,.pm h3{color:#111827;font-weight:700;letter-spacing:-.025em;}.pm strong{color:#111827;font-weight:700;}.pm__hero{padding:72px 0 12px;text-align:center;background:#fff;border-bottom:1px solid #eef1f5;}.pm__crumb{font:500 13px Inter;color:#9ca3af;margin-bottom:20px;}.pm__eyebrow{display:inline-flex;align-items:center;gap:7px;font:600 12px Inter;letter-spacing:.05em;color:#2563eb;background:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 2px rgba(16,24,40,.04);padding:6px 13px;border-radius:999px;}.pm__eyebrow::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#2563eb;}.pm__hero h1{font-size:45px;line-height:1.12;margin:22px auto 16px;max-width:660px;letter-spacing:-.03em;}.pm__rating{display:flex;justify-content:center;align-items:center;gap:8px;margin:4px 0 18px;font:600 13.5px Inter;color:#4b5563;}.pm__stars{color:#f59e0b;letter-spacing:2px;font-size:15px;}.pm__rating-sub{color:#9ca3af;font-weight:500;}.pm__dek{font-size:19px;line-height:1.55;color:#6b7280;max-width:600px;margin:0 auto 12px;}.pm__dek-cta{font-size:15px;line-height:1.5;color:#6b7280;max-width:600px;margin:0 auto 22px;}.pm__dek-cta a{color:#2563eb;font-weight:600;text-decoration:none;border-bottom:1.5px solid rgba(37,99,235,.35);padding-bottom:1px;}.pm__dek-cta a:hover{border-bottom-color:#2563eb;}.pm__meta{display:inline-flex;gap:11px;align-items:center;color:#9ca3af;font:500 13px Inter;}.pm__meta i{width:3px;height:3px;border-radius:50%;background:#d1d5db;}.pm__fig{margin:40px auto 0;max-width:940px;padding:0 24px;}.pm__fig img{width:100%;height:auto;border-radius:16px;aspect-ratio:2\/1;object-fit:cover;box-shadow:0 8px 30px rgba(16,24,40,.10);display:block;}.pm__body{padding:44px 0 60px;}.pm h2{font-size:30px;line-height:1.18;margin:50px 0 16px;}.pm h3{font-size:20px;margin:28px 0 8px;}.pm p{margin:0 0 20px;}.pm ul,.pm ol{margin:0 0 20px;padding-left:24px;}.pm li{margin-bottom:8px;}.pm__tldr{background:#fff;border:1px solid #eceef1;border-radius:16px;box-shadow:0 2px 12px rgba(16,24,40,.05);padding:26px 30px;margin:0 0 20px;}.pm__tldr-label{display:inline-flex;align-items:center;gap:8px;font:700 11.5px Inter;letter-spacing:.1em;text-transform:uppercase;color:#2563eb;margin-bottom:12px;}.pm__tldr ol{margin:0;padding-left:20px;color:#4b5563;font-size:15.5px;line-height:1.6;}.pm__tldr li{margin-bottom:7px;}.pm__tldr-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid #dbe6ff;padding-top:16px;margin-top:14px;font-size:14.5px;}.pm__tldr-cta span{color:#111827;font-weight:500;}.pm__tldr-cta a{display:inline-flex;align-items:center;white-space:nowrap;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;background:#2563eb;color:#fff;text-decoration:none;}.pm ol.pm__steps{list-style:none;counter-reset:s;padding:0;margin:20px 0 32px;display:grid;gap:10px;}.pm__steps>li{counter-increment:s;position:relative;background:#fff;border:1px solid #eceef1;border-radius:12px;padding:18px 22px 18px 66px;box-shadow:0 1px 2px rgba(16,24,40,.04);}.pm__steps>li::before{content:counter(s);position:absolute;left:18px;top:18px;width:34px;height:34px;background:#eff4ff;color:#2563eb;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;}.pm__steps h3{margin:0 0 4px;font-size:17px;}.pm__steps p{margin:0;color:#6b7280;font-size:15.5px;}.pm__steps p+p{margin-top:10px;}.pm__table{width:100%;border-collapse:separate;border-spacing:0;margin:18px 0 28px;font-size:15px;background:#fff;border:1px solid #eceef1;border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.04);}.pm__table th{text-align:left;background:#fafafa;font:700 11.5px Inter;letter-spacing:.05em;text-transform:uppercase;color:#9ca3af;padding:12px 16px;border-bottom:1px solid #eceef1;}.pm__table td{padding:14px 16px;border-bottom:1px solid #f3f4f6;color:#4b5563;vertical-align:top;}.pm__table tbody tr:last-child td{border-bottom:none;}.pm__table tbody tr:hover{background:#fbfcff;}.pm__promo{background:linear-gradient(180deg,#f0f5ff,#eef4ff);border:1px solid #dbe6ff;border-radius:18px;padding:34px;margin:36px 0;text-align:center;}.pm__promo h2{margin:0 0 10px;font-size:25px;}.pm__promo p{color:#4b5563;font-size:16px;max-width:520px;margin:0 auto 18px;}.pm__callout{background:#fff;border:1px solid #dbe6ff;border-left:4px solid #2563eb;border-radius:12px;padding:18px 22px;margin:24px 0;color:#4b5563;box-shadow:0 1px 2px rgba(16,24,40,.04);}.pm__callout p:last-child{margin-bottom:0;}.pm__inline-cta{margin:4px 0 22px;font-size:14.5px;}.pm__inline-cta a{color:#2563eb;font-weight:600;text-decoration:none;border-bottom:1.5px solid rgba(37,99,235,.3);padding-bottom:1px;}.pm__inline-cta a:hover{border-bottom-color:#2563eb;}.pm__btn{display:inline-block;background:#2563eb;color:#fff;font:600 15px Inter;padding:13px 26px;border-radius:10px;box-shadow:0 4px 14px rgba(37,99,235,.28);}.pm a.pm__btn{color:#fff;text-decoration:none;font-weight:600;}.pm__btn--lg{padding:16px 34px;font-size:16px;}.pm__next{background:#fff;border:1px solid #eceef1;border-radius:14px;box-shadow:0 1px 2px rgba(16,24,40,.04);padding:22px 28px;margin:36px 0 20px;}.pm__next h2{font:700 11.5px Inter;letter-spacing:.1em;text-transform:uppercase;color:#2563eb;margin:0 0 4px;}.pm__next ul{list-style:none;padding:0;margin:0;}.pm__next li{position:relative;margin:0;padding:12px 30px 12px 0;border-bottom:1px solid #f3f4f6;font-size:15px;line-height:1.5;color:#6b7280;}.pm__next li:last-child{border-bottom:none;padding-bottom:2px;}.pm__next li::after{content:\"\\203A\";position:absolute;right:6px;top:50%;margin-top:-12px;font:600 20px\/1 Inter;color:#c8d1de;transition:color .15s ease,transform .15s ease;}.pm__next li:hover::after{color:#2563eb;transform:translateX(3px);}.pm__next a{color:#2563eb;font-weight:600;}.pm__next a:hover{text-decoration:underline;}.pm__sources{background:#fff;border:1px solid #eceef1;border-radius:14px;padding:24px 28px;margin:36px 0;}.pm__sources h2{font:700 11.5px Inter;letter-spacing:.1em;text-transform:uppercase;color:#9ca3af;margin:0 0 12px;}.pm__sources ul{list-style:none;padding:0;margin:0;}.pm__sources li{font-size:14.5px;color:#6b7280;padding:9px 0;border-bottom:1px solid #f3f4f6;}.pm__sources li:last-child{border-bottom:none;}.pm__pull{background:#f8fafc;padding:54px 0;text-align:center;}.pm__pull blockquote{margin:0 auto;max-width:760px;padding:30px 24px;border-top:1px solid #dbe1ea;border-bottom:1px solid #dbe1ea;color:#111827;font:600 25px\/1.4 Inter;letter-spacing:-.02em;}.pm__pull cite{display:block;margin-top:18px;color:#9ca3af;font:500 13px Inter;font-style:normal;}.pm__faq{padding:54px 0;background:#f8fafc;}.pm__faq h2{font-size:26px;text-align:center;margin:0 0 24px;}.pm__faq details{background:#fff;border:1px solid #eceef1;border-radius:12px;margin-bottom:10px;box-shadow:0 1px 2px rgba(16,24,40,.04);}.pm__faq summary{cursor:pointer;list-style:none;padding:17px 20px;font-weight:600;color:#111827;}.pm__faq summary::-webkit-details-marker{display:none;}.pm__faq details>div{padding:0 20px 17px;color:#6b7280;font-size:15.5px;}.pm__faq details>div p{margin:0;}.pm__final{background:#0f1729;color:#cbd5e1;text-align:center;padding:76px 0;margin-top:20px;border-radius:24px 24px 0 0;}.pm__final .pm__eyebrow{background:rgba(37,99,235,.16);border:none;color:#93b4ff;box-shadow:none;}.pm__final h2{color:#fff;font-size:33px;margin:16px 0 12px;}.pm__final p{color:#94a3b8;max-width:520px;margin:0 auto 24px;}@media(max-width:600px){.pm__inner{padding:0 18px;}.pm__hero{padding:48px 0 8px;}.pm__hero h1{font-size:34px;}.pm__dek{font-size:17px;}.pm__dek-cta{font-size:14px;}.pm__meta{flex-wrap:wrap;justify-content:center;gap:8px 11px;}.pm h2{font-size:24px;}.pm__next h2{font-size:11.5px;}.pm__next{padding:20px 22px;}.pm__next li{font-size:14.5px;}.pm__sources h2{font-size:11.5px;}.pm__fig{padding:0 16px;}.pm__fig img{aspect-ratio:16\/10;}.pm__steps>li{padding:18px 0 18px 56px;background:transparent;box-shadow:none;}.pm__steps>li::before{left:0;}.pm__table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:13.5px;}.pm__table th,.pm__table td{padding:10px 14px;}.pm__tldr-cta{align-items:flex-start;}.pm__tldr-cta a{white-space:normal;}.pm__pull{padding:42px 0;}.pm__pull blockquote{font-size:21px;}.pm__faq{padding:44px 0;}.pm__final{padding:64px 0;}.pm__final h2{font-size:30px;}.pm__btn--lg{width:100%;text-align:center;}}<\/style>\n<style id=\"swcalc-style\">.swc{background:#fff;border:1px solid #dbe6ff;border-radius:18px;box-shadow:0 8px 30px rgba(16,24,40,.10);padding:26px 26px 20px;margin:34px auto 4px;max-width:720px;text-align:left;}.swc__kicker{display:inline-flex;align-items:center;gap:7px;font:700 11px Inter;letter-spacing:.09em;text-transform:uppercase;color:#2563eb;}.swc__kicker::before{content:\"\";width:6px;height:6px;border-radius:50%;background:#2563eb;}.swc__title{font:800 21px\/1.2 Inter;color:#111827;letter-spacing:-.02em;margin:7px 0 18px;}.swc h3.swc__title{font:800 21px\/1.2 Inter;color:#111827;letter-spacing:-.02em;margin:7px 0 18px;}.swc__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}.swc__grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}.swc__field{margin:0 0 14px;}.swc__field label{display:block;font:600 12.5px Inter;color:#6b7280;margin-bottom:6px;}.swc input{width:100%;padding:12px 14px;border:1.5px solid #e5e7eb;border-radius:10px;font:600 16px Inter;color:#111827;background:#fbfcfe;outline:none;transition:border-color .15s ease,box-shadow .15s ease;appearance:textfield;-moz-appearance:textfield;}.swc input::-webkit-outer-spin-button,.swc input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}.swc input:focus{border-color:#2563eb;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.12);}.swc__presets{display:flex;gap:8px;flex-wrap:wrap;}.swc__preset{flex:1;min-width:92px;padding:11px 0;border:1.5px solid #e5e7eb;border-radius:10px;background:#fff;font:600 14.5px Inter;color:#4b5563;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;}.swc__preset.is-on{background:#eff4ff;border-color:#2563eb;color:#2563eb;}.swc__hint{display:block;font:500 11.5px Inter;color:#9ca3af;margin-top:5px;}.swc__out{background:linear-gradient(180deg,#f0f5ff,#eef4ff);border:1px solid #dbe6ff;border-radius:14px;padding:20px 22px 13px;margin-top:4px;}.swc__big{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;border-bottom:1px solid #dbe6ff;padding-bottom:14px;margin-bottom:4px;}.swc__num{font:800 44px\/1 Inter;color:#2563eb;letter-spacing:-.03em;font-variant-numeric:tabular-nums;transition:opacity .12s ease;}.swc__unit{font:600 15px Inter;color:#4b5563;}.swc__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid rgba(219,230,255,.75);font:500 14.5px Inter;color:#6b7280;}.swc__row b{color:#111827;font-weight:700;font-variant-numeric:tabular-nums;text-align:right;}.swc__row--code{border-bottom:none;}.swc__row--code b{font-size:14px;color:#047857;}.swc__row--code b.is-bad{color:#b91c1c;}.swc__note{font:500 12px\/1.55 Inter;color:#9ca3af;margin:6px 0 4px;}@media(max-width:600px){.swc{padding:20px 16px 14px;border-radius:16px;margin-top:22px;}.swc__grid,.swc__grid3{gap:10px;}.swc__grid3{grid-template-columns:1fr 1fr;}.swc__num{font-size:38px;}.swc__preset{padding:12px 0;}}<\/style>\n<p><script>\n(function(){\n  try{\n    var b=document.body;\n    if(b && b.classList){b.classList.add('single-post');}\n  }catch(e){}\n})();\n<\/script><\/p>\n<article class=\"pm\">\n<header class=\"pm__hero\">\n<div class=\"pm__inner\">\n<nav class=\"pm__crumb\">Blog &nbsp;&rsaquo;&nbsp; Construction Calculators<\/nav>\n<p><span class=\"pm__eyebrow\">Contractor Calculator &middot; Stairs<\/span><\/p>\n<h1>Stair Calculator: Risers, Run, Stringer, and Code<\/h1>\n<p class=\"pm__dek\">Stairs start with one number: total rise, floor to floor. Set it below and the risers, run, stringer, and code check update as you type.<\/p>\n<p class=\"pm__dek-cta\">Pricing the stair build? <a href=\"https:\/\/swcostestimator.app.link\/ce-ai\" rel=\"noopener\" target=\"_blank\">Estimate it from a photo<\/a> in about 6 seconds.<\/p>\n<div class=\"pm__rating\"><span class=\"pm__stars\">&#9733;&#9733;&#9733;&#9733;&#9733;<\/span> <b>4.8<\/b> <span class=\"pm__rating-sub\">on the App Store<\/span><\/div>\n<div class=\"pm__meta\">\n<span>SimplyWise<\/span><br \/>\n<i><\/i><br \/>\n<span>Updated September 15, 2026<\/span><br \/>\n<i><\/i><br \/>\n<span>5 min read<\/span>\n<\/div>\n<div class=\"swc\" id=\"swcalc\">\n<span class=\"swc__kicker\">Free Stair Calculator<\/span><\/p>\n<h3 class=\"swc__title\">Rise, run, stringer, and a code check<\/h3>\n<div class=\"swc__grid\">\n<div class=\"swc__field\"><label for=\"swc-rise\">Total rise, floor to floor (in)<\/label><input id=\"swc-rise\" type=\"number\" inputmode=\"decimal\" min=\"6\" max=\"400\" step=\"0.125\" value=\"109\"><\/div>\n<div class=\"swc__field\"><label for=\"swc-target\">Desired riser height (in)<\/label><input id=\"swc-target\" type=\"number\" inputmode=\"decimal\" min=\"4\" max=\"12\" step=\"0.125\" value=\"7.5\"><span class=\"swc__hint\">IRC R311.7.5.1 caps a riser at 7 3\/4 in<\/span><\/div>\n<\/div>\n<div class=\"swc__field\"><label for=\"swc-tread\">Tread depth (in)<\/label><\/p>\n<div class=\"swc__presets\" id=\"swc-presets\"><button type=\"button\" class=\"swc__preset\" data-t=\"10\">10 in<\/button><button type=\"button\" class=\"swc__preset is-on\" data-t=\"10.5\">10.5 in<\/button><button type=\"button\" class=\"swc__preset\" data-t=\"11\">11 in<\/button><button type=\"button\" class=\"swc__preset\" data-t=\"11.5\">11.5 in<\/button><\/div>\n<p><span class=\"swc__hint\">IRC R311.7.5.2 floor is 10 in. Custom depth below.<\/span><input id=\"swc-tread\" type=\"number\" inputmode=\"decimal\" min=\"6\" max=\"18\" step=\"0.25\" value=\"10.5\" aria-label=\"Tread depth in inches\"><\/div>\n<div class=\"swc__grid3\">\n<div class=\"swc__field\"><label for=\"swc-width\">Stair width (in)<\/label><input id=\"swc-width\" type=\"number\" inputmode=\"decimal\" min=\"20\" max=\"120\" step=\"1\" value=\"36\"><\/div>\n<div class=\"swc__field\"><label for=\"swc-nosing\">Nosing (in)<\/label><input id=\"swc-nosing\" type=\"number\" inputmode=\"decimal\" min=\"0\" max=\"2\" step=\"0.125\" value=\"1\"><\/div>\n<div class=\"swc__field\"><label for=\"swc-head\">Headroom (in)<\/label><input id=\"swc-head\" type=\"number\" inputmode=\"decimal\" min=\"48\" max=\"160\" step=\"0.5\" value=\"80\"><\/div>\n<\/div>\n<div class=\"swc__out\" aria-live=\"polite\">\n<div class=\"swc__big\"><span class=\"swc__num\" id=\"swc-riser\">7.27<\/span><span class=\"swc__unit\" id=\"swc-riser-unit\">in per riser, over 15 risers<\/span><\/div>\n<div class=\"swc__row\"><span>Treads<\/span><b id=\"swc-treads\">14 treads at 10.5 in<\/b><\/div>\n<div class=\"swc__row\"><span>Total run<\/span><b id=\"swc-run\">147 in (12 ft 3 in)<\/b><\/div>\n<div class=\"swc__row\"><span>Stringer length<\/span><b id=\"swc-stringer\">183 in (15 ft 3 in)<\/b><\/div>\n<div class=\"swc__row\"><span>Stringers<\/span><b id=\"swc-count\">3 at 2&#215;12, 18 in on center max<\/b><\/div>\n<div class=\"swc__row\"><span>Cut list<\/span><b id=\"swc-cuts\">15 rise cuts at 7.27 in, 14 run cuts at 9.5 in<\/b><\/div>\n<div class=\"swc__row swc__row--code\"><span>Code check<\/span><b id=\"swc-code\">Pass on riser, tread, width, headroom, nosing<\/b><\/div>\n<p class=\"swc__note\">Riser, tread, width, headroom and nosing check against IRC stair limits in free municipal handouts. The landing flag is the American Wood Council deck guide rule for exterior stairs, stricter than the code limit on vertical rise. Read September 11, 2026. Local amendments vary.<\/p>\n<\/div>\n<\/div>\n<figure class=\"pm__fig\">\n<img decoding=\"async\" alt=\"Cut stringers and fresh treads on a staircase under construction, the rise and run behind every stair calculation\" loading=\"eager\" src=\"https:\/\/images.unsplash.com\/photo-1768321915565-e20656edf92e?w=1400&amp;h=700&amp;fit=crop&amp;q=80&amp;auto=format\"\/><br \/>\n<\/figure>\n<\/div>\n<\/header>\n<p><script>\n(function(){\n  \/\/ CODE LIMITS are SOURCED DATA, one block, all from the 2021 IRC stair\n  \/\/ sections as published verbatim in free municipal building handouts.\n  \/\/ Placer publishes them as 2022 California Residential Code Title 24,\n  \/\/ CRC Section R311, text identical to the model IRC; Spearfish carries\n  \/\/ the 2021 IRC wording directly. Both read 2026-09-11:\n  \/\/   County of Placer, \"210 Residential Stairs\" handout (placer.ca.gov,\n  \/\/     DocumentCenter\/View\/3303) reproduces R311.7.1 width 36 in,\n  \/\/     R311.7.2 headroom 6 ft 8 in, R311.7.5.1 riser max 7 3\/4 in,\n  \/\/     R311.7.5.2 tread min 10 in, both with the 3\/8 in variation limit,\n  \/\/     and R311.7.5.3 nosing 3\/4 in to 1-1\/4 in, not required at a tread\n  \/\/     depth of 11 in or more.\n  \/\/   City of Spearfish, Residential Deck Handout (spearfish.gov,\n  \/\/     DocumentCenter\/View\/5233) independently states the same 7 3\/4 in\n  \/\/     riser, 10 in tread, 36 in width and 3\/8 in variation numbers.\n  \/\/ STRINGER RULES from American Wood Council DCA 6, Prescriptive\n  \/\/   Residential Wood Deck Construction Guide (awc.org, AWC-DCA62012\n  \/\/   -DeckGuide-1405.pdf, read 2026-09-11): stringers are a minimum of\n  \/\/   2x12, three cut stringers minimum, spacing 18 in on center maximum,\n  \/\/   and an intermediate landing is required once total rise passes\n  \/\/   12 ft 0 in.\n  var MAX_RISER=7.75, MIN_TREAD=10, MIN_WIDTH=36, MIN_HEAD=80;\n  var NOSE_LO=0.75, NOSE_HI=1.25, NOSE_EXEMPT_TREAD=11;\n  var MAX_RISE_NO_LANDING=144, STRINGER_SPACING=18;\n  function $(i){return document.getElementById(i);}\n  function ceil6(x){return Math.ceil(Number(x.toFixed(6)));}\n  function fmt2(n){var s=n.toFixed(2);if(s.indexOf('.')>=0){s=s.replace(\/\\.?0+$\/,'');}return s;}\n  function ftin(x){var r=Number(x.toFixed(2));var ft=Math.floor(r\/12);var rem=Number((r-12*ft).toFixed(2));return ft+' ft '+fmt2(rem)+' in';}\n  function val(el,lo,hi){var v=parseFloat(el.value);if(!isFinite(v)||v<lo||v>hi){return null;}return v;}\n  function run(){\n    var rise=val($('swc-rise'),1,400), target=val($('swc-target'),2,14), tread=val($('swc-tread'),4,24);\n    var width=val($('swc-width'),6,240), head=val($('swc-head'),24,240);\n    var nosing=val($('swc-nosing'),0,3); if(nosing===null){nosing=0;}\n    if(rise===null||target===null||tread===null||width===null||head===null){\n      $('swc-riser').textContent='0';\n      $('swc-riser-unit').textContent='enter the total rise';\n      $('swc-treads').textContent='0 treads';\n      $('swc-run').textContent='0 in';\n      $('swc-stringer').textContent='0 in';\n      $('swc-count').textContent='0 stringers';\n      $('swc-cuts').textContent='0 cuts';\n      $('swc-code').textContent='Enter every field';\n      $('swc-code').className='';\n      return;\n    }\n    var risers=Math.round(rise\/target); if(risers<1){risers=1;}\n    var riserH=rise\/risers;\n    var treads=risers-1;\n    var totalRun=treads*tread;\n    var stringer=Math.sqrt(rise*rise+totalRun*totalRun);\n    var stringers=Math.max(3,ceil6(width\/STRINGER_SPACING)+1);\n    var fails=[];\n    if(riserH>MAX_RISER){fails.push('riser over 7.75 in');}\n    if(tread<MIN_TREAD){fails.push('tread under 10 in');}\n    if(width<MIN_WIDTH){fails.push('width under 36 in');}\n    if(head<MIN_HEAD){fails.push('headroom under 80 in');}\n    if(tread<NOSE_EXEMPT_TREAD&#038;&#038;(nosing<NOSE_LO||nosing>NOSE_HI)){fails.push('nosing outside 3\/4 to 1-1\/4 in');}\n    if(rise>MAX_RISE_NO_LANDING){fails.push('over 12 ft of rise, landing required');}\n    $('swc-riser').textContent=fmt2(riserH);\n    $('swc-riser-unit').textContent='in per riser, over '+risers+' risers';\n    $('swc-treads').textContent=treads+' treads at '+fmt2(tread)+' in';\n    $('swc-run').textContent=fmt2(totalRun)+' in ('+ftin(totalRun)+')';\n    $('swc-stringer').textContent=fmt2(stringer)+' in ('+ftin(stringer)+')';\n    $('swc-count').textContent=stringers+' at 2x12, 18 in on center max';\n    $('swc-cuts').textContent=risers+' rise cuts at '+fmt2(riserH)+' in, '+treads+' run cuts at '+fmt2(tread-nosing)+' in';\n    if(fails.length){\n      $('swc-code').textContent='Check: '+fails.join(', ');\n      $('swc-code').className='is-bad';\n    }else{\n      $('swc-code').textContent='Pass on riser, tread, width, headroom, nosing';\n      $('swc-code').className='';\n    }\n  }\n  ['swc-rise','swc-target','swc-tread','swc-width','swc-nosing','swc-head'].forEach(function(i){$(i).addEventListener('input',run);});\n  var pb=document.querySelectorAll('#swc-presets .swc__preset');\n  pb.forEach(function(b){b.addEventListener('click',function(){\n    $('swc-tread').value=b.getAttribute('data-t');\n    pb.forEach(function(x){x.classList.remove('is-on');});\n    b.classList.add('is-on');\n    run();\n  });});\n  $('swc-tread').addEventListener('input',function(){pb.forEach(function(x){x.classList.remove('is-on');});});\n  run();\n})();\n<\/script><\/p>\n<div class=\"pm__body\">\n<div class=\"pm__inner\">\n<aside class=\"pm__tldr\">\n<div class=\"pm__tldr-label\">At a glance<\/div>\n<ol>\n<li>Risers = total rise divided by your target riser, rounded to whole.<\/li>\n<li>Riser height = total rise divided by that count. Every riser matches.<\/li>\n<li>Treads = risers minus one.<\/li>\n<li>Run = treads times tread depth. Stringer = square root of rise squared plus run squared.<\/li>\n<li>Code: riser 7 3\/4 in max, tread 10 in min, 3\/8 in variation, 36 in wide, 6 ft 8 in headroom.<\/li>\n<li>A 109 in rise at 7.5 in gives 15 risers at 7.27 in, 147 in of run, 183 in of stringer.<\/li>\n<\/ol>\n<div class=\"pm__tldr-cta\"><span>Price the stair and the framing from a photo, free to try.<\/span><a href=\"https:\/\/swcostestimator.app.link\/ce-ai\" rel=\"noopener\" target=\"_blank\">SimplyWise Cost Estimator<\/a><\/div>\n<\/aside>\n<h2>How the stair calculator works<\/h2>\n<p>Total rise is the only fixed measurement. It runs finished floor to finished floor and never bends to suit a nicer riser number.<\/p>\n<p>Divide total rise by the riser height you want and round to a whole riser. Then divide total rise by that count again. The second division is the one that matters: it gives the height you cut and makes every riser identical. Rounding the height itself and eating the difference on the last step fails inspection.<\/p>\n<h2>Worked example: 109 inches of total rise<\/h2>\n<p>Nine foot ceilings with a joist and floor assembly land near 109 in. At a 7.5 in target, 109 over 7.5 is 14.53, rounding to <strong>15 risers<\/strong>. Divide back: 109 over 15 is <strong>7.27 in per riser<\/strong>, under the 7 3\/4 in cap.<\/p>\n<p>Fifteen risers means <strong>14 treads<\/strong>. At 10.5 in each the run is 147 in, or 12 ft 3 in. The stringer is the square root of 109 squared plus 147 squared: <strong>183 in<\/strong>, so a 16 ft 2&#215;12 cuts one.<\/p>\n<p class=\"pm__inline-cta\"><a href=\"https:\/\/swcostestimator.app.link\/ce-ai\" rel=\"noopener\" target=\"_blank\">SimplyWise Cost Estimator<\/a> turns that framing into a priced, itemized estimate from one photo.<\/p>\n<h2>Common floor to floor heights<\/h2>\n<p>Target riser 7.5 in, tread 10.5 in.<\/p>\n<table class=\"pm__table\">\n<thead>\n<tr>\n<th>Total rise<\/th>\n<th>Risers<\/th>\n<th>Riser height<\/th>\n<th>Total run<\/th>\n<th>Stringer<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>108 in<\/td>\n<td>14<\/td>\n<td>7.71 in<\/td>\n<td>136.5 in<\/td>\n<td>174.06 in<\/td>\n<\/tr>\n<tr>\n<td>109 in<\/td>\n<td>15<\/td>\n<td>7.27 in<\/td>\n<td>147 in<\/td>\n<td>183 in<\/td>\n<\/tr>\n<tr>\n<td>120 in<\/td>\n<td>16<\/td>\n<td>7.5 in<\/td>\n<td>157.5 in<\/td>\n<td>198.01 in<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Watch the jump from 108 to 109 in. One inch adds a whole riser and another 10.5 in of run.<\/p>\n<h2>What the stair code actually says<\/h2>\n<p>These limits come from the residential code stair sections, published in free municipal handouts. A riser tops out at <strong>7 3\/4 in<\/strong>. A tread runs <strong>10 in<\/strong> minimum, measured between the leading edges of adjacent treads. Neither may beat the smallest by more than 3\/8 in.<\/p>\n<p>The stair is <strong>36 in<\/strong> wide minimum. Headroom is <strong>6 ft 8 in<\/strong>, measured down from the sloped line touching each nosing. That one catches remodels, where the opening above is already framed.<\/p>\n<p>Nosing gets skipped. On solid risers it projects <strong>3\/4 in to 1-1\/4 in<\/strong>, and at 11 in treads it is not required. It adds nothing to the run, so subtract it from tread depth when you mark the stringer.<\/p>\n<section class=\"pm__promo\">\n<h2>Turn the layout into a signed quote<\/h2>\n<p>The calculator gives the framing; the customer wants a number. SimplyWise Cost Estimator turns a photo into an itemized estimate in about 6 seconds. Pricing is $29.99\/mo or $239.99\/yr, about $20\/mo on annual, with a 7-day trial.<\/p>\n<p><a class=\"pm__btn\" href=\"https:\/\/swcostestimator.app.link\/ce-ai\" rel=\"noopener\" target=\"_blank\">SimplyWise Cost Estimator<\/a><br \/>\n<\/section>\n<h2>Cutting the stringer<\/h2>\n<p>For exterior stairs the American Wood Council deck guide is prescriptive: stringers are <strong>2&#215;12<\/strong> minimum, a cut stringer stair needs three, and spacing tops out at <strong>18 in on center<\/strong>. A 60 in stair takes five.<\/p>\n<p>The same guide requires an intermediate landing once stairway height passes <strong>12 ft<\/strong> on an exterior stair. Interior stairs get more room: the code section on vertical rise allows 151 in between floors or landings in the current edition, 147 in in older ones. The calculator holds the stricter 12 ft line, so a 150 in rise reads as a landing job.<\/p>\n<h2>Lay the stairs out in this order<\/h2>\n<ol class=\"pm__steps\">\n<li>\n<h3>Measure total rise on finished surfaces<\/h3>\n<p>Floor to floor, finish included. Forgotten 3\/4 in hardwood spreads across every riser.<\/p>\n<\/li>\n<li>\n<h3>Set the count, then the height<\/h3>\n<p>Round to a whole riser, then divide the rise back by it. Never round the height itself.<\/p>\n<\/li>\n<li>\n<h3>Check the run against the room<\/h3>\n<p>Run is treads times tread depth. A deeper tread makes a tight run worse.<\/p>\n<\/li>\n<li>\n<h3>Confirm headroom before you cut<\/h3>\n<p>Measure 6 ft 8 in down from the sloped line touching each nosing. The opening above is costly to move.<\/p>\n<\/li>\n<\/ol>\n<div class=\"pm__next\">\n<h2>Keep reading<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.simplywise.com\/blog\/construction-calculators\/\">Construction Calculators: the full set<\/a><\/li>\n<li><a href=\"https:\/\/www.simplywise.com\/blog\/concrete-slab-cost-calculator\/\">Concrete Slab Cost Calculator<\/a><\/li>\n<li><a href=\"https:\/\/www.simplywise.com\/blog\/drywall-sheet-and-mud-calculator\/\">Drywall Sheet and Mud Calculator<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"pm__sources\">\n<h2>Sources<\/h2>\n<h3>Stair code limits<\/h3>\n<ul>\n<li><a href=\"https:\/\/www.placer.ca.gov\/DocumentCenter\/View\/3303\/Residential-Stairs-PDF\" rel=\"noopener\" target=\"_blank\">County of Placer, 210 Residential Stairs handout<\/a> (R311.7.1 width 36 in; R311.7.2 headroom 6 ft 8 in; R311.7.5.1 riser 7 3\/4 in; R311.7.5.2 tread 10 in; 3\/8 in variation; R311.7.5.3 nosing 3\/4 in to 1-1\/4 in; read 2026-09-11).<\/li>\n<li><a href=\"https:\/\/www.spearfish.gov\/DocumentCenter\/View\/5233\/Residential-Deck-handout-PDF\" rel=\"noopener\" target=\"_blank\">City of Spearfish, Residential Deck Handout, 2021 IRC<\/a> (second source, same riser, tread, width and variation limits; read 2026-09-11).<\/li>\n<\/ul>\n<h3>Stringer and landing rules<\/h3>\n<ul>\n<li><a href=\"https:\/\/awc.org\/wp-content\/uploads\/2022\/02\/AWC-DCA62012-DeckGuide-1405.pdf\" rel=\"noopener\" target=\"_blank\">American Wood Council, DCA 6 Prescriptive Residential Wood Deck Construction Guide<\/a> (stringers 2&#215;12 minimum; three cut stringers; 18 in on center max; landing above 12 ft; read 2026-09-11).<\/li>\n<\/ul>\n<h3>Product<\/h3>\n<ul>\n<li><a href=\"https:\/\/apps.apple.com\/us\/app\/simplywise-cost-estimator\/id6670619664\" rel=\"noopener\" target=\"_blank\">SimplyWise Cost Estimator, App Store<\/a> (4.8 rating; verified 2026-09-09).<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<section class=\"pm__faq\">\n<div class=\"pm__inner\">\n<h2>Common questions on stairs<\/h2>\n<h3>Rise and run<\/h3>\n<details>\n<summary>How many stairs do I need?<\/summary>\n<div>\n<p>Divide total rise by your target riser height and round to the nearest whole number. A 109 in rise at a 7.5 in target is 14.53, so 15 risers.<\/p>\n<\/div>\n<\/details>\n<details>\n<summary>How many treads for 15 risers?<\/summary>\n<div>\n<p>Fourteen. A stair landing on a floor has one fewer tread than risers, because the upper floor serves as the last tread.<\/p>\n<\/div>\n<\/details>\n<details>\n<summary>How much space does a staircase need?<\/summary>\n<div>\n<p>Run is treads times tread depth. Fifteen risers at 10.5 in is 147 in, or 12 ft 3 in, plus landings.<\/p>\n<\/div>\n<\/details>\n<h3>Stringers and code<\/h3>\n<details>\n<summary>How do I calculate stringer length?<\/summary>\n<div>\n<p>Square root of total rise squared plus total run squared. For 109 in of rise and 147 in of run that is 183 in, so a 16 ft 2&#215;12 cuts one.<\/p>\n<\/div>\n<\/details>\n<details>\n<summary>What is the maximum riser height allowed?<\/summary>\n<div>\n<p>7 3\/4 in, with a 10 in minimum tread, per the code sections published in municipal handouts. The greatest riser cannot beat the smallest by more than 3\/8 in.<\/p>\n<\/div>\n<\/details>\n<details>\n<summary>Can SimplyWise price a stair build from a photo?<\/summary>\n<div>\n<p>Yes. SimplyWise Cost Estimator turns a photo into an itemized estimate in about 6 seconds, with material and labor line items. Free to try, $29.99\/mo or $239.99\/yr.<\/p>\n<\/div>\n<\/details>\n<\/div>\n<\/section>\n<section class=\"pm__final\">\n<div class=\"pm__inner\">\n<span class=\"pm__eyebrow\">Cut once<\/span><\/p>\n<h2>Turn the stair layout into a signed quote.<\/h2>\n<p>Snap a photo and get an itemized estimate in about 6 seconds. Free to try.<\/p>\n<p><a class=\"pm__btn pm__btn--lg\" href=\"https:\/\/swcostestimator.app.link\/ce-ai\" rel=\"noopener\" target=\"_blank\">SimplyWise Cost Estimator<\/a>\n<\/div>\n<\/section>\n<\/article>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"BlogPosting\",\n  \"headline\": \"Stair Calculator: Risers, Run, Stringer, and Code\",\n  \"description\": \"A stair calculator that turns total rise into riser count, exact riser height, total run, stringer length, a cut list, and a pass or fail against the published stair code.\",\n  \"author\": {\n    \"@type\": \"Organization\",\n    \"name\": \"SimplyWise\"\n  },\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"SimplyWise\",\n    \"logo\": {\n      \"@type\": \"ImageObject\",\n      \"url\": \"https:\/\/www.simplywise.com\/icon-512x512.png\"\n    }\n  },\n  \"datePublished\": \"2026-09-15\",\n  \"dateModified\": \"2026-09-15\",\n  \"mainEntityOfPage\": {\n    \"@type\": \"WebPage\",\n    \"@id\": \"https:\/\/www.simplywise.com\/blog\/stair-calculator\/\"\n  },\n  \"url\": \"https:\/\/www.simplywise.com\/blog\/stair-calculator\/\",\n  \"image\": [\n    \"https:\/\/images.unsplash.com\/photo-1768321915565-e20656edf92e?w=1400&h=700&fit=crop&q=80&auto=format\"\n  ]\n}\n<\/script><br \/>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"HowTo\",\n  \"name\": \"How to Calculate a Staircase\",\n  \"step\": [\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 1,\n      \"name\": \"Measure total rise on finished surfaces\",\n      \"text\": \"Measure floor to floor from the finished lower floor to the finished upper floor, including the finish flooring on both levels, because the finish thickness is spread across every riser.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 2,\n      \"name\": \"Set the riser count, then the riser height\",\n      \"text\": \"Divide total rise by your target riser height and round to the nearest whole number for the riser count, then divide total rise by that count for the exact riser height. Never round the riser height itself.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 3,\n      \"name\": \"Check the run against the room\",\n      \"text\": \"Tread count is one less than the riser count. Multiply tread count by tread depth for the total run, then confirm the run plus landings fits the space available.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"position\": 4,\n      \"name\": \"Confirm headroom before you cut\",\n      \"text\": \"Measure 6 feet 8 inches down from the sloped line that touches each tread nosing. Moving the floor opening above is the expensive correction, so verify it before cutting stringers.\"\n    }\n  ]\n}\n<\/script><br \/>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How many stairs do I need?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Divide total rise by your target riser height and round to the nearest whole number. A 109 in rise at a 7.5 in target is 14.53, so 15 risers.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How many treads for 15 risers?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Fourteen. A stair landing on a floor has one fewer tread than risers, because the upper floor serves as the last tread.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How much space does a staircase need?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Run is treads times tread depth. Fifteen risers at 10.5 in is 147 in, or 12 ft 3 in, plus landings.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How do I calculate stringer length?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Square root of total rise squared plus total run squared. For 109 in of rise and 147 in of run that is 183 in, so a 16 ft 2x12 cuts one.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is the maximum riser height allowed?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"7 3\/4 in, with a 10 in minimum tread, per the code sections published in municipal handouts. The greatest riser cannot beat the smallest by more than 3\/8 in.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Can SimplyWise price a stair build from a photo?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Yes. SimplyWise Cost Estimator turns a photo into an itemized estimate in about 6 seconds, with material and labor line items. Free to try, $29.99\/mo or $239.99\/yr.\"\n      }\n    }\n  ]\n}\n<\/script><br \/>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"BreadcrumbList\",\n  \"itemListElement\": [\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 1,\n      \"name\": \"Blog\",\n      \"item\": \"https:\/\/www.simplywise.com\/blog\/\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 2,\n      \"name\": \"Construction Calculators\",\n      \"item\": \"https:\/\/www.simplywise.com\/blog\/construction-calculators\/\"\n    },\n    {\n      \"@type\": \"ListItem\",\n      \"position\": 3,\n      \"name\": \"Stair Calculator: Risers, Run, Stringer, and Code\",\n      \"item\": \"https:\/\/www.simplywise.com\/blog\/stair-calculator\/\"\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Blog &nbsp;&rsaquo;&nbsp; Construction Calculators Contractor Calculator &middot; Stairs Stair Calculator: Risers, Run, Stringer, and Code Stairs start with one number: total rise, floor to floor. Set it below and the risers, run, stringer, and code check update as you type. Pricing the stair build? Estimate it from a photo in about 6 seconds. &#9733;&#9733;&#9733;&#9733;&#9733; 4.8 [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"stair calculator","_yoast_wpseo_title":"Stair Calculator: Risers, Run, Stringer, and Code","_yoast_wpseo_metadesc":"A stair calculator that turns total rise into riser count, exact riser height, total run, stringer length, a cut list, and a pass or fail against the published stair code.","_yoast_wpseo_linkdex":"71","_yoast_wpseo_content_score":"90","_yoast_wpseo_meta-robots-noindex":"","_yoast_wpseo_canonical":"","inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9451","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Stair Calculator: Risers, Run, Stringer, and Code<\/title>\n<meta name=\"description\" content=\"A stair calculator that turns total rise into riser count, exact riser height, total run, stringer length, a cut list, and a pass or fail against the published stair code.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.simplywise.com\/blog\/stair-calculator\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stair Calculator: Risers, Run, Stringer, and Code\" \/>\n<meta property=\"og:description\" content=\"A stair calculator that turns total rise into riser count, exact riser height, total run, stringer length, a cut list, and a pass or fail against the published stair code.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.simplywise.com\/blog\/stair-calculator\/\" \/>\n<meta property=\"og:site_name\" content=\"SimplyWise Cost Estimator\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-15T09:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-15T15:38:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/images.unsplash.com\/photo-1768321915565-e20656edf92e?w=1400&amp;h=700&amp;fit=crop&amp;q=80&amp;auto=format\" \/>\n<meta name=\"author\" content=\"Daniel Chinchilla\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Chinchilla\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.simplywise.com\/blog\/stair-calculator\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.simplywise.com\/blog\/stair-calculator\/\"},\"author\":{\"name\":\"Daniel Chinchilla\",\"@id\":\"https:\/\/www.simplywise.com\/blog\/#\/schema\/person\/c6b02975b13398fa4764650c8d5610ac\"},\"headline\":\"Stair Calculator\",\"datePublished\":\"2026-09-15T09:00:00+00:00\",\"dateModified\":\"2026-09-15T15:38:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.simplywise.com\/blog\/stair-calculator\/\"},\"wordCount\":1176,\"publisher\":{\"@id\":\"https:\/\/www.simplywise.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.simplywise.com\/blog\/stair-calculator\/\",\"url\":\"https:\/\/www.simplywise.com\/blog\/stair-calculator\/\",\"name\":\"Stair Calculator: Risers, Run, Stringer, and Code\",\"isPartOf\":{\"@id\":\"https:\/\/www.simplywise.com\/blog\/#website\"},\"datePublished\":\"2026-09-15T09:00:00+00:00\",\"dateModified\":\"2026-09-15T15:38:01+00:00\",\"description\":\"A stair calculator that turns total rise into riser count, exact riser height, total run, stringer length, a cut list, and a pass or fail against the published stair code.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.simplywise.com\/blog\/stair-calculator\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.simplywise.com\/blog\/stair-calculator\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.simplywise.com\/blog\/stair-calculator\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.simplywise.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Stair Calculator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.simplywise.com\/blog\/#website\",\"url\":\"https:\/\/www.simplywise.com\/blog\/\",\"name\":\"SimplyWise Cost Estimator\",\"description\":\"Blog\",\"publisher\":{\"@id\":\"https:\/\/www.simplywise.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.simplywise.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.simplywise.com\/blog\/#organization\",\"name\":\"SimplyWise Cost Estimator\",\"url\":\"https:\/\/www.simplywise.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.simplywise.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.simplywise.com\/blog\/wp-content\/uploads\/2026\/08\/simplywise-logo-512x512-1.png\",\"contentUrl\":\"https:\/\/www.simplywise.com\/blog\/wp-content\/uploads\/2026\/08\/simplywise-logo-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"SimplyWise Cost Estimator\"},\"image\":{\"@id\":\"https:\/\/www.simplywise.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.crunchbase.com\/organization\/simplywise\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.simplywise.com\/blog\/#\/schema\/person\/c6b02975b13398fa4764650c8d5610ac\",\"name\":\"Daniel Chinchilla\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.simplywise.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b1ee77005dde5ba597d7ae9e0e68fa11a123fd406740e5e70c7c1ed738d177f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1b1ee77005dde5ba597d7ae9e0e68fa11a123fd406740e5e70c7c1ed738d177f?s=96&d=mm&r=g\",\"caption\":\"Daniel Chinchilla\"},\"url\":\"https:\/\/www.simplywise.com\/blog\/author\/daniel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Stair Calculator: Risers, Run, Stringer, and Code","description":"A stair calculator that turns total rise into riser count, exact riser height, total run, stringer length, a cut list, and a pass or fail against the published stair code.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.simplywise.com\/blog\/stair-calculator\/","og_locale":"en_US","og_type":"article","og_title":"Stair Calculator: Risers, Run, Stringer, and Code","og_description":"A stair calculator that turns total rise into riser count, exact riser height, total run, stringer length, a cut list, and a pass or fail against the published stair code.","og_url":"https:\/\/www.simplywise.com\/blog\/stair-calculator\/","og_site_name":"SimplyWise Cost Estimator","article_published_time":"2026-09-15T09:00:00+00:00","article_modified_time":"2026-09-15T15:38:01+00:00","og_image":[{"url":"https:\/\/images.unsplash.com\/photo-1768321915565-e20656edf92e?w=1400&amp;h=700&amp;fit=crop&amp;q=80&amp;auto=format"}],"author":"Daniel Chinchilla","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Daniel Chinchilla","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.simplywise.com\/blog\/stair-calculator\/#article","isPartOf":{"@id":"https:\/\/www.simplywise.com\/blog\/stair-calculator\/"},"author":{"name":"Daniel Chinchilla","@id":"https:\/\/www.simplywise.com\/blog\/#\/schema\/person\/c6b02975b13398fa4764650c8d5610ac"},"headline":"Stair Calculator","datePublished":"2026-09-15T09:00:00+00:00","dateModified":"2026-09-15T15:38:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.simplywise.com\/blog\/stair-calculator\/"},"wordCount":1176,"publisher":{"@id":"https:\/\/www.simplywise.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.simplywise.com\/blog\/stair-calculator\/","url":"https:\/\/www.simplywise.com\/blog\/stair-calculator\/","name":"Stair Calculator: Risers, Run, Stringer, and Code","isPartOf":{"@id":"https:\/\/www.simplywise.com\/blog\/#website"},"datePublished":"2026-09-15T09:00:00+00:00","dateModified":"2026-09-15T15:38:01+00:00","description":"A stair calculator that turns total rise into riser count, exact riser height, total run, stringer length, a cut list, and a pass or fail against the published stair code.","breadcrumb":{"@id":"https:\/\/www.simplywise.com\/blog\/stair-calculator\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.simplywise.com\/blog\/stair-calculator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.simplywise.com\/blog\/stair-calculator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.simplywise.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Stair Calculator"}]},{"@type":"WebSite","@id":"https:\/\/www.simplywise.com\/blog\/#website","url":"https:\/\/www.simplywise.com\/blog\/","name":"SimplyWise Cost Estimator","description":"Blog","publisher":{"@id":"https:\/\/www.simplywise.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.simplywise.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.simplywise.com\/blog\/#organization","name":"SimplyWise Cost Estimator","url":"https:\/\/www.simplywise.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.simplywise.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.simplywise.com\/blog\/wp-content\/uploads\/2026\/08\/simplywise-logo-512x512-1.png","contentUrl":"https:\/\/www.simplywise.com\/blog\/wp-content\/uploads\/2026\/08\/simplywise-logo-512x512-1.png","width":512,"height":512,"caption":"SimplyWise Cost Estimator"},"image":{"@id":"https:\/\/www.simplywise.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.crunchbase.com\/organization\/simplywise"]},{"@type":"Person","@id":"https:\/\/www.simplywise.com\/blog\/#\/schema\/person\/c6b02975b13398fa4764650c8d5610ac","name":"Daniel Chinchilla","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.simplywise.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1b1ee77005dde5ba597d7ae9e0e68fa11a123fd406740e5e70c7c1ed738d177f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b1ee77005dde5ba597d7ae9e0e68fa11a123fd406740e5e70c7c1ed738d177f?s=96&d=mm&r=g","caption":"Daniel Chinchilla"},"url":"https:\/\/www.simplywise.com\/blog\/author\/daniel\/"}]}},"_links":{"self":[{"href":"https:\/\/www.simplywise.com\/blog\/wp-json\/wp\/v2\/posts\/9451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.simplywise.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.simplywise.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.simplywise.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.simplywise.com\/blog\/wp-json\/wp\/v2\/comments?post=9451"}],"version-history":[{"count":3,"href":"https:\/\/www.simplywise.com\/blog\/wp-json\/wp\/v2\/posts\/9451\/revisions"}],"predecessor-version":[{"id":9468,"href":"https:\/\/www.simplywise.com\/blog\/wp-json\/wp\/v2\/posts\/9451\/revisions\/9468"}],"wp:attachment":[{"href":"https:\/\/www.simplywise.com\/blog\/wp-json\/wp\/v2\/media?parent=9451"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.simplywise.com\/blog\/wp-json\/wp\/v2\/categories?post=9451"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.simplywise.com\/blog\/wp-json\/wp\/v2\/tags?post=9451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}