Hello, We are trying to calculate employee retention by the department for the previous month. The challenge is trying to account for employee's that were not terminated from the company but transferred to a different department. What I'm attempting to do is calculate the number of employees by name within a department at the beginning and end of the previous month.
Example: There are 10 employees in Department A on January 1st and Little Johnny decide to jump ship to Department B on January 15. On Jan 31st Department A has only 9 employees, leaving a 90% retention rate for the previous month.
Thanks in advance for the help!
Try this:
| from datamodel:<your_datamodel>
|where ((_time>relative_time(now(),"-1mon@mon") and _time<relative_time(relative_time(now(),"-1mon@mon"),"+1d")) OR (_time>relative_time(relative_time(now(),"@mon"),"-1d") and _time<relative_time(now(),"@mon")))
| stats count by date_mday Department
|streamstats max(date_mday) as monthend
|eventstats sum(count) as Total by Department
|eval diff=if((date_mday==monthend),Total-count,"")
|eval Percent_change = ((count-diff)/diff)*100
|fields date_mday Department count Percent_change
Try this:
| from datamodel:<your_datamodel>
|where ((_time>relative_time(now(),"-1mon@mon") and _time<relative_time(relative_time(now(),"-1mon@mon"),"+1d")) OR (_time>relative_time(relative_time(now(),"@mon"),"-1d") and _time<relative_time(now(),"@mon")))
| stats count by date_mday Department
|streamstats max(date_mday) as monthend
|eventstats sum(count) as Total by Department
|eval diff=if((date_mday==monthend),Total-count,"")
|eval Percent_change = ((count-diff)/diff)*100
|fields date_mday Department count Percent_change
Thank you @nareshinsvu that worked, i think :). I just noticed that I got ahead of myself as we don't have any data for July for this index, so I won't know fully until next month. With that being said, you certainly put me on the right path!