Splunk Search

How to write a search to calculate a ratio using my sample data?

stephenmoorhous
Path Finder

Hi

I'm trying to calculate the conversion rate of people going from a product page to a payment page.

ie given the following log data

item_code | user_session_id | page_type
aaa | 123456 | item page
aaa | 123456 | payment page
ccc |  654321 | item page
aaa | 654321 | item page
bbb | 111111 | item page
bbb | 111111 | payment page

I would like to be able to get the output:

item code | item page count | payment page count | conversion(%)
aaa | 2 | 1 | 50%
bbb | 1 | 1 | 100%
ccc | 1| 0 | null 

To get the columns separately, you can do:

.... page_type "item page" | stats count by item_code

or

.... page_type="payment page" | stats count by item_code

Just joining them and outputting them side by side doesn’t work because some people do not go to both pages, so they become out of sync.

Thanks

0 Karma
1 Solution

javiergn
Super Champion

What about this?

| chart values(user_session_id) as user_session_id OVER item_code BY page_type
| eval item_page_count = mvcount('item page')
| eval payment_page_count = mvcount('payment page')
| fillnull value=0 item_page_count, payment_page_count
| eval 'conversion(%)' = round(payment_page_count/item_page_count*100, 2) . "%"

Output sample based on the values you provided:

alt text

View solution in original post

javiergn
Super Champion

What about this?

| chart values(user_session_id) as user_session_id OVER item_code BY page_type
| eval item_page_count = mvcount('item page')
| eval payment_page_count = mvcount('payment page')
| fillnull value=0 item_page_count, payment_page_count
| eval 'conversion(%)' = round(payment_page_count/item_page_count*100, 2) . "%"

Output sample based on the values you provided:

alt text

stephenmoorhous
Path Finder

amazing - works perfect - thanks 🙂

0 Karma

javiergn
Super Champion

No worries. Please don't forget mark one of the answers you liked as "answered" so that others can benefit from it

0 Karma

richgalloway
SplunkTrust
SplunkTrust

Try this.

... | stats sum(eval(if(page_type="item page",1,0))) as "itemPageCount", sum(eval(if(page_type="payment page",1,0))) as "paymentPageCount", list(eval(paymentPageCount/itemPageCount)) as conversion by "item code" 
---
If this reply helps you, Karma would be appreciated.
Get Updates on the Splunk Community!

Webinar Recap | Revolutionizing IT Operations: The Transformative Power of AI and ML ...

The Transformative Power of AI and ML in Enhancing Observability   In the realm of IT operations, the ...

.conf24 | Registration Open!

Hello, hello! I come bearing good news: Registration for .conf24 is now open!   conf is Splunk’s rad annual ...

ICYMI - Check out the latest releases of Splunk Edge Processor

Splunk is pleased to announce the latest enhancements to Splunk Edge Processor.  HEC Receiver authorization ...