Issue Log Template: How to Write One, and Operating Rules That Keep It Alive
Published:
Last Updated:
Category: Campaign Management
Published:
Last Updated:
Category: Campaign Management

Authors: Shusaku Yosa
Most project delays are not caused by unforeseen accidents. They are caused by issues everyone had noticed but nobody moved on. An issue log is the minimum mechanism for preventing that. This article covers the column structure you can use as-is, the rules for writing entries, how to set priority, and — the hardest part — how to build operating rules that keep the log from being abandoned.
An issue log is a table that lists the issues arising during a project and tracks each one through to resolution, tying it to an owner, a due date and a status. Three things are easily confused, so it is worth separating them up front.
The dividing line is whether the answer is already decided. "Produce the artwork files" is a task; "we cannot produce the artwork files because nobody knows who to ask about image rights" is an issue. Mix the two into one table and the issues disappear under the sheer volume of tasks. Making it a rule that a risk moves into the issue log once it materialises also keeps the relationship between the two tables clear.
Twelve columns are the minimum, and also close to the maximum. The more fields you add, the less often the log gets updated, so we recommend not going beyond this.
The column most often dropped is impact, and an issue log without it will almost certainly become a formality. Priority turns subjective, and everything ends up marked high.
A bad entry reads "about the homepage design". A good one reads "decide whether the homepage hero goes with option A or option B". Write to a level of detail where one line tells the reader what to do next. Any issue phrased as "about X" will almost certainly be left alone.
Write it in terms of the work that stops and the days involved: "until this is decided we cannot start implementation, and launch slips by three working days". When this is concrete, priority discussions stop being a contest of opinions, and the same line doubles as escalation material.
"Everyone involved" or "the production team" is the same as nobody. Even when the decision itself sits with another department, name one person on your own team responsible for extracting an answer from them. What goes in the owner column is not the person who resolves the issue but the person accountable for moving it.
The less visibility you have on an issue, the less possible it is to set a resolution date — which is exactly why the field ends up blank and the issue gets forgotten. Enter the deadline for the next move instead: "send the question to legal by the 8th". That way even unresolved issues always carry a date, and slippage can be detected mechanically.
Priority is decided on two axes, impact and urgency. If you want a single test, it is whether the issue stops work on the critical path.
As a running check: once more than thirty percent of open issues are marked high, priority has stopped functioning. Either tighten the criteria, or suspect that the issues themselves have not been separated properly.
Almost every failure of an issue log comes down to one thing: it was created and then never updated. The operating rules matter more than the format of the table.
Fix the first ten minutes of the weekly meeting as issue review, and put that slot in the calendar on the same day you create the log. "Whoever notices updates it" is not an operating rule.
Use conditional formatting to turn unresolved rows past their due date red. The formulas below assume the raised date is in column B, the due date in column J and the status in column K.
=AND($J2<>"", $J2<TODAY(), $K2<>"Done")
To catch rows that have not moved in more than thirty days since being raised, add the following as a separate rule.
=AND($B2<>"", TODAY()-$B2>30, $K2<>"Done")
The most dangerous status is "on hold". It is the classic parking space where a deferred decision quietly gets forgotten. Make it mandatory to enter a review date in the due date column whenever something goes on hold. An on-hold issue with an empty date is, in practice, an issue that has disappeared.
Close on "the impact is gone", not on "we did something about it". Believing an issue is handled while its impact persists is exactly how the same problem comes back under a different name. Leaving one line for the closed date and outcome lets you trace the history if it does recur.
Set a rule at the start, along the lines of "any high-priority issue more than a week past its due date goes to the decision maker at the next meeting". Without a trigger, whether to escalate becomes a question of an individual's willingness to raise their hand, and it will always be late.
Without a bar for raising issues, passing worries end up on the list too. Setting the bar at "something the owner cannot move forward on their own judgement alone" brings the volume back to a sensible level.
A row that has said "in progress" for two months is, in practice, not started. Status is not evidence of progress. Manage by due date and raised date instead.
Cancel one weekly meeting and the log sits still for a fortnight. Keep it on a shared drive with edit access for everyone, so anyone can raise an issue the moment they notice it.
An issue log works perfectly well in a spreadsheet for a single project. Management costs climb sharply, though, once any of the following is true.
Xtrategy keeps issues in the same place as campaign schedules, budget and KPIs, so you can trace after the fact what caused a plan to drift. For managing work at the campaign level, see also the marketing campaign management template.

How to build a task tracker in Excel, how it differs from a WBS, Gantt chart and issue log, the nine-column layout, the ...

A step-by-step guide to building a Gantt chart in Excel or Google Sheets: the column layout you can reuse as-is, the con...

A five-step method for building a work breakdown structure, a column layout and sample hierarchy you can copy, and four ...