AmandaHydar commited on
Commit
a2d3ebb
·
1 Parent(s): e64dcb1

Upload 4 files

Browse files
documents/Accounts Payable Celonis KPIs Lazy Version.txt ADDED
@@ -0,0 +1,148 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // SAMPLE LIST OF KPIs
2
+
3
+
4
+ // Count of touchless invoices
5
+ SUM(KPI("FORMULA_AccDocItem_INDICATOR_TouchlessInvoiceItem"))
6
+
7
+
8
+ // Days payable outstanding
9
+ SUM(CASE
10
+ WHEN KPI("FORMULA_AccDocItem_INDICATOR_ClearingInputValid") = 0 THEN 0.0
11
+ ELSE DAYS_BETWEEN(ROUND_DAY("BSEG".ZFBDT), ROUND_DAY("BSEG".AUGDT)) * CURRENCY_CONVERT_SAP ('EUR', 'M',"BKPF"."MANDT", "BKPF"."WAERS","BKPF"."CPUDT","BSEG"."WRBTR")
12
+ END)
13
+ / SUM(CASE WHEN KPI("FORMULA_AccDocItem_INDICATOR_ClearingInputValid") = 0 THEN 0.0
14
+ ELSE CURRENCY_CONVERT_SAP ('EUR', 'M',"BKPF"."MANDT", "BKPF"."WAERS","BKPF"."CPUDT","BSEG"."WRBTR")
15
+
16
+ END)
17
+
18
+
19
+ // Count of Cleared invoices
20
+ COUNT(DISTINCT CASE WHEN "BSEG".AUGDT IS NULL THEN NULL
21
+ ELSE "BKPF"."BELNR" || "BKPF"."BUKRS" || "BKPF"."GJAHR" || "BKPF"."MANDT" || "BSEG"."BUZEI"
22
+ END )
23
+
24
+
25
+ // Count of Invoice lines
26
+ PU_COUNT_DISTINCT("BKPF", "BSEG"."BUZEI")
27
+
28
+
29
+ // Count of invoices paid last month
30
+ COUNT( DISTINCT CASE WHEN KPI("FORMULA_AccDocItem_INDICATOR_InvoiceClearedLastMonth") = 1
31
+ THEN "BKPF"."BELNR" || "BKPF"."BUKRS" || "BKPF"."GJAHR" || "BKPF"."MANDT" || "BSEG"."BUZEI"
32
+ ELSE NULL END )
33
+
34
+
35
+ // Number of process variants
36
+ COUNT ( DISTINCT SHORTENED ( VARIANT ( "_CEL_AP_ACTIVITIES"."ACTIVITY_EN" ) ) )
37
+
38
+
39
+ // Avg. Manual Touches per invoice item
40
+ SUM(KPI("KPI_AccDocItem_PUCOUNT_ManualTouchesPerInvoiceItem"))
41
+
42
+
43
+ // Invoice Value
44
+ SUM(PU_SUM("BKPF", CURRENCY_CONVERT_SAP ('EUR', 'M',"BKPF"."MANDT", "BKPF"."WAERS","BKPF"."CPUDT","BSEG"."WRBTR")
45
+ ))
46
+
47
+
48
+ // Total invoice value last month
49
+ SUM(CASE WHEN KPI("FORMULA_AccDocItem_INDICATOR_InvoiceClearedLastMonth") = 1 THEN CURRENCY_CONVERT_SAP ('EUR', 'M',"BKPF"."MANDT", "BKPF"."WAERS","BKPF"."CPUDT","BSEG"."WRBTR")
50
+ ELSE 0.0 END)
51
+
52
+
53
+ // Days Paid Early
54
+ ((CASE
55
+ WHEN KPI("FORMULA_AccDocItem_CLASSIFICATION_PaymentBehavior") = 'Paid early before minimum due date'
56
+ THEN KPI("FORMULA_AccDocItem_CALC_InvoiceClearingTime") - KPI("FORMULA_AccDocItem_CALC_LowestAvailablePaymentDays")
57
+ WHEN KPI("FORMULA_AccDocItem_CLASSIFICATION_PaymentBehavior") = 'Paid early before middle due date'
58
+ THEN KPI("FORMULA_AccDocItem_CALC_InvoiceClearingTime") - KPI("FORMULA_AccDocItem_CALC_MiddleAvailablePaymentDays")
59
+ WHEN KPI("FORMULA_AccDocItem_CLASSIFICATION_PaymentBehavior") = 'Paid early before max. due date'
60
+ THEN KPI("FORMULA_AccDocItem_CALC_InvoiceClearingTime") - KPI("FORMULA_AccDocItem_CALC_MaximumAvailablePaymentDays")
61
+ END) + 15 ) *-1.0
62
+
63
+
64
+ //SUPPORTING FORMULAS
65
+
66
+
67
+ // FORMULA_AccDocItem_INDICATOR_TouchlessInvoiceItem
68
+ CASE
69
+ WHEN
70
+ PU_COUNT("BSEG", "_CEL_AP_ACTIVITIES"."ACTIVITY_EN", KPI("FORMULA_Activity_CLASSIFICATION_UserType") = 'AUTOMATED'
71
+ AND "_CEL_AP_ACTIVITIES"."ACTIVITY_EN" NOT IN ( 'Due Date passed', 'Cash Discount Due Date passed', 'Vendor Creates Invoice', 'Record Goods Receipt')
72
+ )
73
+ =
74
+ PU_COUNT("BSEG", "_CEL_AP_ACTIVITIES"."ACTIVITY_EN",
75
+ "_CEL_AP_ACTIVITIES"."USER_TYPE" IS NOT NULL
76
+ AND "_CEL_AP_ACTIVITIES"."ACTIVITY_EN" NOT IN ( 'Due Date passed', 'Cash Discount Due Date passed', 'Vendor Creates Invoice', 'Record Goods Receipt')
77
+ )
78
+ THEN 1
79
+ ELSE 0
80
+ END
81
+
82
+
83
+ // FORMULA_Activity_CLASSIFICATION_UserType
84
+ CASE
85
+ WHEN "_CEL_AP_ACTIVITIES"."USER_TYPE" IN ('B', 'S') AND "_CEL_AP_ACTIVITIES"."USER_TYPE" IS NOT NULL THEN 'AUTOMATED'
86
+ WHEN "_CEL_AP_ACTIVITIES"."USER_TYPE" NOT IN ('B', 'S') AND "_CEL_AP_ACTIVITIES"."USER_TYPE" IS NOT NULL THEN 'MANUAL'
87
+ WHEN "_CEL_AP_ACTIVITIES"."USER_TYPE" IS NULL THEN 'UNDEFINED'
88
+ ELSE NULL
89
+ END
90
+
91
+
92
+ // FORMULA_AccDocItem_INDICATOR_ClearingInputValid
93
+ CASE WHEN
94
+ "BSEG".AUGDT IS NOT NULL AND "BSEG".AUGDT <=
95
+ TODAY() AND "BSEG".ZFBDT <= TODAY() AND
96
+ "BSEG".ZFBDT <= "BSEG".AUGDT
97
+ THEN 1.0
98
+ ELSE 0.0
99
+ END
100
+
101
+
102
+ // FORMULA_AccDocItem_INDICATOR_InvoiceClearedLastMonth
103
+ CASE WHEN
104
+ ROUND_MONTH("BSEG".AUGDT) =
105
+ ROUND_MONTH(ADD_MONTHS(TODAY(),-2))
106
+ THEN 1.0
107
+ ELSE 0.0
108
+ END
109
+
110
+
111
+ // KPI_AccDocItem_PUCOUNT_ManualTouchesPerInvoiceItem
112
+ PU_COUNT("BSEG", "_CEL_AP_ACTIVITIES"."ACTIVITY_EN", KPI("FORMULA_Activity_CLASSIFICATION_UserType") = 'MANUAL'
113
+ AND "_CEL_AP_ACTIVITIES"."ACTIVITY_EN" NOT IN ( 'Due Date passed', 'Cash Discount Due Date passed', 'Vendor Creates Invoice', 'Record Goods Receipt')
114
+ )
115
+
116
+
117
+ // FORMULA_AccDocItem_CLASSIFICATION_PaymentBehavior
118
+ CASE
119
+ WHEN "BSEG".AUGDT IS NULL THEN 'open'
120
+ WHEN KPI("FORMULA_AccDocItem_CALC_InvoiceClearingTime") - KPI("FORMULA_AccDocItem_CALC_MaximumAvailablePaymentDays") > 7 THEN 'Paid late'
121
+ WHEN KPI("FORMULA_AccDocItem_CALC_InvoiceClearingTime") - KPI("FORMULA_AccDocItem_CALC_LowestAvailablePaymentDays") < -15 THEN 'Paid early before minimum due date'
122
+ WHEN KPI("FORMULA_AccDocItem_CALC_InvoiceClearingTime") - KPI("FORMULA_AccDocItem_CALC_MiddleAvailablePaymentDays") < -15 THEN 'Paid early before middle due date'
123
+ WHEN KPI("FORMULA_AccDocItem_CALC_InvoiceClearingTime") - KPI("FORMULA_AccDocItem_CALC_MaximumAvailablePaymentDays") < -15 THEN 'Paid early before max. due date'
124
+ ELSE 'Paid on schedule'
125
+ END
126
+
127
+
128
+ // FORMULA_AccDocItem_CALC_InvoiceClearingTime
129
+ CASE
130
+ WHEN KPI("FORMULA_AccDocItem_INDICATOR_ClearingInputValid") = 1
131
+ THEN DAYS_BETWEEN("BSEG".ZFBDT,"BSEG".AUGDT)
132
+ ELSE NULL
133
+ END
134
+
135
+
136
+ // FORMULA_AccDocItem_CALC_LowestAvailablePaymentDays
137
+ ROUND(CASE WHEN "BSEG"."ZBD3T" > 0 AND "BSEG"."ZBD2T" > 0 AND "BSEG"."ZBD1T" > 0 AND "BSEG"."ZBD3T" > "BSEG"."ZBD2T" AND "BSEG"."ZBD2T" > "BSEG"."ZBD1T" THEN "BSEG"."ZBD1T" ELSE 0.0 END)
138
+
139
+
140
+ // FORMULA_AccDocItem_CALC_MiddleAvailablePaymentDays
141
+ ROUND(CASE WHEN "BSEG"."ZBD3T" > 0 AND "BSEG"."ZBD2T" > 0 AND "BSEG"."ZBD3T" > "BSEG"."ZBD2T" THEN "BSEG"."ZBD2T" WHEN "BSEG"."ZBD2T" > 0 AND "BSEG"."ZBD1T" > 0 AND "BSEG"."ZBD2T" > "BSEG"."ZBD1T" THEN "BSEG"."ZBD1T" ELSE 0.0 END)
142
+
143
+
144
+ // FORMULA_AccDocItem_CALC_MaximumAvailablePaymentDays
145
+ ROUND(CASE WHEN "BSEG"."ZBD3T" > 0 THEN "BSEG"."ZBD3T" WHEN
146
+ "BSEG"."ZBD2T" > 0 AND "BSEG"."ZBD3T" = 0.0 THEN "BSEG"."ZBD2T" WHEN
147
+ "BSEG"."ZBD1T" > 0 AND "BSEG"."ZBD3T" = 0.0 AND "BSEG"."ZBD2T" = 0.0
148
+ THEN "BSEG"."ZBD1T" ELSE 0.0 END)
documents/Accounts Payable Celonis KPIs.txt ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ //Count of touchless invoices
2
+
3
+ SUM(
4
+ CASE
5
+ WHEN
6
+ PU_COUNT("BSEG", "_CEL_AP_ACTIVITIES"."ACTIVITY_EN",
7
+ CASE
8
+ WHEN "_CEL_AP_ACTIVITIES"."USER_TYPE" IN ('B', 'S') AND "_CEL_AP_ACTIVITIES"."USER_TYPE" IS NOT NULL THEN 'AUTOMATED'
9
+ WHEN "_CEL_AP_ACTIVITIES"."USER_TYPE" NOT IN ('B', 'S') AND "_CEL_AP_ACTIVITIES"."USER_TYPE" IS NOT NULL THEN 'MANUAL'
10
+ WHEN "_CEL_AP_ACTIVITIES"."USER_TYPE" IS NULL THEN 'UNDEFINED'
11
+ ELSE NULL
12
+ END) = 'AUTOMATED'
13
+ AND "_CEL_AP_ACTIVITIES"."ACTIVITY_EN" NOT IN ( 'Due Date passed', 'Cash Discount Due Date passed', 'Vendor Creates Invoice', 'Record Goods Receipt')
14
+ )
15
+ =
16
+ PU_COUNT("BSEG", "_CEL_AP_ACTIVITIES"."ACTIVITY_EN",
17
+ "_CEL_AP_ACTIVITIES"."USER_TYPE" IS NOT NULL
18
+ AND "_CEL_AP_ACTIVITIES"."ACTIVITY_EN" NOT IN ( 'Due Date passed', 'Cash Discount Due Date passed', 'Vendor Creates Invoice', 'Record Goods Receipt')
19
+ )
20
+ THEN 1
21
+ ELSE 0
22
+ END
23
+ )
24
+
25
+
26
+ //Days payable outstanding
27
+
28
+ SUM(CASE
29
+ WHEN
30
+ (CASE WHEN
31
+ "BSEG".AUGDT IS NOT NULL AND "BSEG".AUGDT <=
32
+ TODAY() AND "BSEG".ZFBDT <= TODAY() AND
33
+ "BSEG".ZFBDT <= "BSEG".AUGDT
34
+ THEN 1.0
35
+ ELSE 0.0
36
+ END
37
+ ) = 0 THEN 0.0
38
+ ELSE DAYS_BETWEEN(ROUND_DAY("BSEG".ZFBDT), ROUND_DAY("BSEG".AUGDT)) * CURRENCY_CONVERT_SAP ('EUR', 'M',"BKPF"."MANDT", "BKPF"."WAERS","BKPF"."CPUDT","BSEG"."WRBTR")
39
+ END)
40
+ / SUM(CASE WHEN
41
+ (CASE WHEN
42
+ "BSEG".AUGDT IS NOT NULL AND "BSEG".AUGDT <=
43
+ TODAY() AND "BSEG".ZFBDT <= TODAY() AND
44
+ "BSEG".ZFBDT <= "BSEG".AUGDT
45
+ THEN 1.0
46
+ ELSE 0.0
47
+ END
48
+ ) = 0 THEN 0.0
49
+ ELSE CURRENCY_CONVERT_SAP ('EUR', 'M',"BKPF"."MANDT", "BKPF"."WAERS","BKPF"."CPUDT","BSEG"."WRBTR")
50
+
51
+ END)
52
+
53
+
54
+ // Count of cleared invoices
55
+
56
+ COUNT(DISTINCT CASE WHEN "BSEG".AUGDT IS NULL THEN NULL
57
+ ELSE "BKPF"."BELNR" || "BKPF"."BUKRS" || "BKPF"."GJAHR" || "BKPF"."MANDT" || "BSEG"."BUZEI"
58
+ END )
59
+
60
+
61
+ //Count of Invoice lines
62
+
63
+ PU_COUNT_DISTINCT("BKPF", "BSEG"."BUZEI")
64
+
65
+
66
+ // Count of invoices paid last month
67
+
68
+ COUNT( DISTINCT CASE WHEN
69
+ (CASE WHEN
70
+ ROUND_MONTH("BSEG".AUGDT) =
71
+ ROUND_MONTH(ADD_MONTHS(TODAY(),-2))
72
+ THEN 1.0
73
+ ELSE 0.0
74
+ END) = 1
75
+ THEN "BKPF"."BELNR" || "BKPF"."BUKRS" || "BKPF"."GJAHR" || "BKPF"."MANDT" || "BSEG"."BUZEI"
76
+ ELSE NULL END )
77
+
78
+
79
+ // Count of process variants
80
+
81
+ COUNT ( DISTINCT SHORTENED ( VARIANT ( "_CEL_AP_ACTIVITIES"."ACTIVITY_EN" ) ) )
82
+
83
+
84
+ // Avg. Manual Touches per invoice item
85
+
86
+ SUM(
87
+ (PU_COUNT
88
+ ("BKPF", "_CEL_AP_ACTIVITIES"."ACTIVITY_EN",
89
+ (CASE
90
+ WHEN "_CEL_AP_ACTIVITIES"."USER_TYPE" IN ('B', 'S') AND "_CEL_AP_ACTIVITIES"."USER_TYPE" IS NOT NULL THEN 'AUTOMATED'
91
+ WHEN "_CEL_AP_ACTIVITIES"."USER_TYPE" NOT IN ('B', 'S') AND "_CEL_AP_ACTIVITIES"."USER_TYPE" IS NOT NULL THEN 'MANUAL'
92
+ WHEN "_CEL_AP_ACTIVITIES"."USER_TYPE" IS NULL THEN 'UNDEFINED'
93
+ ELSE NULL
94
+ END) = 'MANUAL'
95
+ AND "_CEL_AP_ACTIVITIES"."ACTIVITY_EN" NOT IN ( 'Due Date passed', 'Cash Discount Due Date passed', 'Vendor Creates Invoice', 'Record Goods Receipt')
96
+ )
97
+ )
98
+ )
99
+
100
+
101
+ // Days Paid Early
102
+
103
+ ((CASE
104
+ WHEN KPI("FORMULA_AccDocItem_CLASSIFICATION_PaymentBehavior") = 'Paid early before minimum due date'
105
+ THEN KPI("FORMULA_AccDocItem_CALC_InvoiceClearingTime") - KPI("FORMULA_AccDocItem_CALC_LowestAvailablePaymentDays")
106
+ WHEN KPI("FORMULA_AccDocItem_CLASSIFICATION_PaymentBehavior") = 'Paid early before middle due date'
107
+ THEN KPI("FORMULA_AccDocItem_CALC_InvoiceClearingTime") - KPI("FORMULA_AccDocItem_CALC_MiddleAvailablePaymentDays")
108
+ WHEN KPI("FORMULA_AccDocItem_CLASSIFICATION_PaymentBehavior") = 'Paid early before max. due date'
109
+ THEN KPI("FORMULA_AccDocItem_CALC_InvoiceClearingTime") - KPI("FORMULA_AccDocItem_CALC_MaximumAvailablePaymentDays")
110
+ END) + 15 ) *-1.0
documents/Celonis_PQL_Chapter-web.pdf ADDED
Binary file (954 kB). View file
 
documents/pqllibrary.pdf ADDED
Binary file (165 kB). View file