Business Process Analytics in R β’ bupaverse ecosystem
Total time from case start to end. Includes all waiting + working time. Measures end-to-end duration.
Actual working time spent on activities. Excludes waiting/idle periods. Sum of all activity durations.
Time between activities where no work happens. Waiting time = Throughput β Processing time.
library(bupaR)corelibrary(bupaverse)all pkgslibrary(processmapR)vizsummary(log)overviewmapping(log)field mapcase_id(log)case colactivity_id(log)act coln_cases(log)# casesn_activities(log)# actsn_traces(log)# tracesn_resources(log)# resactivity_labels(log)actsresource_labels(log)resactivities(log)dfresources(log)dftraces(log)all tracestrace_length(log)lengthstrace_coverage(log)coveragetrace_explorer(log,coverage=.8)vizprocess_map(log)basicprocess_map(type=frequency())freqprocess_map(type=performance())perfresource_map(log)resourcesthroughput_time(log)total timeprocessing_time(log)work timeidle_time(log)wait timeresource_frequency(log)freqresource_involvement(log)casesstart_activities(log)startsend_activities(log)endsactivity_presence(log)presencenumber_of_repetitions(log)reworkprecedence_matrix(log)matrixprocess_matrix(type=frequency())procfilter_throughput_time(log, interval=c(5,10), units="days")rangefilter_throughput_time(log, percentage=0.5)fastest 50%filter_throughput_time(log, percentage=0.5, reverse=TRUE)slowest 50%filter_throughput_time(log, interval=c(5,NA), units="days")>5 daysfilter_activity(log, activities=c("A","B"))labelsfilter_activity_frequency(log, percentage=0.6)freqfilter_activity_presence(log, c("A"), method="none")absentfilter_precedence(log, antecedents="A", consequents="B")flowfilter_trace_frequency(log, percentage=0.2)top 20%filter_resource_frequency(log, interval=c(2,5))res rangefilter_time_period(log, interval, filter_method="trim")timeact_unite(log,"New"=c("A","B"))renameact_collapse(log,"New"=c("A","B"))mergegroup_by_case(log)by casemutate(x = sum(cost))add varthroughput_time(level="case", append=TRUE)add metricplot()pipe any metricdotted_chart(log, x="relative")timelineslice(log, n)nth casefilter(col == "val")dplyrgroup_by(col)segment