How to Calculate Your Post’s Return on Investment (ROI)

ROI Analysis helps content marketing teams see what content is working best, and provides hard (or soft) numbers to stakeholders and the business.

Under the Post Analytics menu item, click on the Post ROI menu item.

What you’ll see when you first load the page is a lot of default values and estimates – at the top some summary numbers, and in the table below – values for each individual blog post and page on your site.

At first you’ll be working with estimated lead value numbers – but you can import actual sales values for each lead and work with real sales data.


To start with – let’s explain the input settings.


On the left hand side, you can set a value for each lead (in the screenshot above, it’s set to $20). You can also discount the lead value based on lead score (set to 20% in the screenshot above) and allocate the value of each lead to different pages on the site.

Let’s examine each one.

1. Lead Value: This is straightforward. Any lead that you have not imported actual hard sales data for, will be given this value as a starting point. If you haven’t provided sales data, then all your leads will be assigned this value. If you have provided sales data – then all leads that have sales data will ignore this setting, and this will be applied to leads without sales data only. If you want to work with leads that have sales data only – then set this value to zero and there will be no estimated data in this analysis at all.

2. Lead Discount: Next to the Lead value field, you can set the lead discount. This only applies to estimated leads – it will not impact leads with sales values. What this does is linearly decrease the value of leads based on score. An example explains this best. If you set the lead value to $20, and set the lead discount field to 50%, then a lead with a Spokal lead score of 10 (perfect) will have a value of $20, and a lead with a score of 0 will have a a value of $10. A lead with a score of 5 will have a value of $15. The discount scales linearly with score.

3. Entry Page/Conversion Page/Visited page split: These 3 fields allow you to split the value of leads amongst pages that led to the conversion. You can assign a percentage to the entry page (the page they discovered your site on), a percentage to the conversion page (the page they signed up on), and the remainder will be divided to every page they visited in between these 2 events that helped lead to the conversion. That is – every page in between the first entry and the first conversion will be assigned a part of the value of the lead (if this is set above 0%). Any pages visited after the conversion will not be given any weight.

To re-iterate, if you import sales value (we’ll show you how below) – then the lead value and lead discount will not be applied to that lead – we’ll use their actual sales value. Lead value and discount will ONLY be applied to leads with no sales value. The split between entry page/conversion page and visited pages will be applied to all leads.

Summary analytics

There are a number of site-wide analytics at the top.

1. Total Leads: The total number of leads that have signed up, and that are being tracked in Spokal. Note this does not include any leads that were imported to Spokal using the acemail query string import method. (No values on this page reflect those leads).

2. Fully Tracked: This is the subset of Total Leads that we have complete tracking information for. That is – we know what page they discovered your site on, we know what page they converted on, and everything in between. These leads will have their value split with 100% accuracy.

3. Partially/Not Tracked: Not all may be fully tracked. If a lead converted off site (via a non-wordpress landing page for example) – we can’t assign it’s conversion value to a page/post on your blog. Partially tracked mean that we know either the entry page or the conversion page, but not both. In this case we’ll assign the full weight to the page we do have. Not tracked means we don’t know either the entry or the conversion page – and their value will not be assigned to any blog posts at all. Their value will still be counted in the overall ROI and Average ROI calculations – if you tick the checkbox (described below). There should be very few (really zero) Not Tracked leads, and not many Partially Tracked either unless you’re using a non-WP landing page. If you’re seeing a significant percentage of leads here – please contact Spokal support.

4. # Estimated: this is the number of leads that have actual sales value (used for the ROI calculations) and the number of leads using the estimated value that’s been entered on the left side of the screen.

5. ROI (Return On Invesment): This is your total ROI, based on sales value and estimated value. The little checkbox in this box lets you count or not count leads that are Not Tracked.

6. # of Posts: The number of posts and pages on your site.

7. Avg ROI: The average ROI of each page/post. Calculated simply as ROI / # of Posts.

The table displays ROI and lead values per page/post. You can export this data to Excel or Print it using the buttons provided.

The columns next to the ROI show information about number of leads who first discovered your site through a post, number of signed up leads and number of leads who visited a post before signing up.

Importing Actual Sales Values for Leads

So far we’ve been working with estimated values only. But it’s far preferable to work with actual revenue numbers from your business.

You can do this by importing the sales value of leads – generally we recommend doing this once a month when running your ROI reports.

You will need to be able to export the value of each of your customers (your CRM or accounting software should be able to do this) in simple email address, value format.

To import, scroll down to the bottom of the table and click on the link that says ‘Import revenue numbers for customers’.


On this page you can copy and paste your customers in (a max of 5000 at a time) in simple comma separated format:,122.12, 33.88, 24


Click the import button and we’ll match up customers to your leads. Any email addresses you import that aren’t being tracked in Spokal will be ignored – so you don’t need to worry about segmenting here – you can import everyone and we’ll only match up those that we’re tracking.

Any leads we’re tracking that you don’t import will still show up in the ROI analysis using your estimated values.

Was this helpful?