🎯 DEMO VERSION — some data is view-only and capped (Teams, PI Periods, Sprints, team members) — not everything is fully functional here.
SAFe Capacity Planner
Untitled plan ✓ Saved
⠿

Teams

NameMembers
⠿

Roles

NameMembers
⠿

Countries

NameMembers

Each country gets its own public-holiday row in the Public Holiday Setup tab — members from that country inherit it automatically unless they have their own override. Manage each country's actual holiday dates there ("Set Up Public Holidays" and the calendar below it).

⠿

Absence Types

CodeLabelPublic HolidayVacationCounts as present

"Counts as present" means the day still shows on the calendar with this type's color/code, but it's treated as a normal worked day and doesn't reduce capacity at all — use it for things like a compressed-schedule day off that's compensated with extra hours elsewhere in the week. Leave it unchecked for a normal absence that should deduct from capacity. "Public Holiday" marks the one absence type that country rows toggle in the calendar — check it on whichever type you use for public holidays, regardless of its code or label; checking it on one type automatically unchecks it everywhere else. "Vacation" marks the one absence type Vacation Setup's cards write, the same way.

⠿

Team Roster

A person can appear in more than one row — e.g. split across two teams at once, or moved from one team to another. Start/End define when that specific assignment applies (leave blank for "always") — or pick a PI/Sprint in the PI/Sprint column to follow that period's dates automatically instead of typing them. Total FTE across a person's overlapping assignments can't exceed 1 (enforced); below 1 is fine (e.g. part-time) — see notes below the table.

Name Person Team Role FTE PI / Sprint Start End Country
⠿

PI Periods & Sprints

⠿

Live Preview

👁 Read-only

Set Up Public Holidays

Opens (or creates) a card for that country and year, any year from 2000-2100. Add dates by hand, or use "Import PH Excel" inside the card to load a prepared list. You can prepare a card for a country before it's actually part of the project — it won't show in Live Preview until you also add it in Plan Setup > Countries (or click "+ Add to Countries" in the list below).

Configured Countries

Country / YearPH DaysLast modified

Live Preview

✎ Sets Public Holiday

Set Up Vacations

Opens (or creates) a card for that person and year, any year from 2000-2100. Add dates by hand, or use "Import Vacation Excel" inside the card to load a prepared list — Saturdays, Sundays, and a day that's already a Public Holiday for this person's country are never accepted, by hand or by import. A person with more than one Team Roster row (e.g. split across two teams) still gets one card — saving it marks the days on every row they own.

Configured Members

Member / YearVacation DaysLast modified

Live Preview

✎ Sets Vacation

Effort & Net Capacity

Capacity (person-days) = (working days in the PI − deducted absence days) × FTE, shown as "achieved / max possible". Absence types marked "Counts as present" don't reduce it at all — the day counts as fully worked.

Live Preview

✎ Sets other absence types

Add a section

Builds a filtered slice of the project — pick a PI, optionally narrow to specific sprints/teams/roles. Uncheck "Locked" on a section below to stage edits to Vacation/other absence types (Public Holiday always stays read-only, edited only from Public Holiday Setup).

No pending changes
Edits made below are staged only — nothing changes in the project until you click Save.

Demo Data

Load a fully populated example plan to explore the app — teams, public holidays, vacations, and more, all filled in.

How it all fits together

This app calculates each person’s real, plannable capacity for a Program Increment (PI) automatically — you set up who and when once, layer in public holidays, vacations, and other absences, and every calendar, report, and export updates on its own.

Recommended order, top to bottom in the tabs:

  1. Plan Setup — teams, roles, countries, absence types, your roster, and the PI/Sprint calendar itself.
  2. Public Holiday Setup — each country’s holidays, inherited automatically by everyone assigned there.
  3. Vacation Setup — planned time off, per person.
  4. Effort & Net Capacity — fine-tune with partial-day deductions and see the real numbers, per sprint and rolled up.
  5. Live Preview — build a filtered view to present or share.

Nothing here is one-way: go back and adjust Plan Setup at any point and everything downstream recalculates.

1. Plan Setup — the foundation

This is where every other page gets its data from — get it right here first.

  • Teams and Roles — simple named lists with a color, used everywhere else.
  • Countries — which countries your people work from; each one gets its own Public Holiday calendar.
  • Absence Types — the short codes you’ll see on calendars (e.g. PH, A, TR), each with a color and a "counts as present" flag for compressed-schedule days that shouldn’t reduce capacity.
  • Team Roster — one row per person per assignment: team, role, country, FTE, and a date range (typed by hand, or linked to a PI/Sprint so it follows that period’s dates automatically). A person can have more than one row — split across teams, or moved partway through the year.
  • PI Periods & Sprints — your actual planning calendar: each PI’s start/end date and its sprints.

