Ordering the Product Backlog by ROI

The Scrum Guide says that the Product Owner is the sole person responsible for managing the Product Backlog and that Product Backlog management includes ordering items in the Product Backlog “to best achieve goals and missions”. One of the best ways to do that is to order based on the principle of Return on Investment (ROI). This is simply the numeric business value divided by the numeric effort (e.g. story points). This may sound easy, but it’s not – mostly because Product Owners don’t track (or even know how to track) business value. #ThisIsSad.

Let’s ignore for a moment that business value (BV) is a unicorn measurement (along with productivity, technical debt, and a few others). We also have to assume that your Product Owner has found a way to determine the relative business value of items in the Product Backlog. Maybe he or she is using the MoSCoW method, having stakeholders spend 100 virtual dollars, or some other technique. Another option is to craft and use a custom Fibonacci list of values. I like to add two zeroes to make it look more “valuey”.

Next, be sure to track Business Value and Effort for each Product Backlog Item (PBI). I recommend using the Scrum process template to do this (since it’s the only one that has a BV field). I also recommend not using the Bug work item type, as it doesn’t have a BV field and can’t compute ROI. Just use PBI work items for everything, adding a “Bug” tag if you must.


You can ignore the Priority field. You can also ignore the Value Area field. In fact, there are many fields (and capabilities) that you can ignore when practicing Professional Scrum.

It can be helpful to display the Business Value column while you are managing the Product Backlog …


Once all of the PBIs have values in their Business Value and Effort fields, you can create a new query (to be opened in Excel) …


Next, manually add a new “ROI” column to the right of the query results …

This column won’t map to any field in the PBI work item.

Next, paste the formula into all of the ROI cells that divide the Business Value cell by the Effort cell (e.g. “=D3/E3”) …


Make sure the formula is replicated down all the rows …


Next, turn off the Filter and sort on ROI in descending order …


Next, add the Backlog Priority column and enter a series of numbers from 1 to n. You can do this by entering 1 in the first cell and 2 in the second cell and then selecting those two cells and dragging the fill handles down the range you want. The sheet should now look something like this …


Next, Publish the changes back, return to the browser, press F5, and notice the newly ordered Product Backlog based on ROI!

Keep in mind that this is a one-time ordering of the Product Backlog. The computed ROI “column” only exists in the Excel workbook – which you can save if you want, so that later you can open it, click Refresh, and make any changes you need to. Also, your neat Backlog Priority values (1 to 24 in the above image) will be changed and re-sparsified the next time the Product Owner drags and drops to change the order in the Backlog page.

There are many ways a Product Owner may order the Product Backlog by: priority, risk, dependency, learning opportunity, and others. Order the backlog simply based on their gut feeling is perfectly fine too. The proof will be in the Increment.


Leave a Reply

Your email address will not be published. Required fields are marked *