The Cost of Goods Sold (COGS) VISTA solu­tion is one of my favorite solu­tions because it gives con­text.  As we all know data are basi­cally use­less with­out con­text and rev­enue is no excep­tion.  What would you rather have A) $1,000 in rev­enue or B) $100,000 in rev­enue?  Ok, I am obvi­ously going to have a twist here. Here is more con­text, prod­uct A, with $1,000 in rev­enue only costs $1, whereas prod­uct B costs $99,999.  I am sure you under­stand by now that Com­pany A is mak­ing more money.   They are net­ting $999 where Com­pany B is net­ting $1.  So in con­clu­sion data with­out con­text might lead you in the wrong direction.

The Solution(s):

Adding con­text to data is obvi­ously impor­tant but how to do it is not as obvious.  There are three solu­tions that will solve the prob­lem of get­ting COGS data into your Omni­ture reporting.

  • First, you can tag the pur­chase page with an incre­men­tor event that will hold the COGS of the prod­uct. The main prob­lem is a web savvy user will be able to see that information.
  • Sec­ond solu­tion, is to tag the pur­chase page the same way as you would in the first solu­tion, but instead you can tag with an encrypted value. And you can request a VISTA solu­tion to decrypt the encrypted value.
  • The third solu­tion is the COSGS VISTA Solu­tion which will act in the same way as the first and sec­ond solu­tion but every­thing is han­dled server side. It requires no change to your implementation.

COGS VISTA Solution:

The COGS VISTA Solu­tion is a DB VISTA solu­tion that auto­mates plac­ing an incre­men­tor event into hits with a pur­chase event.  Let’s talk about what you get after every­thing is setup.

The below image is an exam­ple the Traf­fic Sources > Search Key­words — All report.

There are three met­rics in this report that are not nor­mally available.

  • Cost of Goods — Is the cost of the goods sold where the user searched for a key­word and made a pur­chase because of it.
  • R — COGS — Is the rev­enue minus cost of goods sold.  This met­ric is your basic net profit met­ric.  You can use this met­ric to ana­lyze the true income you get from each keyword.
  • Gross Mar­gin Perc — Is the gross mar­gin per­cent­age.  In other words, it is the per­cent­age you are prof­it­ing from the key­word.   If you take a look at the exam­ple report you can see “pda” has a 73% mar­gin.  That is def­i­nitely a search term you want to put more resources into.

Below is a sec­ond report Search­Cen­ter > Campaigns.

Again, this report has met­rics that are not nor­mally avail­able.  Also, this report only works if you are a Search­Cen­ter customer.

  • ROAS [COGS] — Is your return on ad spend tak­ing into con­sid­er­a­tion your COGS.  This col­umn will be extremely valu­able as you will be given a more holis­tic view of how your ads are per­form­ing. Clients that imple­ment the COGS VISTA solu­tion often find cam­paigns that are pro­duc­ing neg­a­tive rev­enue when they look at the ROAS[COGS] met­ric.  This met­ric is cal­cu­lated as such (Rev­enue — COGS ) / Key­word Cost.

The two reports pic­tured above are only a cou­ple reports out of hun­dreds you can pull that uti­lize the COGS met­rics.  There are sim­ple reports such as the prod­ucts report, and there are com­plex reports such as female users who came from a search engine who posted a comment.

If there is one point to remem­ber from this entire post it is this:

The COGS VISTA solu­tion will give you a more com­plete view for all reports that involve revenue.

What is needed from you:

The COGS solu­tion needs you to pro­duce a table with the prod­uct ID and the cost of the prod­uct.  This can be done man­u­ally and if you have a lot of prod­ucts or have prod­ucts that change often then it can be done pro­gram­mat­i­cally.  There are a lot of com­plex sys­tems out there so it is dif­fi­cult to judge sim­plic­ity, but in my expe­ri­ence with my web­site  it took me no more than two hours to set up a script that would update the COGS table once a day.   Your engi­neer­ing depart­ment should be able to set up a sim­i­lar script in a rea­son­able amount of time.

As always, post your com­ments or e-mail me at pearcea (at) adobe​.com.  It is your com­ments and e-mails that keep me post­ing and give me ideas for future posts.

Other posts you might be inter­ested in:


Hi, We are using COGS VISTA rule to process the revenue data. The primary goal of using VISTA is NOT to pass the revenue data over the web. (Ex. s.product = “;id;1;price,”;;) and Vista is able to achieve the goal. But, we have been using the standart event 'purchase' and the default name of that event is 'Revenue' and the Type is 'Currency' The corresonding event used by VISTA is 'event7' named as 'Custom7' and the type again is 'Currency'. Now we need to assign the value of this 'Custom 7' to 'Revenue' so that the current reports will start reading the data from the new VISTA variable and we can stop sending the revenue data over the web. If it is not possible to do this assignment, we will have to change all our current reports to use 'Custom 7' and that will be a painful process, as we have multiple users and multiple reports. Can anyone help us in this regard? Thanks Abhilash

Simon Rumble
Simon Rumble

Yep, been after this one for a long time! For those of us in subscription-based industries (telcos etc) the next step is to post back actual margins on a per-customer basis. Then you can track lifecycle customer value all the way back to customer acquisition.