Input: names, colors, FTE, and date ranges you type in. Output: the roster and calendar every other tab builds on — plus a read-only Live Preview at the bottom of this tab showing it all laid out already.

Plan Setup tab: Teams and Roles cardsTeam Roster table with FTE, PI/Sprint link, and Start/End columns

2. Public Holiday Setup

Add each country’s public holidays for whichever years you need — click a date directly on the calendar, or use "Import PH Excel" to load a prepared list. Every member assigned to that country inherits its holidays automatically; you never mark them one person at a time.

Input: a country, a year, and specific dates. Output: those dates show as PH everywhere in the app (every calendar, every report) and are excluded from that country’s people’s capacity automatically.

Public Holiday Setup: builder form and Configured Countries list

3. Vacation Setup

Same idea as Public Holiday Setup, but per person instead of per country — add planned vacation days for each team member, by hand or via "Import Vacation Excel." Weekends and that person’s own country’s public holidays are never accepted as vacation, by hand or by import — there’s nothing to mark on those days.

Input: a person, a year, and specific dates. Output: those days reduce that person’s Net Capacity in Effort & Net Capacity, shown as A (Absence/Vacation) everywhere.

Vacation Setup: builder form and Configured Members list

4. Effort & Net Capacity

This is where the real numbers live. For every sprint, each person’s Capacity (working days × FTE, after holidays and vacation) shows as "achieved / max possible." You can additionally type in Effort — time spent on things that aren’t a full-day absence (a training afternoon, a few hours of support work) — sprint by sprint, per person; Net = Capacity − Effort.

Totals roll up automatically by team, by team-and-role, and as one Grand Total for the whole project, each with a utilization percentage next to the total.

Input: manual Effort entries where relevant. Output: the real, plannable capacity numbers for the PI, ready to compare against what the team is committing to.

Effort & Net Capacity: By Team table with Capacity/Effort/Net columns

5. Live Preview

Build your own filtered views for sharing or presenting — pick a PI, optionally narrow to specific sprints, teams, or roles, and you get a calendar plus a stats panel (members, total FTE, net/max capacity, utilization, a days-by-type breakdown) for just that slice.

Sections are Locked by default (read-only, safest for presenting). Uncheck "Locked" to stage edits to Vacation or other absence types right from the section’s own calendar — Public Holidays always stay read-only here, edited only from Public Holiday Setup. Staged edits don’t touch your real project until you click "Save changes and propagate to project" at the bottom of the page.

Live Preview: Add a section builder and a locked section with its calendar and stats panel

Saving your project

Everything lives in one file, managed from the File menu (top left): New starts a blank plan, Open… loads an existing file, Save / Save As… writes it back to disk. The app also autosaves a draft locally in your browser as a safety net, offered back to you if you reopen without having saved.

A plan’s status (top right) is Draft while you’re working on it; switch it to Final to lock every input against further edits. Undo/Redo (the two arrows next to File) covers most edits, including a full staged-edits propagate from Live Preview, in one step.

File menu open, showing New, Open, Save, Save As, Export .xlsx, Export CSV

Importing and exporting Excel

Every list in Plan Setup (Teams, Roles, Countries, Absence Types, Team Roster), plus Public Holiday and Vacation Setup, has its own Download … Excel Template + Import … Excel pair — download the blank template (pre-filled with valid values where relevant, e.g. a "Valid values" sheet listing your current Teams/Roles/Countries), fill it in your own spreadsheet software, then import it back. The app always shows a preview of what it found before committing anything.

Each Live Preview calendar also has its own Download Excel (plain .xlsx, typed numbers) and Download Colored (.xls) (matches the on-screen colors) buttons. For the whole project at once, use File → Export .xlsx or Export CSV.

Team Roster’s Download Template and Import Excel buttons

Get the Full Version

You're exploring the free DEMO of SAFe Capacity Planner — every tab and feature is here to try, but building a plan from scratch is capped (3 PI Periods, 4 Sprints per PI, 3 Teams, 3 members per Team), and the built-in Restore Demo Data plan is fully view-only.

The full version removes every cap and lets you edit, save and reopen your own plans freely — same single self-contained HTML file, no account, no subscription, works fully offline.

Want to see it in action first, or go straight to getting your own copy?

SAFe Capacity Planner

Built by LeanDigital.

Thank you for getting SAFe Capacity Planner — I hope it takes some of the planning grind off your hands and frees up more time for the work that actually matters to your team.

About me: Passionate about process improvement and building tools that boost efficiency. Your support helps me keep creating and improving these projects. Thank you!

This is very much a living project — more features and improvements are on the way, shaped directly by feedback from people like you.

Found a bug? I'd love to hear about it — reach out via email or LinkedIn below.

Let's connect on LinkedIn, and if this tool is useful to you, a like on the LeanDigital page means a lot!