River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Newsroom Editorial Calendar Template

The stage chain behind every publication date, worked backwards, so the stories that cannot make their slot are named today rather than in the slot week.

Free download  ·  No account needed

An editorial calendar template is a grid of publication dates: story, writer, section, publish-on, status. It reports every story as on schedule right up to the week that story was meant to run, and then reports a miss. A date sitting on its own has nothing behind it that anything can test. So this pack builds the stage chain between assignment and publication first, gives every stage an elapsed duration and an owner, and produces dates last.

Then it works backwards. It walks each chain in reverse, from the slot date to the stage the story sits in now, and returns the last day that stage could start and still make the slot. It ships filled in for The Halstead Ledger, an invented regional daily reading its Q2 schedule on Monday 6 April 2026: 41 features, 48 slots, 12 weeks. The date view showed four stories visibly behind. The backwards pass showed 15 past the point of no return, 11 of them invisible on the grid.

The second join decides what to do about it. Five of the eight stages belong to a shared desk with a fixed number of hours a week, so the pack sums what each desk is owed per week against what it has. The checking desk was owed 243.2 hours for the quarter against 264 available, a comfortable 0.92x, while five of its twelve weeks were over capacity and week one ran at 1.83x. Ten slot moves brought every week inside capacity, and one story had no week left in the quarter.

41 stories, 48 slots, and the 15 that were already out of time on day one

The Calendar, the Assignment Register, the Capacity View and the Schedule Recovery Note.

Assignment Register, sorted by slack

The Halstead Ledger reading its Q2 feature schedule on Monday 6 April 2026. 41 commissioned features, 48 slots, 12 weeks, an eight stage chain. Latest start is the last day the current stage could begin and still make the slot. The ten worst rows, then the four the desk looks at next.

IDStorySlotStage nowLatest startSlackChain leftVerdict
A-06Downtown parking garage debtwk 2Reporting2026-03-02-25d35dImpossible
A-01Emergency housing contract renewalswk 1First draft2026-03-20-11d16dImpossible
A-26Rental inspection failureswk 5Reporting2026-03-23-10d35dImpossible
A-16Farmworker heat ruleswk 4Reporting2026-03-25-8d28dImpossible
A-19Bridge inspection deferralswk 4Reporting2026-03-25-8d28dImpossible
A-05Nursing home inspection backlogwk 2First draft2026-03-27-6d16dImpossible
A-02County transit fare risewk 1Developmental edit2026-03-30-5d10dImpossible
A-04Water board rate settlementwk 1Developmental edit2026-03-30-5d10dImpossible
A-07Sheriff overtime spendingwk 2First draft2026-03-30-5d15dImpossible
A-03School bus driver shortagewk 1Revision2026-04-01-3d8dImpossible
A-28Community college transferswk 6Reporting2026-04-060d30dStarts today or never
A-08Charter school enrolment auditwk 2Revision2026-04-08+2d8dAt risk
A-14Library branch closureswk 3Developmental edit2026-04-13+5d10dAt risk
A-11Airport concession contractswk 3Copyedit2026-04-23+13d2dOn track

A-06 is the shape of the whole problem. It is a week two story, so nothing about its row looks wrong on a date grid and nobody has flagged it. Its remaining chain needs 35 working days and there are 10 before the slot, which puts it 25 days past the point of no return on the morning the calendar was read. A-33 fails the same way out in week seven: 37 days of chain against 35 available.

What the two passes found

The same 41 stories, read four ways. Only the first is available from a grid of publication dates.

1. What the publication-date view shows

ReadingStories
Visibly behind today4
Look on schedule37

2. What the backwards pass shows

ReadingStoriesMeaning
Already past the latest start15Cannot make the slot however hard anybody works
Of those, invisible on the date view11The gap between the two readings
Slack of five days or fewer3One interruption at any stage takes it out
Real slack23Should stop coming up in the weekly meeting

3. Slot contention, asked three ways

QuestionAnswer
Slots in the quarter48
Stories commissioned41
Spare slots in aggregate7
Weeks oversubscribed4 (weeks 2, 3, 4 and 5)
Stories with no slot in their own week6
Stories with no slot in their own section and week6
Empty slots in weeks 7 to 1213

Two long reads were aimed at the same Sunday in week two, and two more at the same Sunday in week four. The Sunday long read is one slot a week whatever the weekly total says, so the aggregate headroom of seven slots is not the constraint anybody is hitting. A front-loaded quarter with an empty back half is a commissioning habit, and the fix for it sits upstream of the calendar.

4. The capacity join, and the way an aggregate lies

DeskHours a weekQuarter owedQuarter availableRatioWeeks over
Checking desk22.0243.22640.92x5 of 12
Assigning editors18.072.02160.33x1 of 12
Copy desk14.061.51680.37x0 of 12
Outside counsel6.024.0720.33x0 of 12
Production10.020.51200.17x0 of 12

5. The binding desk, week by week

WeekOwedAvailableRatioFact-checks queued
140.422.01.83x6
234.522.01.57x6
433.122.01.50x5
827.622.01.25x4
626.322.01.20x4
114.822.00.22x1

Week one runs at 1.83x because six fact-checks land there and the two largest are 81 and 74 assertion pieces. The desk prices the stage at 0.11 hours per checkable assertion off its own timings, so those two alone are 17.1 hours of a 22 hour week. Priced per story instead, week one would have looked ordinary. The assigning editors sit at 0.33x for the quarter, which is the number that says another editor would change nothing.

Schedule recovery

Over-capacity weeks worst first, moving the stories with the most slack rather than the ones furthest behind, each into the earliest later week whose remaining headroom fits its hours.

