← Public roadmap

Product roadmap template, a CSV for Excel and Google Sheets

Here is the product roadmap template as a file. It opens in Excel, in Google Sheets, in Numbers and in anything else that reads a spreadsheet, because a CSV is text and every one of them imports it without asking.

Heading,Description,Status,Effort,Votes,Comments,Views,Demand,Priority,Target,Release,Tags
Search the board by request title,Customers scroll the whole list to check for a duplicate and file one anyway,In Progress,2,41,6,370,,,Q4,2.5,search
Export voters and what they pay as a CSV,Finance asks for this once a quarter and it is copied by hand,In Review,1,28,3,210,,,Q4,2.5,export
Single sign on for the public board,Enterprise buyers ask in the first call and it stalls the deal,Suggested,5,62,14,540,,,Q1,,auth
Dark theme for the public board,Asked for often and by nobody who would leave over it,Suggested,3,19,2,160,,,,,theme
Merge duplicate requests,Two rows for one idea split the votes and hide the demand,Completed,2,35,8,290,,,Q3,2.4,triage

Take the file. It may be copied, changed and used commercially with no attribution and no link back.

Why are the demand and priority columns empty?

Because a spreadsheet should work them out, and a file cannot.

A CSV carries values and not formulas, so shipping those two columns filled in would ship numbers that go stale the moment you edit a vote count. Paste these two into the first data row instead and fill them down.

H2  =E2*3 + F2*2 + ROUND(G2*0.1, 0)
I2  =IF(D2>0, ROUND(H2/D2, 0), "")

If your spreadsheet separates arguments with semicolons rather than commas, which depends on your regional settings rather than on the program, swap them.

That first formula is the demand score our own board calculates. A vote counts for three, a comment for two, and a view for a tenth of one, because a vote is somebody committing, a comment is somebody arguing, and a view is somebody glancing.

The second divides demand by effort, which is the part that changes the order.

The demo board is open with no account if you would rather see the finished thing than the generator.

What do the two extra columns actually change?

The order, and usually more than the votes do.

Take two rows from the file above. Single sign on has sixty two votes, fourteen comments and five hundred and forty views, which works out at a demand of two hundred and sixty eight, the highest on the sheet.

The CSV export has twenty eight votes, three comments and two hundred and ten views, for a demand of one hundred and eleven, which is not close.

Now divide by effort. Single sign on is a five, so it scores fifty four. The export is a one, so it scores one hundred and eleven and goes first.

That is the whole argument for keeping an effort column at all. The loudest request is frequently the most expensive one, and a roadmap ranked on votes alone will spend a quarter on it while five cheaper things that people also wanted sit untouched.

The same problem has a name when the loud request comes from a small group.

The effort column is a number from one to five, meaning extra small, small, medium, large and extra large. Those are our own labels, and the sizes behind them are a few hours, a few days, about a week, a few weeks, and a month or more.

Leave it at zero when you have not estimated something and the priority formula leaves the cell blank rather than pretending.

Is there an Excel or PDF version?

No. The template above is text, and it pastes into a spreadsheet in one action.

A real xlsx is a zip full of XML, and nobody in this repository could read the diff before it went out. A CSV costs you one extra step, which is opening it, and both Excel and Sheets do that without complaint. What you lose is the formulas, which is why they are printed above instead.

What makes a roadmap template stop being used?

Nothing about the template. The second copy of the data.

A roadmap sheet is a snapshot, and the requests keep arriving after you save it. Within a month the sheet and the actual list disagree, somebody notices, and the sheet stops being opened rather than being fixed. Every roadmap document that ever died, died of this.

The columns in the file are the ones a board keeps as it goes. Status, effort, votes, comments and views all sit on the request itself, so the ordering is a property of the list rather than a document somebody maintains beside it.

The feature request template is the other half of this, and the release notes template is the third.

Related reading

Feature request template, in Markdown, HTML and as a GitHub form A public roadmap your visitors can use without an account RICE scoring, and the four guesses it asks you for