I have been trying to determine what is the best avenue to take to create an app that analyzes the age and condition of customer issue tickets we have had in our system over a 6 month period.
So I have a data set with tickets that have both an open date and close date (or the close date field is empty if the ticket is still open). The list for the last 6 months includes any open items at the end of the 6 month period, all items that were closed in that six month period regardless of when they were opened, and all tickets that were created in the six month period. Basically all activity during the 6 months.
For example the date would like this table:
What I have been trying to figure out is how to create an app that dynamically recalculates the average age of open tickets, average days to close closed tickets based on the month end date of a currently selected month. So if the user selects April the app will show the average age of all tickets that were open at 4/30/2018 even if those tickets were closed in May or June.
I have been reading and testing out set analysis in chart functions with exclusions, unions, and intersections but I have not been successful at getting this to work. Is set analysis even the way to go with these types of calculation? Should I look at somehow setting up another table with the aging information at each month end?
Is there a guide to setting up these more complicated date and age calculations somewhere?
Thank you in advance for any guidance you can give me!
Set analysis should work well for this, but it requires your data to be set up a certain way during the load. I am guessing you have other tables, not just the one you describe. If your set analysis tries to compare a field in one table to a field in another table, it won't work. Also, set analysis syntax is very precise; one error, and the whole thing is toast.
So you can only tie one date to a "Date" filter, in your case either Open Date or Close Date, but what you really want is a status as of Date, either Opened or Closed.
You can use IntervalMatch to create a record for each day in your load script and set whether it is Open or Closed on this day. They use the newly created Status Date to filter and perform your calculations. Creating it by day rather than month end is easier IMHO and allows for more flexibility (week, month, quarter, etc).