WeekOwed beforeOwed afterAvailableAfter
140.419.522.0Fits
234.518.722.0Fits
321.721.722.0Fits
433.122.022.0Fits
515.420.022.0Fits
626.321.322.0Fits
715.519.622.0Fits
827.621.522.0Fits
99.114.222.0Fits
109.218.622.0Fits
114.821.822.0Fits
125.515.522.0Fits

What the moves cost

OutcomeCountWhose decision
Stories moved to a later slot10Scheduling
Stories with no week left in the quarter1Commissioning, not scheduling
Weeks still over capacity0
Weeks any other desk is newly pushed over0Checked on all five desks
Peak week on the binding desk40.4 to 22.0Against 22.0 available

The story with nowhere left to go is A-03, which is also three days past its own latest start, so it was never going to run in week one either way. It has three available answers and none of them is a new date: run it in Q3, cut it, or buy the checking desk a week of freelance capacity. That is the managing editor's call and it goes on the row with a name against it. Every moved story keeps its original slot in the row beside the new one, because a schedule that reflows silently is a schedule nobody can audit next quarter.

What's in the pack

01

Workflow Note, with two numbers on every stage

Elapsed working days and owner hours, recorded separately, because they are different numbers. A fact-check that takes three days on the calendar can book three hours of one checker's week or ten and a half.

02

Assignment Register, carrying the backwards pass

Draft due, developmental edit due, fact-check due with its hours, copyedit due, legal read due, lock. Then the latest day the stage the story is in now could have started, and the slack against today.

03

The already-impossible count

Stories whose latest start has passed, so no amount of effort makes the slot. It is arithmetic rather than a judgement, and it is available on the morning you read the calendar.

04

Slack ranking, which is the actual work queue

Sorted by days remaining until the point of no return. It does not run in publication order: a week two story in revision can have more room than a week seven story still reporting.

05

Capacity View, one row per desk per week

Hours owed against hours available, with the ratio and that week's queue listed by story id. The quarter total sits beside the weekly peak, so a quarter that fits while five weeks do not is visible on one line.

06

Calendar, with the slot count asked three ways

Aggregate, by week, and by week and section. Forty-one stories against 48 slots fits with seven spare, and six of them still had no slot in their own week. A Sunday long read is one slot whatever the weekly total says.

07

Assignment Brief Format, so the chain has inputs

The estimated assertion count, the reply window, whether counsel has to read it. Each one is a stage somebody outside the desk owns, each is knowable at commission, and each is normally discovered in the slot week. On commissioned work the chain starts in the freelance brief.

08

Schedule Recovery Note and one space rule

The moves, roomiest stories first, with the original slot kept on every row. Plus the rule every prompt reads: work backwards, never quote a quarter total without the weekly series, and no stage gets dropped without a name against it. A one-off project like a CMS migration needs its own slot here too, not an assumption that the desk absorbs it for free.

How to use it

  1. 1

    Open it in River, or download it

    Open the pack and let the agent build the chain and run both passes, or download the blank sheets and docs and do it by hand. The template library has the rest of the desk's packs.

  2. 2

    Send the stages, not just the dates

    Your pipeline with whatever slot dates exist, then what actually happens to a piece between commission and publication, with an elapsed duration and an owner on every stage.

  3. 3

    Then the number nobody has written down

    How many hours a week each shared desk can give features, net of the work already theirs. A copy desk mostly producing the daily paper is not available for 37 hours of feature copy.

  4. 4

    Read the impossible list before the calendar

    Work the slack ranking from the top and give every impossible story a named decision rather than a new date. Then move the roomiest stories out of the weeks that break.

Frequently asked questions

Is this template free?

Yes. Download the whole pack as Word documents and CSV sheets, with no signup and no credit card. "Edit with AI" is a separate, optional path for anyone who wants the agent to build the stage chain and run the two passes over a real pipeline. Nothing happens until you send it one.

How is this different from an editorial calendar template?

A calendar template stores publication dates, so it can only tell you a story is late once the date has gone. This models the stages behind each date and walks them backwards, which turns lateness into arithmetic you can read today. The output is a count, not a colour.

What if we do not track which stage each story is in?

Then start there, because the backwards pass has nothing to walk back to. It is one column on the pipeline and it is the cheapest change on this page. Without it, every verdict in the register is somebody's guess about a story dressed up as a date.

Why price the fact-check per assertion rather than per story?

Because it is the widest-varying stage in the chain, and the weeks that break usually break because two large checks landed together. The worked desk timed its own last 20 stories at 0.11 hours per checkable assertion, so its widest piece cost 10.6 hours and its narrowest 3.2.

Is a right of reply really a scheduling problem?

It is elapsed days owned by somebody who does not work for you, which is the definition of one. The BBC's fairness guidelines treat a right of reply as the norm where output alleges wrongdoing against an identifiable party. Reaching that party is contact work the source pack tracks.

Why does the legal read get its own stage?

Because counsel is a shared resource with a few hours a week for the whole title, so it queues like any other desk. The Reporters Committee's guide to pre-publication review notes that including the subject's response, even a no comment, helps the defence, and a response has to be sought in time to include.

Where does this sit in the rest of the desk's work?

It schedules the stages the other packs perform. The fact-check pass is one stage on the chain and copyedit and style is another. A recurring newsletter runs on its own weekly rhythm, which the newsletter pack schedules separately. Reporting that waits on records has no estimable start date at all until the request lands, which the FOIA pack clocks.

Find out what is already impossible

Download the blank Calendar, Assignment Register and Capacity View as Word and CSV files, or open this pack in River and let the agent run the backwards pass over your own pipeline.

Edit with AI