@adtrackify/at-tracking-event-types 4.40.0 → 4.41.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/cjs/__tests__/measure-alias-map.spec.js +14 -0
  2. package/dist/cjs/__tests__/measure-alias-map.spec.js.map +1 -1
  3. package/dist/cjs/types/api/feature.d.ts +22 -22
  4. package/dist/cjs/types/api/feature.js +22 -22
  5. package/dist/cjs/types/api/feature.js.map +1 -1
  6. package/dist/cjs/types/api/measures/definitions/channel-measure-definitions.js +654 -110
  7. package/dist/cjs/types/api/measures/definitions/channel-measure-definitions.js.map +1 -1
  8. package/dist/cjs/types/api/measures/definitions/core-measure-definitions.js +550 -159
  9. package/dist/cjs/types/api/measures/definitions/core-measure-definitions.js.map +1 -1
  10. package/dist/cjs/types/api/measures/definitions/emq-measure-definitions.js +77 -16
  11. package/dist/cjs/types/api/measures/definitions/emq-measure-definitions.js.map +1 -1
  12. package/dist/cjs/types/api/measures/definitions/facebook-measure-definitions.js +552 -105
  13. package/dist/cjs/types/api/measures/definitions/facebook-measure-definitions.js.map +1 -1
  14. package/dist/cjs/types/api/measures/definitions/google-measure-definitions.js +121 -21
  15. package/dist/cjs/types/api/measures/definitions/google-measure-definitions.js.map +1 -1
  16. package/dist/cjs/types/api/measures/definitions/measure-categories.d.ts +47 -0
  17. package/dist/cjs/types/api/measures/definitions/measure-categories.js +49 -1
  18. package/dist/cjs/types/api/measures/definitions/measure-categories.js.map +1 -1
  19. package/dist/cjs/types/api/measures/definitions/measure-definitions.d.ts +12 -3
  20. package/dist/cjs/types/api/measures/definitions/measure-definitions.js.map +1 -1
  21. package/dist/cjs/types/api/measures/definitions/orders-measure-definitions.js +1258 -235
  22. package/dist/cjs/types/api/measures/definitions/orders-measure-definitions.js.map +1 -1
  23. package/dist/cjs/types/api/measures/definitions/session-measure-definitions.js +111 -24
  24. package/dist/cjs/types/api/measures/definitions/session-measure-definitions.js.map +1 -1
  25. package/dist/cjs/types/api/measures/definitions/shopify/shopify-measure-definitions.js +190 -0
  26. package/dist/cjs/types/api/measures/definitions/shopify/shopify-measure-definitions.js.map +1 -1
  27. package/dist/cjs/types/api/measures/definitions/shopify/shopify-nc-measure-definitions.js +94 -0
  28. package/dist/cjs/types/api/measures/definitions/shopify/shopify-nc-measure-definitions.js.map +1 -1
  29. package/dist/cjs/types/api/measures/definitions/shopify/shopify-rc-measure-definitions.js +100 -0
  30. package/dist/cjs/types/api/measures/definitions/shopify/shopify-rc-measure-definitions.js.map +1 -1
  31. package/dist/cjs/types/api/measures/definitions/tracked-measure-definitions.js +266 -51
  32. package/dist/cjs/types/api/measures/definitions/tracked-measure-definitions.js.map +1 -1
  33. package/dist/cjs/types/api/measures/measure-alias-map.js +14 -0
  34. package/dist/cjs/types/api/measures/measure-alias-map.js.map +1 -1
  35. package/dist/cjs/types/api/measures/measures.d.ts +14 -1
  36. package/dist/cjs/types/api/measures/measures.js +13 -0
  37. package/dist/cjs/types/api/measures/measures.js.map +1 -1
  38. package/dist/esm/__tests__/measure-alias-map.spec.js +14 -0
  39. package/dist/esm/__tests__/measure-alias-map.spec.js.map +1 -1
  40. package/dist/esm/types/api/feature.d.ts +22 -22
  41. package/dist/esm/types/api/feature.js +22 -22
  42. package/dist/esm/types/api/feature.js.map +1 -1
  43. package/dist/esm/types/api/measures/definitions/channel-measure-definitions.js +655 -111
  44. package/dist/esm/types/api/measures/definitions/channel-measure-definitions.js.map +1 -1
  45. package/dist/esm/types/api/measures/definitions/core-measure-definitions.js +552 -161
  46. package/dist/esm/types/api/measures/definitions/core-measure-definitions.js.map +1 -1
  47. package/dist/esm/types/api/measures/definitions/emq-measure-definitions.js +78 -17
  48. package/dist/esm/types/api/measures/definitions/emq-measure-definitions.js.map +1 -1
  49. package/dist/esm/types/api/measures/definitions/facebook-measure-definitions.js +553 -106
  50. package/dist/esm/types/api/measures/definitions/facebook-measure-definitions.js.map +1 -1
  51. package/dist/esm/types/api/measures/definitions/google-measure-definitions.js +122 -22
  52. package/dist/esm/types/api/measures/definitions/google-measure-definitions.js.map +1 -1
  53. package/dist/esm/types/api/measures/definitions/measure-categories.d.ts +47 -0
  54. package/dist/esm/types/api/measures/definitions/measure-categories.js +48 -0
  55. package/dist/esm/types/api/measures/definitions/measure-categories.js.map +1 -1
  56. package/dist/esm/types/api/measures/definitions/measure-definitions.d.ts +12 -3
  57. package/dist/esm/types/api/measures/definitions/measure-definitions.js.map +1 -1
  58. package/dist/esm/types/api/measures/definitions/orders-measure-definitions.js +1171 -148
  59. package/dist/esm/types/api/measures/definitions/orders-measure-definitions.js.map +1 -1
  60. package/dist/esm/types/api/measures/definitions/session-measure-definitions.js +112 -25
  61. package/dist/esm/types/api/measures/definitions/session-measure-definitions.js.map +1 -1
  62. package/dist/esm/types/api/measures/definitions/shopify/shopify-measure-definitions.js +191 -1
  63. package/dist/esm/types/api/measures/definitions/shopify/shopify-measure-definitions.js.map +1 -1
  64. package/dist/esm/types/api/measures/definitions/shopify/shopify-nc-measure-definitions.js +95 -1
  65. package/dist/esm/types/api/measures/definitions/shopify/shopify-nc-measure-definitions.js.map +1 -1
  66. package/dist/esm/types/api/measures/definitions/shopify/shopify-rc-measure-definitions.js +101 -1
  67. package/dist/esm/types/api/measures/definitions/shopify/shopify-rc-measure-definitions.js.map +1 -1
  68. package/dist/esm/types/api/measures/definitions/tracked-measure-definitions.js +267 -52
  69. package/dist/esm/types/api/measures/definitions/tracked-measure-definitions.js.map +1 -1
  70. package/dist/esm/types/api/measures/measure-alias-map.js +14 -0
  71. package/dist/esm/types/api/measures/measure-alias-map.js.map +1 -1
  72. package/dist/esm/types/api/measures/measures.d.ts +14 -1
  73. package/dist/esm/types/api/measures/measures.js +13 -0
  74. package/dist/esm/types/api/measures/measures.js.map +1 -1
  75. package/package.json +1 -1
@@ -1,10 +1,7 @@
1
1
  import { MEASURE } from '../measures.js';
2
- import { MEASURE_CATEGORY } from './measure-categories.js';
2
+ import { MEASURE_CATEGORY, MEASURE_SUBCATEGORY } from './measure-categories.js';
3
3
  import { MeasureValueType } from './measure-value-type.js';
4
- import { MeasureApplicableContext } from './measure-applicable-contexts.js';
5
- const ATTRIBUTION_APPLICABLE_CONTEXTS = [
6
- MeasureApplicableContext.ATTRIBUTION,
7
- ];
4
+ import { ATTRIBUTION_APPLICABLE_CONTEXTS, STANDARD_APPLICABLE_CONTEXTS, } from './measure-applicable-contexts.js';
8
5
  export const ORDERS_MEASURES_MAP = {
9
6
  [MEASURE.ORDERS_COUNT]: {
10
7
  title: 'Orders',
@@ -15,11 +12,14 @@ export const ORDERS_MEASURES_MAP = {
15
12
  avgSuffix: '',
16
13
  icon: 'shopping-cart',
17
14
  measure: MEASURE.ORDERS_COUNT,
18
- category: MEASURE_CATEGORY.SALES,
15
+ category: MEASURE_CATEGORY.ORDERS,
16
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_COUNTS,
19
17
  valueType: MeasureValueType.NUMBER,
20
18
  decimalPlaces: 0,
21
19
  useCompactNotation: false,
22
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
20
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
21
+ tooltip: 'The total number of orders placed in the selected period. Use this as the baseline count for order volume.',
22
+ relatedMeasures: [MEASURE.ORDERS_TOTAL_REVENUE, MEASURE.ORDERS_TOTAL_AOV, MEASURE.ORDERS_NEW_CUSTOMER_COUNT, MEASURE.ORDERS_RETURNING_CUSTOMER_COUNT],
23
23
  },
24
24
  [MEASURE.ORDERS_UNIQUE_CUSTOMERS]: {
25
25
  title: 'Unique Customers',
@@ -30,11 +30,15 @@ export const ORDERS_MEASURES_MAP = {
30
30
  avgSuffix: '',
31
31
  icon: 'users',
32
32
  measure: MEASURE.ORDERS_UNIQUE_CUSTOMERS,
33
- category: MEASURE_CATEGORY.SALES,
33
+ category: MEASURE_CATEGORY.ORDERS,
34
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_CUSTOMER_SEGMENTS,
34
35
  valueType: MeasureValueType.NUMBER,
35
36
  decimalPlaces: 0,
36
37
  useCompactNotation: false,
37
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
38
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
39
+ shortTitle: 'Unique Cust.',
40
+ tooltip: 'The count of distinct customers who placed at least one order in the period. Each customer is counted once regardless of how many orders they placed.',
41
+ relatedMeasures: [MEASURE.ORDERS_NEW_CUSTOMERS, MEASURE.ORDERS_RETURNING_CUSTOMERS, MEASURE.ORDERS_AVG_ORDERS_PER_CUSTOMER],
38
42
  },
39
43
  [MEASURE.ORDERS_NEW_CUSTOMER_COUNT]: {
40
44
  title: 'New Customer Orders',
@@ -45,11 +49,15 @@ export const ORDERS_MEASURES_MAP = {
45
49
  avgSuffix: '',
46
50
  icon: 'user-plus',
47
51
  measure: MEASURE.ORDERS_NEW_CUSTOMER_COUNT,
48
- category: MEASURE_CATEGORY.SALES,
52
+ category: MEASURE_CATEGORY.ORDERS,
53
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_CUSTOMER_SEGMENTS,
49
54
  valueType: MeasureValueType.NUMBER,
50
55
  decimalPlaces: 0,
51
56
  useCompactNotation: false,
52
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
57
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
58
+ shortTitle: 'NC Orders',
59
+ tooltip: 'Orders placed by customers who have never bought from this store before. Tracks acquisition volume.',
60
+ relatedMeasures: [MEASURE.ORDERS_COUNT, MEASURE.ORDERS_NEW_CUSTOMER_RATE, MEASURE.ORDERS_NEW_CUSTOMERS, MEASURE.ORDERS_RETURNING_CUSTOMER_COUNT],
53
61
  },
54
62
  [MEASURE.ORDERS_RETURNING_CUSTOMER_COUNT]: {
55
63
  title: 'Returning Customer Orders',
@@ -60,11 +68,15 @@ export const ORDERS_MEASURES_MAP = {
60
68
  avgSuffix: '',
61
69
  icon: 'user-check',
62
70
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_COUNT,
63
- category: MEASURE_CATEGORY.SALES,
71
+ category: MEASURE_CATEGORY.ORDERS,
72
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_CUSTOMER_SEGMENTS,
64
73
  valueType: MeasureValueType.NUMBER,
65
74
  decimalPlaces: 0,
66
75
  useCompactNotation: false,
67
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
76
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
77
+ shortTitle: 'RC Orders',
78
+ tooltip: 'Orders placed by customers who have purchased from this store at least once before. Tracks repeat purchase volume.',
79
+ relatedMeasures: [MEASURE.ORDERS_COUNT, MEASURE.ORDERS_RETURNING_CUSTOMER_RATE, MEASURE.ORDERS_RETURNING_CUSTOMERS, MEASURE.ORDERS_NEW_CUSTOMER_COUNT],
68
80
  },
69
81
  [MEASURE.ORDERS_UNITS]: {
70
82
  title: 'Units Sold',
@@ -75,11 +87,14 @@ export const ORDERS_MEASURES_MAP = {
75
87
  avgSuffix: '',
76
88
  icon: 'package',
77
89
  measure: MEASURE.ORDERS_UNITS,
78
- category: MEASURE_CATEGORY.SALES,
90
+ category: MEASURE_CATEGORY.ORDERS,
91
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_COUNTS,
79
92
  valueType: MeasureValueType.NUMBER,
80
93
  decimalPlaces: 0,
81
94
  useCompactNotation: false,
82
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
95
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
96
+ tooltip: 'The total quantity of individual product units sold across all orders in the period.',
97
+ relatedMeasures: [MEASURE.ORDERS_COUNT, MEASURE.ORDERS_UNITS_PER_ORDER],
83
98
  },
84
99
  [MEASURE.ORDERS_NEW_CUSTOMER_UNITS]: {
85
100
  title: 'New Customer Units',
@@ -90,11 +105,15 @@ export const ORDERS_MEASURES_MAP = {
90
105
  avgSuffix: '',
91
106
  icon: 'package',
92
107
  measure: MEASURE.ORDERS_NEW_CUSTOMER_UNITS,
93
- category: MEASURE_CATEGORY.SALES,
108
+ category: MEASURE_CATEGORY.ORDERS,
109
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_COUNTS,
94
110
  valueType: MeasureValueType.NUMBER,
95
111
  decimalPlaces: 0,
96
112
  useCompactNotation: false,
97
113
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
114
+ shortTitle: 'NC Units',
115
+ tooltip: 'Total product units purchased by new customers. Useful for understanding acquisition basket size.',
116
+ relatedMeasures: [MEASURE.ORDERS_UNITS, MEASURE.ORDERS_NEW_CUSTOMER_UNITS_PER_ORDER, MEASURE.ORDERS_RETURNING_CUSTOMER_UNITS],
98
117
  },
99
118
  [MEASURE.ORDERS_RETURNING_CUSTOMER_UNITS]: {
100
119
  title: 'Returning Customer Units',
@@ -105,11 +124,15 @@ export const ORDERS_MEASURES_MAP = {
105
124
  avgSuffix: '',
106
125
  icon: 'package',
107
126
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_UNITS,
108
- category: MEASURE_CATEGORY.SALES,
127
+ category: MEASURE_CATEGORY.ORDERS,
128
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_COUNTS,
109
129
  valueType: MeasureValueType.NUMBER,
110
130
  decimalPlaces: 0,
111
131
  useCompactNotation: false,
112
132
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
133
+ shortTitle: 'RC Units',
134
+ tooltip: 'Total product units purchased by returning customers. Reflects repeat buyer basket size.',
135
+ relatedMeasures: [MEASURE.ORDERS_UNITS, MEASURE.ORDERS_RETURNING_CUSTOMER_UNITS_PER_ORDER, MEASURE.ORDERS_NEW_CUSTOMER_UNITS],
113
136
  },
114
137
  [MEASURE.ORDERS_UNITS_PER_ORDER]: {
115
138
  title: 'Units Per Order',
@@ -120,11 +143,16 @@ export const ORDERS_MEASURES_MAP = {
120
143
  avgSuffix: '',
121
144
  icon: 'package',
122
145
  measure: MEASURE.ORDERS_UNITS_PER_ORDER,
123
- category: MEASURE_CATEGORY.SALES,
146
+ category: MEASURE_CATEGORY.ORDERS,
147
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_COUNTS,
124
148
  valueType: MeasureValueType.NUMBER,
125
149
  decimalPlaces: 2,
126
150
  useCompactNotation: false,
127
151
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
152
+ tooltip: 'The average number of product units included in each order. Higher values indicate larger basket sizes.',
153
+ formulaDisplay: 'Units Sold ÷ Order Count',
154
+ formula: 'units_sold / order_count',
155
+ relatedMeasures: [MEASURE.ORDERS_UNITS, MEASURE.ORDERS_COUNT, MEASURE.ORDERS_NEW_CUSTOMER_UNITS_PER_ORDER, MEASURE.ORDERS_RETURNING_CUSTOMER_UNITS_PER_ORDER],
128
156
  },
129
157
  [MEASURE.ORDERS_NEW_CUSTOMER_UNITS_PER_ORDER]: {
130
158
  title: 'NC Units Per Order',
@@ -135,11 +163,17 @@ export const ORDERS_MEASURES_MAP = {
135
163
  avgSuffix: '',
136
164
  icon: 'package',
137
165
  measure: MEASURE.ORDERS_NEW_CUSTOMER_UNITS_PER_ORDER,
138
- category: MEASURE_CATEGORY.SALES,
166
+ category: MEASURE_CATEGORY.ORDERS,
167
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_COUNTS,
139
168
  valueType: MeasureValueType.NUMBER,
140
169
  decimalPlaces: 2,
141
170
  useCompactNotation: false,
142
171
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
172
+ shortTitle: 'NC Units/Order',
173
+ tooltip: 'Average number of units per order for new customers. Compare to returning customers to gauge first-time buyer behavior.',
174
+ formulaDisplay: 'NC Units Sold ÷ NC Order Count',
175
+ formula: 'nc_units_sold / nc_order_count',
176
+ relatedMeasures: [MEASURE.ORDERS_UNITS_PER_ORDER, MEASURE.ORDERS_RETURNING_CUSTOMER_UNITS_PER_ORDER, MEASURE.ORDERS_NEW_CUSTOMER_UNITS],
143
177
  },
144
178
  [MEASURE.ORDERS_RETURNING_CUSTOMER_UNITS_PER_ORDER]: {
145
179
  title: 'RC Units Per Order',
@@ -150,11 +184,17 @@ export const ORDERS_MEASURES_MAP = {
150
184
  avgSuffix: '',
151
185
  icon: 'package',
152
186
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_UNITS_PER_ORDER,
153
- category: MEASURE_CATEGORY.SALES,
187
+ category: MEASURE_CATEGORY.ORDERS,
188
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_COUNTS,
154
189
  valueType: MeasureValueType.NUMBER,
155
190
  decimalPlaces: 2,
156
191
  useCompactNotation: false,
157
192
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
193
+ shortTitle: 'RC Units/Order',
194
+ tooltip: 'Average number of units per order for returning customers. Higher values than new customers suggest loyalty-driven upsell.',
195
+ formulaDisplay: 'RC Units Sold ÷ RC Order Count',
196
+ formula: 'rc_units_sold / rc_order_count',
197
+ relatedMeasures: [MEASURE.ORDERS_UNITS_PER_ORDER, MEASURE.ORDERS_NEW_CUSTOMER_UNITS_PER_ORDER, MEASURE.ORDERS_RETURNING_CUSTOMER_UNITS],
158
198
  },
159
199
  [MEASURE.ORDERS_TOTAL_REVENUE]: {
160
200
  title: 'Total Revenue',
@@ -165,11 +205,15 @@ export const ORDERS_MEASURES_MAP = {
165
205
  avgSuffix: '',
166
206
  icon: 'dollar-sign',
167
207
  measure: MEASURE.ORDERS_TOTAL_REVENUE,
168
- category: MEASURE_CATEGORY.SALES,
208
+ category: MEASURE_CATEGORY.ORDERS,
209
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_REVENUE,
169
210
  valueType: MeasureValueType.CURRENCY,
170
211
  decimalPlaces: 2,
171
212
  useCompactNotation: true,
172
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
213
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
214
+ shortTitle: 'Total Rev.',
215
+ tooltip: 'The total dollar amount collected from all orders including shipping and taxes, before any refunds.',
216
+ relatedMeasures: [MEASURE.ORDERS_GROSS_REVENUE, MEASURE.ORDERS_NET_REVENUE, MEASURE.ORDERS_TOTAL_AOV],
173
217
  },
174
218
  [MEASURE.ORDERS_GROSS_REVENUE]: {
175
219
  title: 'Gross Revenue',
@@ -180,11 +224,15 @@ export const ORDERS_MEASURES_MAP = {
180
224
  avgSuffix: '',
181
225
  icon: 'dollar-sign',
182
226
  measure: MEASURE.ORDERS_GROSS_REVENUE,
183
- category: MEASURE_CATEGORY.SALES,
227
+ category: MEASURE_CATEGORY.ORDERS,
228
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_REVENUE,
184
229
  valueType: MeasureValueType.CURRENCY,
185
230
  decimalPlaces: 2,
186
231
  useCompactNotation: true,
187
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
232
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
233
+ shortTitle: 'Gross Rev.',
234
+ tooltip: 'Revenue from product sales before subtracting discounts or refunds. The starting point for margin calculations.',
235
+ relatedMeasures: [MEASURE.ORDERS_NET_REVENUE, MEASURE.ORDERS_GROSS_AOV, MEASURE.ORDERS_DISCOUNTS, MEASURE.ORDERS_REFUNDS],
188
236
  },
189
237
  [MEASURE.ORDERS_NET_REVENUE]: {
190
238
  title: 'Net Revenue',
@@ -195,11 +243,17 @@ export const ORDERS_MEASURES_MAP = {
195
243
  avgSuffix: '',
196
244
  icon: 'dollar-sign',
197
245
  measure: MEASURE.ORDERS_NET_REVENUE,
198
- category: MEASURE_CATEGORY.SALES,
246
+ category: MEASURE_CATEGORY.ORDERS,
247
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_REVENUE,
199
248
  valueType: MeasureValueType.CURRENCY,
200
249
  decimalPlaces: 2,
201
250
  useCompactNotation: true,
202
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
251
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
252
+ shortTitle: 'Net Rev.',
253
+ tooltip: 'Revenue after subtracting discounts and refunds from gross revenue. The primary revenue metric for profitability analysis.',
254
+ formulaDisplay: 'Gross Revenue − Discounts − Refunds',
255
+ formula: 'gross_revenue - discounts - refunds',
256
+ relatedMeasures: [MEASURE.ORDERS_GROSS_REVENUE, MEASURE.ORDERS_NET_AOV, MEASURE.ORDERS_DISCOUNTS, MEASURE.ORDERS_REFUNDS],
203
257
  },
204
258
  [MEASURE.ORDERS_NEW_CUSTOMER_TOTAL_REVENUE]: {
205
259
  title: 'NC Total Revenue',
@@ -210,11 +264,15 @@ export const ORDERS_MEASURES_MAP = {
210
264
  avgSuffix: '',
211
265
  icon: 'dollar-sign',
212
266
  measure: MEASURE.ORDERS_NEW_CUSTOMER_TOTAL_REVENUE,
213
- category: MEASURE_CATEGORY.SALES,
267
+ category: MEASURE_CATEGORY.ORDERS,
268
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_REVENUE,
214
269
  valueType: MeasureValueType.CURRENCY,
215
270
  decimalPlaces: 2,
216
271
  useCompactNotation: true,
217
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
272
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
273
+ shortTitle: 'NC Total Rev.',
274
+ tooltip: 'Total revenue collected from first-time buyers including shipping and taxes. Reflects the raw dollar value of acquisition.',
275
+ relatedMeasures: [MEASURE.ORDERS_TOTAL_REVENUE, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_REVENUE, MEASURE.ORDERS_NEW_CUSTOMER_NET_REVENUE],
218
276
  },
219
277
  [MEASURE.ORDERS_NEW_CUSTOMER_GROSS_REVENUE]: {
220
278
  title: 'NC Gross Revenue',
@@ -225,11 +283,15 @@ export const ORDERS_MEASURES_MAP = {
225
283
  avgSuffix: '',
226
284
  icon: 'dollar-sign',
227
285
  measure: MEASURE.ORDERS_NEW_CUSTOMER_GROSS_REVENUE,
228
- category: MEASURE_CATEGORY.SALES,
286
+ category: MEASURE_CATEGORY.ORDERS,
287
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_REVENUE,
229
288
  valueType: MeasureValueType.CURRENCY,
230
289
  decimalPlaces: 2,
231
290
  useCompactNotation: true,
232
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
291
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
292
+ shortTitle: 'NC Gross Rev.',
293
+ tooltip: 'Gross product revenue from new customers before discounts and refunds. Used to calculate new customer gross margin.',
294
+ relatedMeasures: [MEASURE.ORDERS_GROSS_REVENUE, MEASURE.ORDERS_NEW_CUSTOMER_NET_REVENUE, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_AOV],
233
295
  },
234
296
  [MEASURE.ORDERS_NEW_CUSTOMER_NET_REVENUE]: {
235
297
  title: 'NC Net Revenue',
@@ -240,11 +302,15 @@ export const ORDERS_MEASURES_MAP = {
240
302
  avgSuffix: '',
241
303
  icon: 'dollar-sign',
242
304
  measure: MEASURE.ORDERS_NEW_CUSTOMER_NET_REVENUE,
243
- category: MEASURE_CATEGORY.SALES,
305
+ category: MEASURE_CATEGORY.ORDERS,
306
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_REVENUE,
244
307
  valueType: MeasureValueType.CURRENCY,
245
308
  decimalPlaces: 2,
246
309
  useCompactNotation: true,
247
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
310
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
311
+ shortTitle: 'NC Net Rev.',
312
+ tooltip: 'Net revenue from new customers after discounts and refunds. The clearest measure of first-order monetization.',
313
+ relatedMeasures: [MEASURE.ORDERS_NET_REVENUE, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_REVENUE, MEASURE.ORDERS_NEW_CUSTOMER_NET_AOV],
248
314
  },
249
315
  [MEASURE.ORDERS_RETURNING_CUSTOMER_TOTAL_REVENUE]: {
250
316
  title: 'RC Total Revenue',
@@ -255,11 +321,15 @@ export const ORDERS_MEASURES_MAP = {
255
321
  avgSuffix: '',
256
322
  icon: 'dollar-sign',
257
323
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_TOTAL_REVENUE,
258
- category: MEASURE_CATEGORY.SALES,
324
+ category: MEASURE_CATEGORY.ORDERS,
325
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_REVENUE,
259
326
  valueType: MeasureValueType.CURRENCY,
260
327
  decimalPlaces: 2,
261
328
  useCompactNotation: true,
262
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
329
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
330
+ shortTitle: 'RC Total Rev.',
331
+ tooltip: 'Total revenue from repeat buyers including shipping and taxes. High values indicate strong retention and LTV.',
332
+ relatedMeasures: [MEASURE.ORDERS_TOTAL_REVENUE, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_REVENUE, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_REVENUE],
263
333
  },
264
334
  [MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_REVENUE]: {
265
335
  title: 'RC Gross Revenue',
@@ -270,11 +340,15 @@ export const ORDERS_MEASURES_MAP = {
270
340
  avgSuffix: '',
271
341
  icon: 'dollar-sign',
272
342
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_REVENUE,
273
- category: MEASURE_CATEGORY.SALES,
343
+ category: MEASURE_CATEGORY.ORDERS,
344
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_REVENUE,
274
345
  valueType: MeasureValueType.CURRENCY,
275
346
  decimalPlaces: 2,
276
347
  useCompactNotation: true,
277
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
348
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
349
+ shortTitle: 'RC Gross Rev.',
350
+ tooltip: 'Gross product revenue from returning customers before discounts and refunds.',
351
+ relatedMeasures: [MEASURE.ORDERS_GROSS_REVENUE, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_REVENUE, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_AOV],
278
352
  },
279
353
  [MEASURE.ORDERS_RETURNING_CUSTOMER_NET_REVENUE]: {
280
354
  title: 'RC Net Revenue',
@@ -285,11 +359,201 @@ export const ORDERS_MEASURES_MAP = {
285
359
  avgSuffix: '',
286
360
  icon: 'dollar-sign',
287
361
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_NET_REVENUE,
288
- category: MEASURE_CATEGORY.SALES,
362
+ category: MEASURE_CATEGORY.ORDERS,
363
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_REVENUE,
289
364
  valueType: MeasureValueType.CURRENCY,
290
365
  decimalPlaces: 2,
291
366
  useCompactNotation: true,
292
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
367
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
368
+ shortTitle: 'RC Net Rev.',
369
+ tooltip: 'Net revenue from returning customers after discounts and refunds. Key input for repeat-purchase profitability.',
370
+ relatedMeasures: [MEASURE.ORDERS_NET_REVENUE, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_REVENUE, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_AOV],
371
+ },
372
+ [MEASURE.ORDERS_TOTAL_AOV]: {
373
+ title: 'Total AOV',
374
+ description: 'Average order value based on total revenue.',
375
+ sumPrefix: '$',
376
+ sumSuffix: '',
377
+ avgPrefix: '$',
378
+ avgSuffix: '',
379
+ icon: 'dollar-sign',
380
+ measure: MEASURE.ORDERS_TOTAL_AOV,
381
+ category: MEASURE_CATEGORY.ORDERS,
382
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_AOV,
383
+ valueType: MeasureValueType.CURRENCY,
384
+ decimalPlaces: 2,
385
+ useCompactNotation: false,
386
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
387
+ tooltip: 'The average total revenue collected per order including shipping and taxes. Useful for understanding overall transaction size.',
388
+ formulaDisplay: 'Total Revenue ÷ Order Count',
389
+ formula: 'total_revenue / order_count',
390
+ relatedMeasures: [MEASURE.ORDERS_GROSS_AOV, MEASURE.ORDERS_NET_AOV, MEASURE.ORDERS_TOTAL_REVENUE, MEASURE.ORDERS_COUNT],
391
+ },
392
+ [MEASURE.ORDERS_GROSS_AOV]: {
393
+ title: 'Gross AOV',
394
+ description: 'Average order value based on gross revenue.',
395
+ sumPrefix: '$',
396
+ sumSuffix: '',
397
+ avgPrefix: '$',
398
+ avgSuffix: '',
399
+ icon: 'dollar-sign',
400
+ measure: MEASURE.ORDERS_GROSS_AOV,
401
+ category: MEASURE_CATEGORY.ORDERS,
402
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_AOV,
403
+ valueType: MeasureValueType.CURRENCY,
404
+ decimalPlaces: 2,
405
+ useCompactNotation: false,
406
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
407
+ tooltip: 'Average gross product revenue per order before discounts and refunds. Shows the baseline cart value customers intend to spend.',
408
+ formulaDisplay: 'Gross Revenue ÷ Order Count',
409
+ formula: 'gross_revenue / order_count',
410
+ relatedMeasures: [MEASURE.ORDERS_NET_AOV, MEASURE.ORDERS_TOTAL_AOV, MEASURE.ORDERS_GROSS_REVENUE],
411
+ },
412
+ [MEASURE.ORDERS_NET_AOV]: {
413
+ title: 'Net AOV',
414
+ description: 'Average order value based on net revenue.',
415
+ sumPrefix: '$',
416
+ sumSuffix: '',
417
+ avgPrefix: '$',
418
+ avgSuffix: '',
419
+ icon: 'dollar-sign',
420
+ measure: MEASURE.ORDERS_NET_AOV,
421
+ category: MEASURE_CATEGORY.ORDERS,
422
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_AOV,
423
+ valueType: MeasureValueType.CURRENCY,
424
+ decimalPlaces: 2,
425
+ useCompactNotation: false,
426
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
427
+ tooltip: 'Average net revenue per order after discounts and refunds. The most reliable AOV for profitability and ROAS calculations.',
428
+ formulaDisplay: 'Net Revenue ÷ Order Count',
429
+ formula: 'net_revenue / order_count',
430
+ relatedMeasures: [MEASURE.ORDERS_GROSS_AOV, MEASURE.ORDERS_TOTAL_AOV, MEASURE.ORDERS_NET_REVENUE],
431
+ },
432
+ [MEASURE.ORDERS_NEW_CUSTOMER_TOTAL_AOV]: {
433
+ title: 'NC Total AOV',
434
+ description: 'Average order value for new customers (total revenue).',
435
+ sumPrefix: '$',
436
+ sumSuffix: '',
437
+ avgPrefix: '$',
438
+ avgSuffix: '',
439
+ icon: 'dollar-sign',
440
+ measure: MEASURE.ORDERS_NEW_CUSTOMER_TOTAL_AOV,
441
+ category: MEASURE_CATEGORY.ORDERS,
442
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_AOV,
443
+ valueType: MeasureValueType.CURRENCY,
444
+ decimalPlaces: 2,
445
+ useCompactNotation: false,
446
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
447
+ shortTitle: 'NC Total AOV',
448
+ tooltip: 'Average total transaction value for first-time buyers. Compare to RC Total AOV to see if new customers spend more or less.',
449
+ formulaDisplay: 'NC Total Revenue ÷ NC Order Count',
450
+ formula: 'nc_total_revenue / nc_order_count',
451
+ relatedMeasures: [MEASURE.ORDERS_TOTAL_AOV, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_AOV, MEASURE.ORDERS_NEW_CUSTOMER_NET_AOV],
452
+ },
453
+ [MEASURE.ORDERS_NEW_CUSTOMER_GROSS_AOV]: {
454
+ title: 'NC Gross AOV',
455
+ description: 'Average order value for new customers (gross revenue).',
456
+ sumPrefix: '$',
457
+ sumSuffix: '',
458
+ avgPrefix: '$',
459
+ avgSuffix: '',
460
+ icon: 'dollar-sign',
461
+ measure: MEASURE.ORDERS_NEW_CUSTOMER_GROSS_AOV,
462
+ category: MEASURE_CATEGORY.ORDERS,
463
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_AOV,
464
+ valueType: MeasureValueType.CURRENCY,
465
+ decimalPlaces: 2,
466
+ useCompactNotation: false,
467
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
468
+ shortTitle: 'NC Gross AOV',
469
+ tooltip: 'Average gross revenue per order for new customers before discounts and refunds.',
470
+ formulaDisplay: 'NC Gross Revenue ÷ NC Order Count',
471
+ formula: 'nc_gross_revenue / nc_order_count',
472
+ relatedMeasures: [MEASURE.ORDERS_GROSS_AOV, MEASURE.ORDERS_NEW_CUSTOMER_NET_AOV, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_REVENUE],
473
+ },
474
+ [MEASURE.ORDERS_NEW_CUSTOMER_NET_AOV]: {
475
+ title: 'NC Net AOV',
476
+ description: 'Average order value for new customers (net revenue).',
477
+ sumPrefix: '$',
478
+ sumSuffix: '',
479
+ avgPrefix: '$',
480
+ avgSuffix: '',
481
+ icon: 'dollar-sign',
482
+ measure: MEASURE.ORDERS_NEW_CUSTOMER_NET_AOV,
483
+ category: MEASURE_CATEGORY.ORDERS,
484
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_AOV,
485
+ valueType: MeasureValueType.CURRENCY,
486
+ decimalPlaces: 2,
487
+ useCompactNotation: false,
488
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
489
+ shortTitle: 'NC Net AOV',
490
+ tooltip: 'Average net revenue per order for new customers after discounts and refunds. Key input for new customer payback calculations.',
491
+ formulaDisplay: 'NC Net Revenue ÷ NC Order Count',
492
+ formula: 'nc_net_revenue / nc_order_count',
493
+ relatedMeasures: [MEASURE.ORDERS_NET_AOV, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_AOV, MEASURE.ORDERS_NEW_CUSTOMER_NET_REVENUE],
494
+ },
495
+ [MEASURE.ORDERS_RETURNING_CUSTOMER_TOTAL_AOV]: {
496
+ title: 'RC Total AOV',
497
+ description: 'Average order value for returning customers (total revenue).',
498
+ sumPrefix: '$',
499
+ sumSuffix: '',
500
+ avgPrefix: '$',
501
+ avgSuffix: '',
502
+ icon: 'dollar-sign',
503
+ measure: MEASURE.ORDERS_RETURNING_CUSTOMER_TOTAL_AOV,
504
+ category: MEASURE_CATEGORY.ORDERS,
505
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_AOV,
506
+ valueType: MeasureValueType.CURRENCY,
507
+ decimalPlaces: 2,
508
+ useCompactNotation: false,
509
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
510
+ shortTitle: 'RC Total AOV',
511
+ tooltip: 'Average total transaction value for returning buyers. Typically higher than new customer AOV as loyal customers buy more.',
512
+ formulaDisplay: 'RC Total Revenue ÷ RC Order Count',
513
+ formula: 'rc_total_revenue / rc_order_count',
514
+ relatedMeasures: [MEASURE.ORDERS_TOTAL_AOV, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_AOV, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_AOV],
515
+ },
516
+ [MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_AOV]: {
517
+ title: 'RC Gross AOV',
518
+ description: 'Average order value for returning customers (gross revenue).',
519
+ sumPrefix: '$',
520
+ sumSuffix: '',
521
+ avgPrefix: '$',
522
+ avgSuffix: '',
523
+ icon: 'dollar-sign',
524
+ measure: MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_AOV,
525
+ category: MEASURE_CATEGORY.ORDERS,
526
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_AOV,
527
+ valueType: MeasureValueType.CURRENCY,
528
+ decimalPlaces: 2,
529
+ useCompactNotation: false,
530
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
531
+ shortTitle: 'RC Gross AOV',
532
+ tooltip: 'Average gross revenue per order for returning customers before discounts and refunds.',
533
+ formulaDisplay: 'RC Gross Revenue ÷ RC Order Count',
534
+ formula: 'rc_gross_revenue / rc_order_count',
535
+ relatedMeasures: [MEASURE.ORDERS_GROSS_AOV, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_AOV, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_REVENUE],
536
+ },
537
+ [MEASURE.ORDERS_RETURNING_CUSTOMER_NET_AOV]: {
538
+ title: 'RC Net AOV',
539
+ description: 'Average order value for returning customers (net revenue).',
540
+ sumPrefix: '$',
541
+ sumSuffix: '',
542
+ avgPrefix: '$',
543
+ avgSuffix: '',
544
+ icon: 'dollar-sign',
545
+ measure: MEASURE.ORDERS_RETURNING_CUSTOMER_NET_AOV,
546
+ category: MEASURE_CATEGORY.ORDERS,
547
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_AOV,
548
+ valueType: MeasureValueType.CURRENCY,
549
+ decimalPlaces: 2,
550
+ useCompactNotation: false,
551
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
552
+ shortTitle: 'RC Net AOV',
553
+ tooltip: 'Average net revenue per order for returning customers after discounts and refunds.',
554
+ formulaDisplay: 'RC Net Revenue ÷ RC Order Count',
555
+ formula: 'rc_net_revenue / rc_order_count',
556
+ relatedMeasures: [MEASURE.ORDERS_NET_AOV, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_AOV, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_REVENUE],
293
557
  },
294
558
  [MEASURE.ORDERS_COGS]: {
295
559
  title: 'COGS',
@@ -300,11 +564,14 @@ export const ORDERS_MEASURES_MAP = {
300
564
  avgSuffix: '',
301
565
  icon: 'trending-down',
302
566
  measure: MEASURE.ORDERS_COGS,
303
- category: MEASURE_CATEGORY.SALES,
567
+ category: MEASURE_CATEGORY.PROFITABILITY,
568
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
304
569
  valueType: MeasureValueType.CURRENCY,
305
570
  decimalPlaces: 2,
306
571
  useCompactNotation: true,
307
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
572
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
573
+ tooltip: 'The total cost of products sold, including manufacturing or purchase costs. Subtracted from revenue to calculate gross margin.',
574
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN, MEASURE.ORDERS_COGS_PER_ORDER, MEASURE.ORDERS_COGS_GROSS_RATE],
308
575
  },
309
576
  [MEASURE.ORDERS_NEW_CUSTOMER_COGS]: {
310
577
  title: 'NC COGS',
@@ -315,11 +582,14 @@ export const ORDERS_MEASURES_MAP = {
315
582
  avgSuffix: '',
316
583
  icon: 'trending-down',
317
584
  measure: MEASURE.ORDERS_NEW_CUSTOMER_COGS,
318
- category: MEASURE_CATEGORY.SALES,
585
+ category: MEASURE_CATEGORY.PROFITABILITY,
586
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
319
587
  valueType: MeasureValueType.CURRENCY,
320
588
  decimalPlaces: 2,
321
589
  useCompactNotation: true,
322
590
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
591
+ tooltip: 'Cost of goods sold for orders placed by new customers. Used to calculate new customer gross margin.',
592
+ relatedMeasures: [MEASURE.ORDERS_COGS, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN, MEASURE.ORDERS_RETURNING_CUSTOMER_COGS],
323
593
  },
324
594
  [MEASURE.ORDERS_RETURNING_CUSTOMER_COGS]: {
325
595
  title: 'RC COGS',
@@ -330,11 +600,14 @@ export const ORDERS_MEASURES_MAP = {
330
600
  avgSuffix: '',
331
601
  icon: 'trending-down',
332
602
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_COGS,
333
- category: MEASURE_CATEGORY.SALES,
603
+ category: MEASURE_CATEGORY.PROFITABILITY,
604
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
334
605
  valueType: MeasureValueType.CURRENCY,
335
606
  decimalPlaces: 2,
336
607
  useCompactNotation: true,
337
608
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
609
+ tooltip: 'Cost of goods sold for orders placed by returning customers. Used to calculate repeat-buyer gross margin.',
610
+ relatedMeasures: [MEASURE.ORDERS_COGS, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN, MEASURE.ORDERS_NEW_CUSTOMER_COGS],
338
611
  },
339
612
  [MEASURE.ORDERS_COGS_PER_ORDER]: {
340
613
  title: 'COGS Per Order',
@@ -345,11 +618,16 @@ export const ORDERS_MEASURES_MAP = {
345
618
  avgSuffix: '',
346
619
  icon: 'trending-down',
347
620
  measure: MEASURE.ORDERS_COGS_PER_ORDER,
348
- category: MEASURE_CATEGORY.SALES,
621
+ category: MEASURE_CATEGORY.PROFITABILITY,
622
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
349
623
  valueType: MeasureValueType.CURRENCY,
350
624
  decimalPlaces: 2,
351
625
  useCompactNotation: false,
352
626
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
627
+ tooltip: 'Average product cost per order. Useful for understanding the cost structure of a typical order.',
628
+ formulaDisplay: 'COGS ÷ Order Count',
629
+ formula: 'cogs / order_count',
630
+ relatedMeasures: [MEASURE.ORDERS_COGS, MEASURE.ORDERS_GROSS_MARGIN_PER_ORDER, MEASURE.ORDERS_NEW_CUSTOMER_COGS_PER_ORDER],
353
631
  },
354
632
  [MEASURE.ORDERS_NEW_CUSTOMER_COGS_PER_ORDER]: {
355
633
  title: 'NC COGS Per Order',
@@ -360,11 +638,17 @@ export const ORDERS_MEASURES_MAP = {
360
638
  avgSuffix: '',
361
639
  icon: 'trending-down',
362
640
  measure: MEASURE.ORDERS_NEW_CUSTOMER_COGS_PER_ORDER,
363
- category: MEASURE_CATEGORY.SALES,
641
+ category: MEASURE_CATEGORY.PROFITABILITY,
642
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
364
643
  valueType: MeasureValueType.CURRENCY,
365
644
  decimalPlaces: 2,
366
645
  useCompactNotation: false,
367
646
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
647
+ shortTitle: 'NC COGS/Order',
648
+ tooltip: 'Average product cost per new customer order. Compare to returning customers to assess cost mix differences.',
649
+ formulaDisplay: 'NC COGS ÷ NC Order Count',
650
+ formula: 'nc_cogs / nc_order_count',
651
+ relatedMeasures: [MEASURE.ORDERS_COGS_PER_ORDER, MEASURE.ORDERS_RETURNING_CUSTOMER_COGS_PER_ORDER, MEASURE.ORDERS_NEW_CUSTOMER_COGS],
368
652
  },
369
653
  [MEASURE.ORDERS_RETURNING_CUSTOMER_COGS_PER_ORDER]: {
370
654
  title: 'RC COGS Per Order',
@@ -375,11 +659,17 @@ export const ORDERS_MEASURES_MAP = {
375
659
  avgSuffix: '',
376
660
  icon: 'trending-down',
377
661
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_COGS_PER_ORDER,
378
- category: MEASURE_CATEGORY.SALES,
662
+ category: MEASURE_CATEGORY.PROFITABILITY,
663
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
379
664
  valueType: MeasureValueType.CURRENCY,
380
665
  decimalPlaces: 2,
381
666
  useCompactNotation: false,
382
667
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
668
+ shortTitle: 'RC COGS/Order',
669
+ tooltip: 'Average product cost per returning customer order.',
670
+ formulaDisplay: 'RC COGS ÷ RC Order Count',
671
+ formula: 'rc_cogs / rc_order_count',
672
+ relatedMeasures: [MEASURE.ORDERS_COGS_PER_ORDER, MEASURE.ORDERS_NEW_CUSTOMER_COGS_PER_ORDER, MEASURE.ORDERS_RETURNING_CUSTOMER_COGS],
383
673
  },
384
674
  [MEASURE.ORDERS_GROSS_MARGIN]: {
385
675
  title: 'Gross Margin',
@@ -390,11 +680,16 @@ export const ORDERS_MEASURES_MAP = {
390
680
  avgSuffix: '',
391
681
  icon: 'trending-up',
392
682
  measure: MEASURE.ORDERS_GROSS_MARGIN,
393
- category: MEASURE_CATEGORY.SALES,
683
+ category: MEASURE_CATEGORY.PROFITABILITY,
684
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
394
685
  valueType: MeasureValueType.CURRENCY,
395
686
  decimalPlaces: 2,
396
687
  useCompactNotation: true,
397
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
688
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
689
+ tooltip: 'Gross revenue minus the cost of goods sold. Represents the profit before operating expenses.',
690
+ formulaDisplay: 'Gross Revenue − COGS',
691
+ formula: 'gross_revenue - cogs',
692
+ relatedMeasures: [MEASURE.ORDERS_COGS, MEASURE.ORDERS_GROSS_REVENUE, MEASURE.ORDERS_GROSS_MARGIN_GROSS_RATE, MEASURE.ORDERS_NET_MARGIN],
398
693
  },
399
694
  [MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN]: {
400
695
  title: 'NC Gross Margin',
@@ -405,11 +700,17 @@ export const ORDERS_MEASURES_MAP = {
405
700
  avgSuffix: '',
406
701
  icon: 'trending-up',
407
702
  measure: MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN,
408
- category: MEASURE_CATEGORY.SALES,
703
+ category: MEASURE_CATEGORY.PROFITABILITY,
704
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
409
705
  valueType: MeasureValueType.CURRENCY,
410
706
  decimalPlaces: 2,
411
707
  useCompactNotation: true,
412
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
708
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
709
+ shortTitle: 'NC Gross Margin',
710
+ tooltip: 'Gross revenue from new customers minus their COGS. Shows the pre-expense profit from acquisition orders.',
711
+ formulaDisplay: 'NC Gross Revenue − NC COGS',
712
+ formula: 'nc_gross_revenue - nc_cogs',
713
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN, MEASURE.ORDERS_NEW_CUSTOMER_COGS],
413
714
  },
414
715
  [MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN]: {
415
716
  title: 'RC Gross Margin',
@@ -420,11 +721,17 @@ export const ORDERS_MEASURES_MAP = {
420
721
  avgSuffix: '',
421
722
  icon: 'trending-up',
422
723
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN,
423
- category: MEASURE_CATEGORY.SALES,
724
+ category: MEASURE_CATEGORY.PROFITABILITY,
725
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
424
726
  valueType: MeasureValueType.CURRENCY,
425
727
  decimalPlaces: 2,
426
728
  useCompactNotation: true,
427
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
729
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
730
+ shortTitle: 'RC Gross Margin',
731
+ tooltip: 'Gross revenue from returning customers minus their COGS. Reflects the profitability of repeat business.',
732
+ formulaDisplay: 'RC Gross Revenue − RC COGS',
733
+ formula: 'rc_gross_revenue - rc_cogs',
734
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN, MEASURE.ORDERS_RETURNING_CUSTOMER_COGS],
428
735
  },
429
736
  [MEASURE.ORDERS_GROSS_MARGIN_PER_ORDER]: {
430
737
  title: 'Gross Margin Per Order',
@@ -435,11 +742,17 @@ export const ORDERS_MEASURES_MAP = {
435
742
  avgSuffix: '',
436
743
  icon: 'trending-up',
437
744
  measure: MEASURE.ORDERS_GROSS_MARGIN_PER_ORDER,
438
- category: MEASURE_CATEGORY.SALES,
745
+ category: MEASURE_CATEGORY.PROFITABILITY,
746
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
439
747
  valueType: MeasureValueType.CURRENCY,
440
748
  decimalPlaces: 2,
441
749
  useCompactNotation: false,
442
750
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
751
+ shortTitle: 'Gross Margin/Ord',
752
+ tooltip: 'Average gross profit earned per order. Helps benchmark profitability against ad spend on a per-order basis.',
753
+ formulaDisplay: 'Gross Margin ÷ Order Count',
754
+ formula: 'gross_margin / order_count',
755
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN, MEASURE.ORDERS_NET_MARGIN_PER_ORDER, MEASURE.ORDERS_COGS_PER_ORDER],
443
756
  },
444
757
  [MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN_PER_ORDER]: {
445
758
  title: 'NC Gross Margin Per Order',
@@ -450,11 +763,17 @@ export const ORDERS_MEASURES_MAP = {
450
763
  avgSuffix: '',
451
764
  icon: 'trending-up',
452
765
  measure: MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN_PER_ORDER,
453
- category: MEASURE_CATEGORY.SALES,
766
+ category: MEASURE_CATEGORY.PROFITABILITY,
767
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
454
768
  valueType: MeasureValueType.CURRENCY,
455
769
  decimalPlaces: 2,
456
770
  useCompactNotation: false,
457
771
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
772
+ shortTitle: 'NC GM/Order',
773
+ tooltip: 'Average gross profit per new customer order. Compare to CPA to evaluate first-order unit economics.',
774
+ formulaDisplay: 'NC Gross Margin ÷ NC Order Count',
775
+ formula: 'nc_gross_margin / nc_order_count',
776
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN_PER_ORDER, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN_PER_ORDER, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN],
458
777
  },
459
778
  [MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN_PER_ORDER]: {
460
779
  title: 'RC Gross Margin Per Order',
@@ -465,11 +784,17 @@ export const ORDERS_MEASURES_MAP = {
465
784
  avgSuffix: '',
466
785
  icon: 'trending-up',
467
786
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN_PER_ORDER,
468
- category: MEASURE_CATEGORY.SALES,
787
+ category: MEASURE_CATEGORY.PROFITABILITY,
788
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
469
789
  valueType: MeasureValueType.CURRENCY,
470
790
  decimalPlaces: 2,
471
791
  useCompactNotation: false,
472
792
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
793
+ shortTitle: 'RC GM/Order',
794
+ tooltip: 'Average gross profit per returning customer order.',
795
+ formulaDisplay: 'RC Gross Margin ÷ RC Order Count',
796
+ formula: 'rc_gross_margin / rc_order_count',
797
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN_PER_ORDER, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN_PER_ORDER, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN],
473
798
  },
474
799
  [MEASURE.ORDERS_NET_MARGIN]: {
475
800
  title: 'Net Margin',
@@ -480,11 +805,16 @@ export const ORDERS_MEASURES_MAP = {
480
805
  avgSuffix: '',
481
806
  icon: 'trending-up',
482
807
  measure: MEASURE.ORDERS_NET_MARGIN,
483
- category: MEASURE_CATEGORY.SALES,
808
+ category: MEASURE_CATEGORY.PROFITABILITY,
809
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
484
810
  valueType: MeasureValueType.CURRENCY,
485
811
  decimalPlaces: 2,
486
812
  useCompactNotation: true,
487
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
813
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
814
+ tooltip: 'Net revenue (after discounts and refunds) minus cost of goods sold. A tighter profitability view than gross margin.',
815
+ formulaDisplay: 'Net Revenue − COGS',
816
+ formula: 'net_revenue - cogs',
817
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN, MEASURE.ORDERS_NET_REVENUE, MEASURE.ORDERS_COGS, MEASURE.ORDERS_NET_MARGIN_NET_RATE],
488
818
  },
489
819
  [MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN]: {
490
820
  title: 'NC Net Margin',
@@ -495,11 +825,17 @@ export const ORDERS_MEASURES_MAP = {
495
825
  avgSuffix: '',
496
826
  icon: 'trending-up',
497
827
  measure: MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN,
498
- category: MEASURE_CATEGORY.SALES,
828
+ category: MEASURE_CATEGORY.PROFITABILITY,
829
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
499
830
  valueType: MeasureValueType.CURRENCY,
500
831
  decimalPlaces: 2,
501
832
  useCompactNotation: true,
502
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
833
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
834
+ shortTitle: 'NC Net Margin',
835
+ tooltip: 'Net margin from new customer orders after discounts and refunds minus COGS.',
836
+ formulaDisplay: 'NC Net Revenue − NC COGS',
837
+ formula: 'nc_net_revenue - nc_cogs',
838
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN],
503
839
  },
504
840
  [MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN]: {
505
841
  title: 'RC Net Margin',
@@ -510,11 +846,17 @@ export const ORDERS_MEASURES_MAP = {
510
846
  avgSuffix: '',
511
847
  icon: 'trending-up',
512
848
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN,
513
- category: MEASURE_CATEGORY.SALES,
849
+ category: MEASURE_CATEGORY.PROFITABILITY,
850
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
514
851
  valueType: MeasureValueType.CURRENCY,
515
852
  decimalPlaces: 2,
516
853
  useCompactNotation: true,
517
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
854
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
855
+ shortTitle: 'RC Net Margin',
856
+ tooltip: 'Net margin from returning customer orders after discounts and refunds minus COGS.',
857
+ formulaDisplay: 'RC Net Revenue − RC COGS',
858
+ formula: 'rc_net_revenue - rc_cogs',
859
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN, MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN],
518
860
  },
519
861
  [MEASURE.ORDERS_NET_MARGIN_PER_ORDER]: {
520
862
  title: 'Net Margin Per Order',
@@ -525,11 +867,17 @@ export const ORDERS_MEASURES_MAP = {
525
867
  avgSuffix: '',
526
868
  icon: 'trending-up',
527
869
  measure: MEASURE.ORDERS_NET_MARGIN_PER_ORDER,
528
- category: MEASURE_CATEGORY.SALES,
870
+ category: MEASURE_CATEGORY.PROFITABILITY,
871
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
529
872
  valueType: MeasureValueType.CURRENCY,
530
873
  decimalPlaces: 2,
531
874
  useCompactNotation: false,
532
875
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
876
+ shortTitle: 'Net Margin/Ord',
877
+ tooltip: 'Average net profit per order after discounts, refunds, and COGS.',
878
+ formulaDisplay: 'Net Margin ÷ Order Count',
879
+ formula: 'net_margin / order_count',
880
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN, MEASURE.ORDERS_GROSS_MARGIN_PER_ORDER, MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_PER_ORDER],
533
881
  },
534
882
  [MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_PER_ORDER]: {
535
883
  title: 'NC Net Margin Per Order',
@@ -540,11 +888,17 @@ export const ORDERS_MEASURES_MAP = {
540
888
  avgSuffix: '',
541
889
  icon: 'trending-up',
542
890
  measure: MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_PER_ORDER,
543
- category: MEASURE_CATEGORY.SALES,
891
+ category: MEASURE_CATEGORY.PROFITABILITY,
892
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
544
893
  valueType: MeasureValueType.CURRENCY,
545
894
  decimalPlaces: 2,
546
895
  useCompactNotation: false,
547
896
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
897
+ shortTitle: 'NC NM/Order',
898
+ tooltip: 'Average net profit per new customer order. Use with CPA to evaluate whether acquisition is profitable at the first order.',
899
+ formulaDisplay: 'NC Net Margin ÷ NC Order Count',
900
+ formula: 'nc_net_margin / nc_order_count',
901
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN_PER_ORDER, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN_PER_ORDER, MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN],
548
902
  },
549
903
  [MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN_PER_ORDER]: {
550
904
  title: 'RC Net Margin Per Order',
@@ -555,11 +909,17 @@ export const ORDERS_MEASURES_MAP = {
555
909
  avgSuffix: '',
556
910
  icon: 'trending-up',
557
911
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN_PER_ORDER,
558
- category: MEASURE_CATEGORY.SALES,
912
+ category: MEASURE_CATEGORY.PROFITABILITY,
913
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
559
914
  valueType: MeasureValueType.CURRENCY,
560
915
  decimalPlaces: 2,
561
916
  useCompactNotation: false,
562
917
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
918
+ shortTitle: 'RC NM/Order',
919
+ tooltip: 'Average net profit per returning customer order.',
920
+ formulaDisplay: 'RC Net Margin ÷ RC Order Count',
921
+ formula: 'rc_net_margin / rc_order_count',
922
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN_PER_ORDER, MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_PER_ORDER, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN],
563
923
  },
564
924
  [MEASURE.ORDERS_REFUNDS]: {
565
925
  title: 'Refunds',
@@ -570,11 +930,14 @@ export const ORDERS_MEASURES_MAP = {
570
930
  avgSuffix: '',
571
931
  icon: 'rotate-ccw',
572
932
  measure: MEASURE.ORDERS_REFUNDS,
573
- category: MEASURE_CATEGORY.SALES,
933
+ category: MEASURE_CATEGORY.ORDERS,
934
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
574
935
  valueType: MeasureValueType.CURRENCY,
575
936
  decimalPlaces: 2,
576
937
  useCompactNotation: true,
577
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
938
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
939
+ tooltip: 'The total dollar amount refunded to customers in the period. High values reduce net revenue and signal product or fulfillment issues.',
940
+ relatedMeasures: [MEASURE.ORDERS_REFUND_RATE, MEASURE.ORDERS_REFUND_COUNT, MEASURE.ORDERS_DISCOUNTS, MEASURE.ORDERS_NET_REVENUE],
578
941
  },
579
942
  [MEASURE.ORDERS_REFUND_COUNT]: {
580
943
  title: 'Refund Count',
@@ -585,11 +948,14 @@ export const ORDERS_MEASURES_MAP = {
585
948
  avgSuffix: '',
586
949
  icon: 'rotate-ccw',
587
950
  measure: MEASURE.ORDERS_REFUND_COUNT,
588
- category: MEASURE_CATEGORY.SALES,
951
+ category: MEASURE_CATEGORY.ORDERS,
952
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
589
953
  valueType: MeasureValueType.NUMBER,
590
954
  decimalPlaces: 0,
591
955
  useCompactNotation: false,
592
956
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
957
+ tooltip: 'The number of orders that had a refund issued. Use with Refund Rate to understand the scale of returns.',
958
+ relatedMeasures: [MEASURE.ORDERS_REFUNDS, MEASURE.ORDERS_REFUND_RATE, MEASURE.ORDERS_COUNT],
593
959
  },
594
960
  [MEASURE.ORDERS_REFUND_RATE]: {
595
961
  title: 'Refund Rate',
@@ -600,11 +966,16 @@ export const ORDERS_MEASURES_MAP = {
600
966
  avgSuffix: '%',
601
967
  icon: 'percent',
602
968
  measure: MEASURE.ORDERS_REFUND_RATE,
603
- category: MEASURE_CATEGORY.SALES,
969
+ category: MEASURE_CATEGORY.ORDERS,
970
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
604
971
  valueType: MeasureValueType.PERCENTAGE,
605
972
  decimalPlaces: 2,
606
973
  useCompactNotation: false,
607
974
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
975
+ tooltip: 'The share of orders that resulted in a refund. Elevated refund rates can indicate product quality, sizing, or expectation issues.',
976
+ formulaDisplay: 'Refund Count ÷ Order Count × 100',
977
+ formula: 'refund_count / order_count * 100',
978
+ relatedMeasures: [MEASURE.ORDERS_REFUNDS, MEASURE.ORDERS_REFUND_COUNT, MEASURE.ORDERS_DISCOUNT_RATE],
608
979
  },
609
980
  [MEASURE.ORDERS_REFUND_PER_ORDER]: {
610
981
  title: 'Refund Per Order',
@@ -615,11 +986,17 @@ export const ORDERS_MEASURES_MAP = {
615
986
  avgSuffix: '',
616
987
  icon: 'rotate-ccw',
617
988
  measure: MEASURE.ORDERS_REFUND_PER_ORDER,
618
- category: MEASURE_CATEGORY.SALES,
989
+ category: MEASURE_CATEGORY.ORDERS,
990
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
619
991
  valueType: MeasureValueType.CURRENCY,
620
992
  decimalPlaces: 2,
621
993
  useCompactNotation: false,
622
994
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
995
+ shortTitle: 'Refund/Order',
996
+ tooltip: 'Average refund dollar amount per order placed. Useful for modeling the true realized revenue per order.',
997
+ formulaDisplay: 'Total Refunds ÷ Order Count',
998
+ formula: 'total_refunds / order_count',
999
+ relatedMeasures: [MEASURE.ORDERS_REFUNDS, MEASURE.ORDERS_DISCOUNT_PER_ORDER, MEASURE.ORDERS_NET_AOV],
623
1000
  },
624
1001
  [MEASURE.ORDERS_DISCOUNTS]: {
625
1002
  title: 'Discounts',
@@ -630,11 +1007,14 @@ export const ORDERS_MEASURES_MAP = {
630
1007
  avgSuffix: '',
631
1008
  icon: 'tag',
632
1009
  measure: MEASURE.ORDERS_DISCOUNTS,
633
- category: MEASURE_CATEGORY.SALES,
1010
+ category: MEASURE_CATEGORY.ORDERS,
1011
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
634
1012
  valueType: MeasureValueType.CURRENCY,
635
1013
  decimalPlaces: 2,
636
1014
  useCompactNotation: true,
637
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1015
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
1016
+ tooltip: 'The total dollar value of discounts applied across all orders. High discount totals reduce gross margin.',
1017
+ relatedMeasures: [MEASURE.ORDERS_DISCOUNT_RATE, MEASURE.ORDERS_REFUNDS, MEASURE.ORDERS_GROSS_REVENUE, MEASURE.ORDERS_NET_REVENUE],
638
1018
  },
639
1019
  [MEASURE.ORDERS_DISCOUNT_RATE]: {
640
1020
  title: 'Discount Rate',
@@ -645,11 +1025,16 @@ export const ORDERS_MEASURES_MAP = {
645
1025
  avgSuffix: '%',
646
1026
  icon: 'percent',
647
1027
  measure: MEASURE.ORDERS_DISCOUNT_RATE,
648
- category: MEASURE_CATEGORY.SALES,
1028
+ category: MEASURE_CATEGORY.ORDERS,
1029
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
649
1030
  valueType: MeasureValueType.PERCENTAGE,
650
1031
  decimalPlaces: 2,
651
1032
  useCompactNotation: false,
652
1033
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1034
+ tooltip: 'Discounts as a share of gross revenue. A high discount rate erodes margin and may indicate over-reliance on promotions.',
1035
+ formulaDisplay: 'Discounts ÷ Gross Revenue × 100',
1036
+ formula: 'discounts / gross_revenue * 100',
1037
+ relatedMeasures: [MEASURE.ORDERS_DISCOUNTS, MEASURE.ORDERS_REFUND_RATE, MEASURE.ORDERS_GROSS_REVENUE],
653
1038
  },
654
1039
  [MEASURE.ORDERS_DISCOUNT_PER_ORDER]: {
655
1040
  title: 'Discount Per Order',
@@ -660,11 +1045,17 @@ export const ORDERS_MEASURES_MAP = {
660
1045
  avgSuffix: '',
661
1046
  icon: 'tag',
662
1047
  measure: MEASURE.ORDERS_DISCOUNT_PER_ORDER,
663
- category: MEASURE_CATEGORY.SALES,
1048
+ category: MEASURE_CATEGORY.ORDERS,
1049
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
664
1050
  valueType: MeasureValueType.CURRENCY,
665
1051
  decimalPlaces: 2,
666
1052
  useCompactNotation: false,
667
1053
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1054
+ shortTitle: 'Discount/Order',
1055
+ tooltip: 'Average discount dollar value applied per order. Useful for understanding how much revenue is being given away per transaction.',
1056
+ formulaDisplay: 'Total Discounts ÷ Order Count',
1057
+ formula: 'total_discounts / order_count',
1058
+ relatedMeasures: [MEASURE.ORDERS_DISCOUNTS, MEASURE.ORDERS_REFUND_PER_ORDER, MEASURE.ORDERS_GROSS_AOV],
668
1059
  },
669
1060
  [MEASURE.ORDERS_SHIPPING]: {
670
1061
  title: 'Shipping',
@@ -675,11 +1066,14 @@ export const ORDERS_MEASURES_MAP = {
675
1066
  avgSuffix: '',
676
1067
  icon: 'truck',
677
1068
  measure: MEASURE.ORDERS_SHIPPING,
678
- category: MEASURE_CATEGORY.SALES,
1069
+ category: MEASURE_CATEGORY.ORDERS,
1070
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
679
1071
  valueType: MeasureValueType.CURRENCY,
680
1072
  decimalPlaces: 2,
681
1073
  useCompactNotation: true,
682
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1074
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
1075
+ tooltip: 'Total shipping fees collected from customers across all orders. Shipping revenue offsets fulfillment costs.',
1076
+ relatedMeasures: [MEASURE.ORDERS_SHIPPING_RATE, MEASURE.ORDERS_SHIPPING_PER_ORDER, MEASURE.ORDERS_TOTAL_REVENUE],
683
1077
  },
684
1078
  [MEASURE.ORDERS_SHIPPING_RATE]: {
685
1079
  title: 'Shipping Rate',
@@ -690,11 +1084,16 @@ export const ORDERS_MEASURES_MAP = {
690
1084
  avgSuffix: '%',
691
1085
  icon: 'percent',
692
1086
  measure: MEASURE.ORDERS_SHIPPING_RATE,
693
- category: MEASURE_CATEGORY.SALES,
1087
+ category: MEASURE_CATEGORY.ORDERS,
1088
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
694
1089
  valueType: MeasureValueType.PERCENTAGE,
695
1090
  decimalPlaces: 2,
696
1091
  useCompactNotation: false,
697
1092
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1093
+ tooltip: 'Shipping revenue as a share of total revenue. A declining rate may indicate free shipping promotions affecting margins.',
1094
+ formulaDisplay: 'Shipping ÷ Total Revenue × 100',
1095
+ formula: 'shipping / total_revenue * 100',
1096
+ relatedMeasures: [MEASURE.ORDERS_SHIPPING, MEASURE.ORDERS_TAX_RATE, MEASURE.ORDERS_TOTAL_REVENUE],
698
1097
  },
699
1098
  [MEASURE.ORDERS_SHIPPING_PER_ORDER]: {
700
1099
  title: 'Shipping Per Order',
@@ -705,11 +1104,17 @@ export const ORDERS_MEASURES_MAP = {
705
1104
  avgSuffix: '',
706
1105
  icon: 'truck',
707
1106
  measure: MEASURE.ORDERS_SHIPPING_PER_ORDER,
708
- category: MEASURE_CATEGORY.SALES,
1107
+ category: MEASURE_CATEGORY.ORDERS,
1108
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
709
1109
  valueType: MeasureValueType.CURRENCY,
710
1110
  decimalPlaces: 2,
711
1111
  useCompactNotation: false,
712
1112
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1113
+ shortTitle: 'Shipping/Order',
1114
+ tooltip: 'Average shipping fee collected per order.',
1115
+ formulaDisplay: 'Total Shipping ÷ Order Count',
1116
+ formula: 'total_shipping / order_count',
1117
+ relatedMeasures: [MEASURE.ORDERS_SHIPPING, MEASURE.ORDERS_TAX_PER_ORDER, MEASURE.ORDERS_TOTAL_AOV],
713
1118
  },
714
1119
  [MEASURE.ORDERS_TAX]: {
715
1120
  title: 'Tax',
@@ -720,11 +1125,14 @@ export const ORDERS_MEASURES_MAP = {
720
1125
  avgSuffix: '',
721
1126
  icon: 'file-text',
722
1127
  measure: MEASURE.ORDERS_TAX,
723
- category: MEASURE_CATEGORY.SALES,
1128
+ category: MEASURE_CATEGORY.ORDERS,
1129
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
724
1130
  valueType: MeasureValueType.CURRENCY,
725
1131
  decimalPlaces: 2,
726
1132
  useCompactNotation: true,
727
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1133
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
1134
+ tooltip: 'Total sales tax collected from customers across all orders. Tax is typically passed through and not retained as revenue.',
1135
+ relatedMeasures: [MEASURE.ORDERS_TAX_RATE, MEASURE.ORDERS_TAX_PER_ORDER, MEASURE.ORDERS_TOTAL_REVENUE],
728
1136
  },
729
1137
  [MEASURE.ORDERS_TAX_RATE]: {
730
1138
  title: 'Tax Rate',
@@ -735,11 +1143,16 @@ export const ORDERS_MEASURES_MAP = {
735
1143
  avgSuffix: '%',
736
1144
  icon: 'percent',
737
1145
  measure: MEASURE.ORDERS_TAX_RATE,
738
- category: MEASURE_CATEGORY.SALES,
1146
+ category: MEASURE_CATEGORY.ORDERS,
1147
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
739
1148
  valueType: MeasureValueType.PERCENTAGE,
740
1149
  decimalPlaces: 2,
741
1150
  useCompactNotation: false,
742
1151
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1152
+ tooltip: 'Tax collected as a share of total revenue. Useful for estimating effective tax burden across markets.',
1153
+ formulaDisplay: 'Tax ÷ Total Revenue × 100',
1154
+ formula: 'tax / total_revenue * 100',
1155
+ relatedMeasures: [MEASURE.ORDERS_TAX, MEASURE.ORDERS_SHIPPING_RATE, MEASURE.ORDERS_TOTAL_REVENUE],
743
1156
  },
744
1157
  [MEASURE.ORDERS_TAX_PER_ORDER]: {
745
1158
  title: 'Tax Per Order',
@@ -750,11 +1163,16 @@ export const ORDERS_MEASURES_MAP = {
750
1163
  avgSuffix: '',
751
1164
  icon: 'file-text',
752
1165
  measure: MEASURE.ORDERS_TAX_PER_ORDER,
753
- category: MEASURE_CATEGORY.SALES,
1166
+ category: MEASURE_CATEGORY.ORDERS,
1167
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
754
1168
  valueType: MeasureValueType.CURRENCY,
755
1169
  decimalPlaces: 2,
756
1170
  useCompactNotation: false,
757
1171
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1172
+ tooltip: 'Average tax amount collected per order.',
1173
+ formulaDisplay: 'Total Tax ÷ Order Count',
1174
+ formula: 'total_tax / order_count',
1175
+ relatedMeasures: [MEASURE.ORDERS_TAX, MEASURE.ORDERS_SHIPPING_PER_ORDER, MEASURE.ORDERS_TOTAL_AOV],
758
1176
  },
759
1177
  [MEASURE.ORDERS_NEW_CUSTOMER_RATE]: {
760
1178
  title: 'New Customer Rate',
@@ -765,11 +1183,17 @@ export const ORDERS_MEASURES_MAP = {
765
1183
  avgSuffix: '%',
766
1184
  icon: 'percent',
767
1185
  measure: MEASURE.ORDERS_NEW_CUSTOMER_RATE,
768
- category: MEASURE_CATEGORY.SALES,
1186
+ category: MEASURE_CATEGORY.ORDERS,
1187
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_CUSTOMER_SEGMENTS,
769
1188
  valueType: MeasureValueType.PERCENTAGE,
770
1189
  decimalPlaces: 2,
771
1190
  useCompactNotation: false,
772
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1191
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
1192
+ shortTitle: 'NC Rate',
1193
+ tooltip: 'The percentage of total orders placed by first-time buyers. A high NC rate means the business is acquisition-heavy vs. retention-driven.',
1194
+ formulaDisplay: 'NC Orders ÷ Total Orders × 100',
1195
+ formula: 'nc_order_count / order_count * 100',
1196
+ relatedMeasures: [MEASURE.ORDERS_RETURNING_CUSTOMER_RATE, MEASURE.ORDERS_NEW_CUSTOMER_COUNT, MEASURE.ORDERS_COUNT],
773
1197
  },
774
1198
  [MEASURE.ORDERS_RETURNING_CUSTOMER_RATE]: {
775
1199
  title: 'Returning Customer Rate',
@@ -780,11 +1204,17 @@ export const ORDERS_MEASURES_MAP = {
780
1204
  avgSuffix: '%',
781
1205
  icon: 'percent',
782
1206
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_RATE,
783
- category: MEASURE_CATEGORY.SALES,
1207
+ category: MEASURE_CATEGORY.ORDERS,
1208
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_CUSTOMER_SEGMENTS,
784
1209
  valueType: MeasureValueType.PERCENTAGE,
785
1210
  decimalPlaces: 2,
786
1211
  useCompactNotation: false,
787
- applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1212
+ applicableContexts: STANDARD_APPLICABLE_CONTEXTS,
1213
+ shortTitle: 'RC Rate',
1214
+ tooltip: 'The percentage of total orders placed by repeat buyers. A high RC rate signals strong customer loyalty and retention.',
1215
+ formulaDisplay: 'RC Orders ÷ Total Orders × 100',
1216
+ formula: 'rc_order_count / order_count * 100',
1217
+ relatedMeasures: [MEASURE.ORDERS_NEW_CUSTOMER_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_COUNT, MEASURE.ORDERS_COUNT],
788
1218
  },
789
1219
  [MEASURE.ORDERS_CM1_MARGIN_RATE]: {
790
1220
  title: 'CM1 Rate',
@@ -795,11 +1225,16 @@ export const ORDERS_MEASURES_MAP = {
795
1225
  avgSuffix: '%',
796
1226
  icon: 'percent',
797
1227
  measure: MEASURE.ORDERS_CM1_MARGIN_RATE,
798
- category: MEASURE_CATEGORY.SALES,
1228
+ category: MEASURE_CATEGORY.PROFITABILITY,
1229
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_CONTRIBUTION_MARGIN,
799
1230
  valueType: MeasureValueType.PERCENTAGE,
800
1231
  decimalPlaces: 2,
801
1232
  useCompactNotation: false,
802
1233
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1234
+ tooltip: 'Contribution Margin 1 (gross margin minus variable selling costs) as a percentage of revenue. Measures product-level profitability.',
1235
+ formulaDisplay: 'CM1 ÷ Revenue × 100',
1236
+ formula: 'cm1 / revenue * 100',
1237
+ relatedMeasures: [MEASURE.ORDERS_CM2_MARGIN_RATE, MEASURE.ORDERS_CM3_MARGIN_RATE, MEASURE.ORDERS_CM1_PER_ORDER],
803
1238
  },
804
1239
  [MEASURE.ORDERS_CM2_MARGIN_RATE]: {
805
1240
  title: 'CM2 Rate',
@@ -810,11 +1245,16 @@ export const ORDERS_MEASURES_MAP = {
810
1245
  avgSuffix: '%',
811
1246
  icon: 'percent',
812
1247
  measure: MEASURE.ORDERS_CM2_MARGIN_RATE,
813
- category: MEASURE_CATEGORY.SALES,
1248
+ category: MEASURE_CATEGORY.PROFITABILITY,
1249
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_CONTRIBUTION_MARGIN,
814
1250
  valueType: MeasureValueType.PERCENTAGE,
815
1251
  decimalPlaces: 2,
816
1252
  useCompactNotation: false,
817
1253
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1254
+ tooltip: 'Contribution Margin 2 (CM1 minus marketing costs) as a percentage of revenue. Reflects post-marketing profitability.',
1255
+ formulaDisplay: 'CM2 ÷ Revenue × 100',
1256
+ formula: 'cm2 / revenue * 100',
1257
+ relatedMeasures: [MEASURE.ORDERS_CM1_MARGIN_RATE, MEASURE.ORDERS_CM3_MARGIN_RATE, MEASURE.ORDERS_CM2_PER_ORDER],
818
1258
  },
819
1259
  [MEASURE.ORDERS_CM3_MARGIN_RATE]: {
820
1260
  title: 'CM3 Rate',
@@ -825,11 +1265,16 @@ export const ORDERS_MEASURES_MAP = {
825
1265
  avgSuffix: '%',
826
1266
  icon: 'percent',
827
1267
  measure: MEASURE.ORDERS_CM3_MARGIN_RATE,
828
- category: MEASURE_CATEGORY.SALES,
1268
+ category: MEASURE_CATEGORY.PROFITABILITY,
1269
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_CONTRIBUTION_MARGIN,
829
1270
  valueType: MeasureValueType.PERCENTAGE,
830
1271
  decimalPlaces: 2,
831
1272
  useCompactNotation: false,
832
1273
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1274
+ tooltip: 'Contribution Margin 3 (CM2 minus additional fixed costs) as a percentage of revenue. The final contribution margin layer.',
1275
+ formulaDisplay: 'CM3 ÷ Revenue × 100',
1276
+ formula: 'cm3 / revenue * 100',
1277
+ relatedMeasures: [MEASURE.ORDERS_CM1_MARGIN_RATE, MEASURE.ORDERS_CM2_MARGIN_RATE, MEASURE.ORDERS_CM3_PER_ORDER],
833
1278
  },
834
1279
  [MEASURE.ORDERS_CM1_PER_ORDER]: {
835
1280
  title: 'CM1 Per Order',
@@ -840,11 +1285,16 @@ export const ORDERS_MEASURES_MAP = {
840
1285
  avgSuffix: '',
841
1286
  icon: 'trending-up',
842
1287
  measure: MEASURE.ORDERS_CM1_PER_ORDER,
843
- category: MEASURE_CATEGORY.SALES,
1288
+ category: MEASURE_CATEGORY.PROFITABILITY,
1289
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_CONTRIBUTION_MARGIN,
844
1290
  valueType: MeasureValueType.CURRENCY,
845
1291
  decimalPlaces: 2,
846
1292
  useCompactNotation: false,
847
1293
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1294
+ tooltip: 'Average Contribution Margin 1 per order. The per-order profit after product costs and variable selling expenses.',
1295
+ formulaDisplay: 'CM1 ÷ Order Count',
1296
+ formula: 'cm1 / order_count',
1297
+ relatedMeasures: [MEASURE.ORDERS_CM1_MARGIN_RATE, MEASURE.ORDERS_CM2_PER_ORDER, MEASURE.ORDERS_CM3_PER_ORDER],
848
1298
  },
849
1299
  [MEASURE.ORDERS_CM2_PER_ORDER]: {
850
1300
  title: 'CM2 Per Order',
@@ -855,11 +1305,16 @@ export const ORDERS_MEASURES_MAP = {
855
1305
  avgSuffix: '',
856
1306
  icon: 'trending-up',
857
1307
  measure: MEASURE.ORDERS_CM2_PER_ORDER,
858
- category: MEASURE_CATEGORY.SALES,
1308
+ category: MEASURE_CATEGORY.PROFITABILITY,
1309
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_CONTRIBUTION_MARGIN,
859
1310
  valueType: MeasureValueType.CURRENCY,
860
1311
  decimalPlaces: 2,
861
1312
  useCompactNotation: false,
862
1313
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1314
+ tooltip: 'Average Contribution Margin 2 per order, after deducting marketing costs. Helps assess marketing efficiency at the order level.',
1315
+ formulaDisplay: 'CM2 ÷ Order Count',
1316
+ formula: 'cm2 / order_count',
1317
+ relatedMeasures: [MEASURE.ORDERS_CM2_MARGIN_RATE, MEASURE.ORDERS_CM1_PER_ORDER, MEASURE.ORDERS_CM3_PER_ORDER],
863
1318
  },
864
1319
  [MEASURE.ORDERS_CM3_PER_ORDER]: {
865
1320
  title: 'CM3 Per Order',
@@ -870,11 +1325,16 @@ export const ORDERS_MEASURES_MAP = {
870
1325
  avgSuffix: '',
871
1326
  icon: 'trending-up',
872
1327
  measure: MEASURE.ORDERS_CM3_PER_ORDER,
873
- category: MEASURE_CATEGORY.SALES,
1328
+ category: MEASURE_CATEGORY.PROFITABILITY,
1329
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_CONTRIBUTION_MARGIN,
874
1330
  valueType: MeasureValueType.CURRENCY,
875
1331
  decimalPlaces: 2,
876
1332
  useCompactNotation: false,
877
1333
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1334
+ tooltip: 'Average Contribution Margin 3 per order, after all layered cost deductions.',
1335
+ formulaDisplay: 'CM3 ÷ Order Count',
1336
+ formula: 'cm3 / order_count',
1337
+ relatedMeasures: [MEASURE.ORDERS_CM3_MARGIN_RATE, MEASURE.ORDERS_CM1_PER_ORDER, MEASURE.ORDERS_CM2_PER_ORDER],
878
1338
  },
879
1339
  [MEASURE.ORDERS_AVG_ORDERS_PER_CUSTOMER]: {
880
1340
  title: 'Avg Orders Per Customer',
@@ -885,11 +1345,17 @@ export const ORDERS_MEASURES_MAP = {
885
1345
  avgSuffix: '',
886
1346
  icon: 'users',
887
1347
  measure: MEASURE.ORDERS_AVG_ORDERS_PER_CUSTOMER,
888
- category: MEASURE_CATEGORY.SALES,
1348
+ category: MEASURE_CATEGORY.ORDERS,
1349
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_CUSTOMER_SEGMENTS,
889
1350
  valueType: MeasureValueType.NUMBER,
890
1351
  decimalPlaces: 2,
891
1352
  useCompactNotation: false,
892
1353
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1354
+ shortTitle: 'Avg Orders/Cust',
1355
+ tooltip: 'The average number of orders placed per unique customer in the period. Higher values indicate strong repeat purchase behavior.',
1356
+ formulaDisplay: 'Order Count ÷ Unique Customers',
1357
+ formula: 'order_count / unique_customers',
1358
+ relatedMeasures: [MEASURE.ORDERS_UNIQUE_CUSTOMERS, MEASURE.ORDERS_COUNT, MEASURE.ORDERS_NEW_CUSTOMERS, MEASURE.ORDERS_RETURNING_CUSTOMERS],
893
1359
  },
894
1360
  [MEASURE.ORDERS_NEW_CUSTOMERS]: {
895
1361
  title: 'New Customers',
@@ -900,11 +1366,14 @@ export const ORDERS_MEASURES_MAP = {
900
1366
  avgSuffix: '',
901
1367
  icon: 'user-plus',
902
1368
  measure: MEASURE.ORDERS_NEW_CUSTOMERS,
903
- category: MEASURE_CATEGORY.SALES,
1369
+ category: MEASURE_CATEGORY.ORDERS,
1370
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_CUSTOMER_SEGMENTS,
904
1371
  valueType: MeasureValueType.NUMBER,
905
1372
  decimalPlaces: 0,
906
1373
  useCompactNotation: false,
907
1374
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1375
+ tooltip: 'The number of distinct customers making their first-ever purchase in the period. Core acquisition metric.',
1376
+ relatedMeasures: [MEASURE.ORDERS_RETURNING_CUSTOMERS, MEASURE.ORDERS_NEW_CUSTOMER_COUNT, MEASURE.ORDERS_UNIQUE_CUSTOMERS],
908
1377
  },
909
1378
  [MEASURE.ORDERS_RETURNING_CUSTOMERS]: {
910
1379
  title: 'Returning Customers',
@@ -915,11 +1384,15 @@ export const ORDERS_MEASURES_MAP = {
915
1384
  avgSuffix: '',
916
1385
  icon: 'user-check',
917
1386
  measure: MEASURE.ORDERS_RETURNING_CUSTOMERS,
918
- category: MEASURE_CATEGORY.SALES,
1387
+ category: MEASURE_CATEGORY.ORDERS,
1388
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_CUSTOMER_SEGMENTS,
919
1389
  valueType: MeasureValueType.NUMBER,
920
1390
  decimalPlaces: 0,
921
1391
  useCompactNotation: false,
922
1392
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1393
+ shortTitle: 'Ret. Customers',
1394
+ tooltip: 'The number of distinct customers who have ordered before and purchased again in the period. Core retention metric.',
1395
+ relatedMeasures: [MEASURE.ORDERS_NEW_CUSTOMERS, MEASURE.ORDERS_RETURNING_CUSTOMER_COUNT, MEASURE.ORDERS_UNIQUE_CUSTOMERS],
923
1396
  },
924
1397
  [MEASURE.ORDERS_NEW_CUSTOMER_GROSS_RATE]: {
925
1398
  title: 'NC Gross Revenue Rate',
@@ -930,11 +1403,17 @@ export const ORDERS_MEASURES_MAP = {
930
1403
  avgSuffix: '%',
931
1404
  icon: 'percent',
932
1405
  measure: MEASURE.ORDERS_NEW_CUSTOMER_GROSS_RATE,
933
- category: MEASURE_CATEGORY.SALES,
1406
+ category: MEASURE_CATEGORY.ORDERS,
1407
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_CUSTOMER_SEGMENTS,
934
1408
  valueType: MeasureValueType.PERCENTAGE,
935
1409
  decimalPlaces: 2,
936
1410
  useCompactNotation: false,
937
1411
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1412
+ shortTitle: 'NC Gross Rate',
1413
+ tooltip: 'New customer gross revenue as a share of total gross revenue. Shows how much of top-line sales comes from first-time buyers.',
1414
+ formulaDisplay: 'NC Gross Revenue ÷ Gross Revenue × 100',
1415
+ formula: 'nc_gross_revenue / gross_revenue * 100',
1416
+ relatedMeasures: [MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_RATE, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_REVENUE, MEASURE.ORDERS_GROSS_REVENUE],
938
1417
  },
939
1418
  [MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_RATE]: {
940
1419
  title: 'RC Gross Revenue Rate',
@@ -945,11 +1424,17 @@ export const ORDERS_MEASURES_MAP = {
945
1424
  avgSuffix: '%',
946
1425
  icon: 'percent',
947
1426
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_RATE,
948
- category: MEASURE_CATEGORY.SALES,
1427
+ category: MEASURE_CATEGORY.ORDERS,
1428
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_CUSTOMER_SEGMENTS,
949
1429
  valueType: MeasureValueType.PERCENTAGE,
950
1430
  decimalPlaces: 2,
951
1431
  useCompactNotation: false,
952
1432
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1433
+ shortTitle: 'RC Gross Rate',
1434
+ tooltip: 'Returning customer gross revenue as a share of total gross revenue. High values indicate a retention-driven revenue base.',
1435
+ formulaDisplay: 'RC Gross Revenue ÷ Gross Revenue × 100',
1436
+ formula: 'rc_gross_revenue / gross_revenue * 100',
1437
+ relatedMeasures: [MEASURE.ORDERS_NEW_CUSTOMER_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_REVENUE, MEASURE.ORDERS_GROSS_REVENUE],
953
1438
  },
954
1439
  [MEASURE.ORDERS_REFUND_AMOUNT_BY_REFUND_DATE]: {
955
1440
  title: 'Refund Amount (by Refund Date)',
@@ -960,11 +1445,15 @@ export const ORDERS_MEASURES_MAP = {
960
1445
  avgSuffix: '',
961
1446
  icon: 'rotate-ccw',
962
1447
  measure: MEASURE.ORDERS_REFUND_AMOUNT_BY_REFUND_DATE,
963
- category: MEASURE_CATEGORY.SALES,
1448
+ category: MEASURE_CATEGORY.ORDERS,
1449
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
964
1450
  valueType: MeasureValueType.CURRENCY,
965
1451
  decimalPlaces: 2,
966
1452
  useCompactNotation: true,
967
1453
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1454
+ shortTitle: 'Refund by Date',
1455
+ tooltip: 'Refund amounts attributed to the date the refund was issued. Use this to track when refunds actually hit, not when orders were placed.',
1456
+ relatedMeasures: [MEASURE.ORDERS_REFUND_AMOUNT_BY_ORDER_DATE, MEASURE.ORDERS_REFUNDS, MEASURE.ORDERS_REFUND_GROSS_RATE],
968
1457
  },
969
1458
  [MEASURE.ORDERS_REFUND_AMOUNT_BY_ORDER_DATE]: {
970
1459
  title: 'Refund Amount (by Order Date)',
@@ -975,11 +1464,15 @@ export const ORDERS_MEASURES_MAP = {
975
1464
  avgSuffix: '',
976
1465
  icon: 'rotate-ccw',
977
1466
  measure: MEASURE.ORDERS_REFUND_AMOUNT_BY_ORDER_DATE,
978
- category: MEASURE_CATEGORY.SALES,
1467
+ category: MEASURE_CATEGORY.ORDERS,
1468
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
979
1469
  valueType: MeasureValueType.CURRENCY,
980
1470
  decimalPlaces: 2,
981
1471
  useCompactNotation: true,
982
1472
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1473
+ shortTitle: 'Refund by Order',
1474
+ tooltip: 'Refund amounts attributed to the original order date. Useful for cohort analysis and understanding which order batches had high returns.',
1475
+ relatedMeasures: [MEASURE.ORDERS_REFUND_AMOUNT_BY_REFUND_DATE, MEASURE.ORDERS_REFUNDS, MEASURE.ORDERS_REFUND_NET_RATE],
983
1476
  },
984
1477
  [MEASURE.ORDERS_REFUND_GROSS_RATE]: {
985
1478
  title: 'Refund Gross Rate',
@@ -990,11 +1483,17 @@ export const ORDERS_MEASURES_MAP = {
990
1483
  avgSuffix: '%',
991
1484
  icon: 'percent',
992
1485
  measure: MEASURE.ORDERS_REFUND_GROSS_RATE,
993
- category: MEASURE_CATEGORY.SALES,
1486
+ category: MEASURE_CATEGORY.ORDERS,
1487
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
994
1488
  valueType: MeasureValueType.PERCENTAGE,
995
1489
  decimalPlaces: 2,
996
1490
  useCompactNotation: false,
997
1491
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1492
+ shortTitle: 'Refund Gross %',
1493
+ tooltip: 'Total refunds as a percentage of gross revenue. Shows what portion of sales value is being returned.',
1494
+ formulaDisplay: 'Refunds ÷ Gross Revenue × 100',
1495
+ formula: 'refunds / gross_revenue * 100',
1496
+ relatedMeasures: [MEASURE.ORDERS_REFUND_NET_RATE, MEASURE.ORDERS_REFUNDS, MEASURE.ORDERS_GROSS_REVENUE],
998
1497
  },
999
1498
  [MEASURE.ORDERS_REFUND_NET_RATE]: {
1000
1499
  title: 'Refund Net Rate',
@@ -1005,11 +1504,17 @@ export const ORDERS_MEASURES_MAP = {
1005
1504
  avgSuffix: '%',
1006
1505
  icon: 'percent',
1007
1506
  measure: MEASURE.ORDERS_REFUND_NET_RATE,
1008
- category: MEASURE_CATEGORY.SALES,
1507
+ category: MEASURE_CATEGORY.ORDERS,
1508
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1009
1509
  valueType: MeasureValueType.PERCENTAGE,
1010
1510
  decimalPlaces: 2,
1011
1511
  useCompactNotation: false,
1012
1512
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1513
+ shortTitle: 'Refund Net %',
1514
+ tooltip: 'Total refunds as a percentage of net revenue. A higher rate here vs. gross rate means discounts compound the refund impact.',
1515
+ formulaDisplay: 'Refunds ÷ Net Revenue × 100',
1516
+ formula: 'refunds / net_revenue * 100',
1517
+ relatedMeasures: [MEASURE.ORDERS_REFUND_GROSS_RATE, MEASURE.ORDERS_REFUNDS, MEASURE.ORDERS_NET_REVENUE],
1013
1518
  },
1014
1519
  [MEASURE.ORDERS_DISCOUNT_COUNT]: {
1015
1520
  title: 'Discount Count',
@@ -1020,11 +1525,14 @@ export const ORDERS_MEASURES_MAP = {
1020
1525
  avgSuffix: '',
1021
1526
  icon: 'tag',
1022
1527
  measure: MEASURE.ORDERS_DISCOUNT_COUNT,
1023
- category: MEASURE_CATEGORY.SALES,
1528
+ category: MEASURE_CATEGORY.ORDERS,
1529
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1024
1530
  valueType: MeasureValueType.NUMBER,
1025
1531
  decimalPlaces: 0,
1026
1532
  useCompactNotation: false,
1027
1533
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1534
+ tooltip: 'The number of orders that had at least one discount applied. Compare to total orders to gauge discount usage frequency.',
1535
+ relatedMeasures: [MEASURE.ORDERS_DISCOUNTS, MEASURE.ORDERS_DISCOUNT_GROSS_RATE, MEASURE.ORDERS_COUNT],
1028
1536
  },
1029
1537
  [MEASURE.ORDERS_DISCOUNT_GROSS_RATE]: {
1030
1538
  title: 'Discount Gross Rate',
@@ -1035,11 +1543,17 @@ export const ORDERS_MEASURES_MAP = {
1035
1543
  avgSuffix: '%',
1036
1544
  icon: 'percent',
1037
1545
  measure: MEASURE.ORDERS_DISCOUNT_GROSS_RATE,
1038
- category: MEASURE_CATEGORY.SALES,
1546
+ category: MEASURE_CATEGORY.ORDERS,
1547
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1039
1548
  valueType: MeasureValueType.PERCENTAGE,
1040
1549
  decimalPlaces: 2,
1041
1550
  useCompactNotation: false,
1042
1551
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1552
+ shortTitle: 'Disc. Gross Rate',
1553
+ tooltip: 'Total discounts as a share of gross revenue. Tracks how aggressively promotional pricing is eroding top-line sales.',
1554
+ formulaDisplay: 'Discounts ÷ Gross Revenue × 100',
1555
+ formula: 'discounts / gross_revenue * 100',
1556
+ relatedMeasures: [MEASURE.ORDERS_DISCOUNTS, MEASURE.ORDERS_NEW_CUSTOMER_DISCOUNT_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_DISCOUNT_GROSS_RATE],
1043
1557
  },
1044
1558
  [MEASURE.ORDERS_NEW_CUSTOMER_DISCOUNT_GROSS_RATE]: {
1045
1559
  title: 'NC Discount Gross Rate',
@@ -1050,11 +1564,17 @@ export const ORDERS_MEASURES_MAP = {
1050
1564
  avgSuffix: '%',
1051
1565
  icon: 'percent',
1052
1566
  measure: MEASURE.ORDERS_NEW_CUSTOMER_DISCOUNT_GROSS_RATE,
1053
- category: MEASURE_CATEGORY.SALES,
1567
+ category: MEASURE_CATEGORY.ORDERS,
1568
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1054
1569
  valueType: MeasureValueType.PERCENTAGE,
1055
1570
  decimalPlaces: 2,
1056
1571
  useCompactNotation: false,
1057
1572
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1573
+ shortTitle: 'NC Disc. Gross',
1574
+ tooltip: 'New customer discounts as a share of new customer gross revenue. High rates suggest heavy promotion to drive acquisition.',
1575
+ formulaDisplay: 'NC Discounts ÷ NC Gross Revenue × 100',
1576
+ formula: 'nc_discounts / nc_gross_revenue * 100',
1577
+ relatedMeasures: [MEASURE.ORDERS_DISCOUNT_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_DISCOUNT_GROSS_RATE, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_REVENUE],
1058
1578
  },
1059
1579
  [MEASURE.ORDERS_RETURNING_CUSTOMER_DISCOUNT_GROSS_RATE]: {
1060
1580
  title: 'RC Discount Gross Rate',
@@ -1065,11 +1585,17 @@ export const ORDERS_MEASURES_MAP = {
1065
1585
  avgSuffix: '%',
1066
1586
  icon: 'percent',
1067
1587
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_DISCOUNT_GROSS_RATE,
1068
- category: MEASURE_CATEGORY.SALES,
1588
+ category: MEASURE_CATEGORY.ORDERS,
1589
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1069
1590
  valueType: MeasureValueType.PERCENTAGE,
1070
1591
  decimalPlaces: 2,
1071
1592
  useCompactNotation: false,
1072
1593
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1594
+ shortTitle: 'RC Disc. Gross',
1595
+ tooltip: 'Returning customer discounts as a share of returning customer gross revenue. High rates may indicate loyalty discounts cutting into repeat margins.',
1596
+ formulaDisplay: 'RC Discounts ÷ RC Gross Revenue × 100',
1597
+ formula: 'rc_discounts / rc_gross_revenue * 100',
1598
+ relatedMeasures: [MEASURE.ORDERS_DISCOUNT_GROSS_RATE, MEASURE.ORDERS_NEW_CUSTOMER_DISCOUNT_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_REVENUE],
1073
1599
  },
1074
1600
  [MEASURE.ORDERS_NEW_CUSTOMER_DISCOUNT_ORDER_RATE]: {
1075
1601
  title: 'NC Discount Order Rate',
@@ -1080,11 +1606,17 @@ export const ORDERS_MEASURES_MAP = {
1080
1606
  avgSuffix: '%',
1081
1607
  icon: 'percent',
1082
1608
  measure: MEASURE.ORDERS_NEW_CUSTOMER_DISCOUNT_ORDER_RATE,
1083
- category: MEASURE_CATEGORY.SALES,
1609
+ category: MEASURE_CATEGORY.ORDERS,
1610
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1084
1611
  valueType: MeasureValueType.PERCENTAGE,
1085
1612
  decimalPlaces: 2,
1086
1613
  useCompactNotation: false,
1087
1614
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1615
+ shortTitle: 'NC Disc. Order %',
1616
+ tooltip: 'The share of new customer orders that used a discount code or promotion. High values show how dependent acquisition is on discounting.',
1617
+ formulaDisplay: 'NC Discounted Orders ÷ NC Orders × 100',
1618
+ formula: 'nc_discounted_order_count / nc_order_count * 100',
1619
+ relatedMeasures: [MEASURE.ORDERS_RETURNING_CUSTOMER_DISCOUNT_ORDER_RATE, MEASURE.ORDERS_NEW_CUSTOMER_DISCOUNT_GROSS_RATE, MEASURE.ORDERS_DISCOUNT_COUNT],
1088
1620
  },
1089
1621
  [MEASURE.ORDERS_RETURNING_CUSTOMER_DISCOUNT_ORDER_RATE]: {
1090
1622
  title: 'RC Discount Order Rate',
@@ -1095,11 +1627,17 @@ export const ORDERS_MEASURES_MAP = {
1095
1627
  avgSuffix: '%',
1096
1628
  icon: 'percent',
1097
1629
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_DISCOUNT_ORDER_RATE,
1098
- category: MEASURE_CATEGORY.SALES,
1630
+ category: MEASURE_CATEGORY.ORDERS,
1631
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1099
1632
  valueType: MeasureValueType.PERCENTAGE,
1100
1633
  decimalPlaces: 2,
1101
1634
  useCompactNotation: false,
1102
1635
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1636
+ shortTitle: 'RC Disc. Order %',
1637
+ tooltip: 'The share of returning customer orders that used a discount. Elevated values may signal discount dependency in retention.',
1638
+ formulaDisplay: 'RC Discounted Orders ÷ RC Orders × 100',
1639
+ formula: 'rc_discounted_order_count / rc_order_count * 100',
1640
+ relatedMeasures: [MEASURE.ORDERS_NEW_CUSTOMER_DISCOUNT_ORDER_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_DISCOUNT_GROSS_RATE, MEASURE.ORDERS_DISCOUNT_COUNT],
1103
1641
  },
1104
1642
  [MEASURE.ORDERS_REFUND_PLUS_DISCOUNT]: {
1105
1643
  title: 'Refund + Discount',
@@ -1110,11 +1648,17 @@ export const ORDERS_MEASURES_MAP = {
1110
1648
  avgSuffix: '',
1111
1649
  icon: 'trending-down',
1112
1650
  measure: MEASURE.ORDERS_REFUND_PLUS_DISCOUNT,
1113
- category: MEASURE_CATEGORY.SALES,
1651
+ category: MEASURE_CATEGORY.ORDERS,
1652
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1114
1653
  valueType: MeasureValueType.CURRENCY,
1115
1654
  decimalPlaces: 2,
1116
1655
  useCompactNotation: true,
1117
1656
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1657
+ shortTitle: 'Refund + Disc.',
1658
+ tooltip: 'The combined dollar value of refunds and discounts. Represents the total revenue leakage from gross sales.',
1659
+ formulaDisplay: 'Refunds + Discounts',
1660
+ formula: 'refunds + discounts',
1661
+ relatedMeasures: [MEASURE.ORDERS_REFUNDS, MEASURE.ORDERS_DISCOUNTS, MEASURE.ORDERS_NET_REVENUE],
1118
1662
  },
1119
1663
  [MEASURE.ORDERS_NEW_CUSTOMER_REFUND_PLUS_DISCOUNT]: {
1120
1664
  title: 'NC Refund + Discount',
@@ -1125,11 +1669,17 @@ export const ORDERS_MEASURES_MAP = {
1125
1669
  avgSuffix: '',
1126
1670
  icon: 'trending-down',
1127
1671
  measure: MEASURE.ORDERS_NEW_CUSTOMER_REFUND_PLUS_DISCOUNT,
1128
- category: MEASURE_CATEGORY.SALES,
1672
+ category: MEASURE_CATEGORY.ORDERS,
1673
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1129
1674
  valueType: MeasureValueType.CURRENCY,
1130
1675
  decimalPlaces: 2,
1131
1676
  useCompactNotation: true,
1132
1677
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1678
+ shortTitle: 'NC Ref+Disc',
1679
+ tooltip: 'Combined refunds and discounts for new customer orders. Reflects the total revenue given back from first-time buyer transactions.',
1680
+ formulaDisplay: 'NC Refunds + NC Discounts',
1681
+ formula: 'nc_refunds + nc_discounts',
1682
+ relatedMeasures: [MEASURE.ORDERS_REFUND_PLUS_DISCOUNT, MEASURE.ORDERS_RETURNING_CUSTOMER_REFUND_PLUS_DISCOUNT, MEASURE.ORDERS_NEW_CUSTOMER_NET_REVENUE],
1133
1683
  },
1134
1684
  [MEASURE.ORDERS_RETURNING_CUSTOMER_REFUND_PLUS_DISCOUNT]: {
1135
1685
  title: 'RC Refund + Discount',
@@ -1140,11 +1690,17 @@ export const ORDERS_MEASURES_MAP = {
1140
1690
  avgSuffix: '',
1141
1691
  icon: 'trending-down',
1142
1692
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_REFUND_PLUS_DISCOUNT,
1143
- category: MEASURE_CATEGORY.SALES,
1693
+ category: MEASURE_CATEGORY.ORDERS,
1694
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1144
1695
  valueType: MeasureValueType.CURRENCY,
1145
1696
  decimalPlaces: 2,
1146
1697
  useCompactNotation: true,
1147
1698
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1699
+ shortTitle: 'RC Ref+Disc',
1700
+ tooltip: 'Combined refunds and discounts for returning customer orders.',
1701
+ formulaDisplay: 'RC Refunds + RC Discounts',
1702
+ formula: 'rc_refunds + rc_discounts',
1703
+ relatedMeasures: [MEASURE.ORDERS_REFUND_PLUS_DISCOUNT, MEASURE.ORDERS_NEW_CUSTOMER_REFUND_PLUS_DISCOUNT, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_REVENUE],
1148
1704
  },
1149
1705
  [MEASURE.ORDERS_SUBTOTAL]: {
1150
1706
  title: 'Subtotal',
@@ -1155,11 +1711,14 @@ export const ORDERS_MEASURES_MAP = {
1155
1711
  avgSuffix: '',
1156
1712
  icon: 'dollar-sign',
1157
1713
  measure: MEASURE.ORDERS_SUBTOTAL,
1158
- category: MEASURE_CATEGORY.SALES,
1714
+ category: MEASURE_CATEGORY.ORDERS,
1715
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_REVENUE,
1159
1716
  valueType: MeasureValueType.CURRENCY,
1160
1717
  decimalPlaces: 2,
1161
1718
  useCompactNotation: true,
1162
1719
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1720
+ tooltip: 'The order subtotal before shipping and taxes are added. Reflects the product value customers commit to at checkout.',
1721
+ relatedMeasures: [MEASURE.ORDERS_GROSS_REVENUE, MEASURE.ORDERS_NET_PLUS_SHIPPING, MEASURE.ORDERS_TOTAL_REVENUE],
1163
1722
  },
1164
1723
  [MEASURE.ORDERS_NET_PLUS_SHIPPING]: {
1165
1724
  title: 'Net + Shipping',
@@ -1170,11 +1729,17 @@ export const ORDERS_MEASURES_MAP = {
1170
1729
  avgSuffix: '',
1171
1730
  icon: 'dollar-sign',
1172
1731
  measure: MEASURE.ORDERS_NET_PLUS_SHIPPING,
1173
- category: MEASURE_CATEGORY.SALES,
1732
+ category: MEASURE_CATEGORY.ORDERS,
1733
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_REVENUE,
1174
1734
  valueType: MeasureValueType.CURRENCY,
1175
1735
  decimalPlaces: 2,
1176
1736
  useCompactNotation: true,
1177
1737
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1738
+ shortTitle: 'Net + Ship.',
1739
+ tooltip: 'Net revenue plus shipping collected. Useful for businesses where shipping is a meaningful revenue contributor.',
1740
+ formulaDisplay: 'Net Revenue + Shipping',
1741
+ formula: 'net_revenue + shipping',
1742
+ relatedMeasures: [MEASURE.ORDERS_NET_REVENUE, MEASURE.ORDERS_SHIPPING, MEASURE.ORDERS_SUBTOTAL],
1178
1743
  },
1179
1744
  [MEASURE.ORDERS_CANCELLED_COUNT]: {
1180
1745
  title: 'Cancelled Orders',
@@ -1185,11 +1750,15 @@ export const ORDERS_MEASURES_MAP = {
1185
1750
  avgSuffix: '',
1186
1751
  icon: 'x-circle',
1187
1752
  measure: MEASURE.ORDERS_CANCELLED_COUNT,
1188
- category: MEASURE_CATEGORY.SALES,
1753
+ category: MEASURE_CATEGORY.ORDERS,
1754
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1189
1755
  valueType: MeasureValueType.NUMBER,
1190
1756
  decimalPlaces: 0,
1191
1757
  useCompactNotation: false,
1192
1758
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1759
+ shortTitle: 'Cancellations',
1760
+ tooltip: 'The number of orders that were cancelled before fulfillment. High counts may indicate checkout friction or inventory issues.',
1761
+ relatedMeasures: [MEASURE.ORDERS_CANCELLED_AMOUNT, MEASURE.ORDERS_COUNT, MEASURE.ORDERS_REFUND_COUNT],
1193
1762
  },
1194
1763
  [MEASURE.ORDERS_CANCELLED_AMOUNT]: {
1195
1764
  title: 'Cancelled Amount',
@@ -1200,11 +1769,15 @@ export const ORDERS_MEASURES_MAP = {
1200
1769
  avgSuffix: '',
1201
1770
  icon: 'x-circle',
1202
1771
  measure: MEASURE.ORDERS_CANCELLED_AMOUNT,
1203
- category: MEASURE_CATEGORY.SALES,
1772
+ category: MEASURE_CATEGORY.ORDERS,
1773
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_ADJUSTMENTS,
1204
1774
  valueType: MeasureValueType.CURRENCY,
1205
1775
  decimalPlaces: 2,
1206
1776
  useCompactNotation: true,
1207
1777
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1778
+ shortTitle: 'Cancelled $',
1779
+ tooltip: 'The total dollar value of cancelled orders. Represents potential revenue that was lost before fulfillment.',
1780
+ relatedMeasures: [MEASURE.ORDERS_CANCELLED_COUNT, MEASURE.ORDERS_REFUNDS, MEASURE.ORDERS_TOTAL_REVENUE],
1208
1781
  },
1209
1782
  [MEASURE.ORDERS_GROSS_PRODUCT_MARGIN]: {
1210
1783
  title: 'Gross Product Margin',
@@ -1215,11 +1788,15 @@ export const ORDERS_MEASURES_MAP = {
1215
1788
  avgSuffix: '',
1216
1789
  icon: 'trending-up',
1217
1790
  measure: MEASURE.ORDERS_GROSS_PRODUCT_MARGIN,
1218
- category: MEASURE_CATEGORY.SALES,
1791
+ category: MEASURE_CATEGORY.PROFITABILITY,
1792
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1219
1793
  valueType: MeasureValueType.CURRENCY,
1220
1794
  decimalPlaces: 2,
1221
1795
  useCompactNotation: true,
1222
1796
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1797
+ shortTitle: 'Gross Prod. Margin',
1798
+ tooltip: 'Gross margin calculated at the product level, before order-level adjustments like shipping or taxes.',
1799
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN, MEASURE.ORDERS_NET_PRODUCT_MARGIN, MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_GROSS_RATE],
1223
1800
  },
1224
1801
  [MEASURE.ORDERS_NEW_CUSTOMER_GROSS_PRODUCT_MARGIN]: {
1225
1802
  title: 'NC Gross Product Margin',
@@ -1230,11 +1807,15 @@ export const ORDERS_MEASURES_MAP = {
1230
1807
  avgSuffix: '',
1231
1808
  icon: 'trending-up',
1232
1809
  measure: MEASURE.ORDERS_NEW_CUSTOMER_GROSS_PRODUCT_MARGIN,
1233
- category: MEASURE_CATEGORY.SALES,
1810
+ category: MEASURE_CATEGORY.PROFITABILITY,
1811
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1234
1812
  valueType: MeasureValueType.CURRENCY,
1235
1813
  decimalPlaces: 2,
1236
1814
  useCompactNotation: true,
1237
1815
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1816
+ shortTitle: 'NC Gross Prod. Mg',
1817
+ tooltip: 'Product-level gross margin from new customer orders.',
1818
+ relatedMeasures: [MEASURE.ORDERS_GROSS_PRODUCT_MARGIN, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_PRODUCT_MARGIN, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN],
1238
1819
  },
1239
1820
  [MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_PRODUCT_MARGIN]: {
1240
1821
  title: 'RC Gross Product Margin',
@@ -1245,11 +1826,15 @@ export const ORDERS_MEASURES_MAP = {
1245
1826
  avgSuffix: '',
1246
1827
  icon: 'trending-up',
1247
1828
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_PRODUCT_MARGIN,
1248
- category: MEASURE_CATEGORY.SALES,
1829
+ category: MEASURE_CATEGORY.PROFITABILITY,
1830
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1249
1831
  valueType: MeasureValueType.CURRENCY,
1250
1832
  decimalPlaces: 2,
1251
1833
  useCompactNotation: true,
1252
1834
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1835
+ shortTitle: 'RC Gross Prod. Mg',
1836
+ tooltip: 'Product-level gross margin from returning customer orders.',
1837
+ relatedMeasures: [MEASURE.ORDERS_GROSS_PRODUCT_MARGIN, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_PRODUCT_MARGIN, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN],
1253
1838
  },
1254
1839
  [MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_GROSS_RATE]: {
1255
1840
  title: 'Gross Product Margin / Gross Rate',
@@ -1260,11 +1845,17 @@ export const ORDERS_MEASURES_MAP = {
1260
1845
  avgSuffix: '%',
1261
1846
  icon: 'percent',
1262
1847
  measure: MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_GROSS_RATE,
1263
- category: MEASURE_CATEGORY.SALES,
1848
+ category: MEASURE_CATEGORY.PROFITABILITY,
1849
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1264
1850
  valueType: MeasureValueType.PERCENTAGE,
1265
1851
  decimalPlaces: 2,
1266
1852
  useCompactNotation: false,
1267
1853
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1854
+ shortTitle: 'GPM / Gross %',
1855
+ tooltip: 'Gross product margin as a share of gross revenue. Shows how efficiently products are priced relative to their costs.',
1856
+ formulaDisplay: 'Gross Product Margin ÷ Gross Revenue × 100',
1857
+ formula: 'gross_product_margin / gross_revenue * 100',
1858
+ relatedMeasures: [MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_NET_RATE, MEASURE.ORDERS_GROSS_PRODUCT_MARGIN, MEASURE.ORDERS_GROSS_MARGIN_GROSS_RATE],
1268
1859
  },
1269
1860
  [MEASURE.ORDERS_NEW_CUSTOMER_GROSS_PRODUCT_MARGIN_GROSS_RATE]: {
1270
1861
  title: 'NC Gross Product Margin / Gross Rate',
@@ -1275,11 +1866,17 @@ export const ORDERS_MEASURES_MAP = {
1275
1866
  avgSuffix: '%',
1276
1867
  icon: 'percent',
1277
1868
  measure: MEASURE.ORDERS_NEW_CUSTOMER_GROSS_PRODUCT_MARGIN_GROSS_RATE,
1278
- category: MEASURE_CATEGORY.SALES,
1869
+ category: MEASURE_CATEGORY.PROFITABILITY,
1870
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1279
1871
  valueType: MeasureValueType.PERCENTAGE,
1280
1872
  decimalPlaces: 2,
1281
1873
  useCompactNotation: false,
1282
1874
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1875
+ shortTitle: 'NC GPM/Gross %',
1876
+ tooltip: 'New customer gross product margin as a share of their gross revenue.',
1877
+ formulaDisplay: 'NC Gross Product Margin ÷ NC Gross Revenue × 100',
1878
+ formula: 'nc_gross_product_margin / nc_gross_revenue * 100',
1879
+ relatedMeasures: [MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_PRODUCT_MARGIN_GROSS_RATE],
1283
1880
  },
1284
1881
  [MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_PRODUCT_MARGIN_GROSS_RATE]: {
1285
1882
  title: 'RC Gross Product Margin / Gross Rate',
@@ -1290,11 +1887,17 @@ export const ORDERS_MEASURES_MAP = {
1290
1887
  avgSuffix: '%',
1291
1888
  icon: 'percent',
1292
1889
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_PRODUCT_MARGIN_GROSS_RATE,
1293
- category: MEASURE_CATEGORY.SALES,
1890
+ category: MEASURE_CATEGORY.PROFITABILITY,
1891
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1294
1892
  valueType: MeasureValueType.PERCENTAGE,
1295
1893
  decimalPlaces: 2,
1296
1894
  useCompactNotation: false,
1297
1895
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1896
+ shortTitle: 'RC GPM/Gross %',
1897
+ tooltip: 'Returning customer gross product margin as a share of their gross revenue.',
1898
+ formulaDisplay: 'RC Gross Product Margin ÷ RC Gross Revenue × 100',
1899
+ formula: 'rc_gross_product_margin / rc_gross_revenue * 100',
1900
+ relatedMeasures: [MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_GROSS_RATE, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_PRODUCT_MARGIN_GROSS_RATE],
1298
1901
  },
1299
1902
  [MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_NET_RATE]: {
1300
1903
  title: 'Gross Product Margin / Net Rate',
@@ -1305,11 +1908,17 @@ export const ORDERS_MEASURES_MAP = {
1305
1908
  avgSuffix: '%',
1306
1909
  icon: 'percent',
1307
1910
  measure: MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_NET_RATE,
1308
- category: MEASURE_CATEGORY.SALES,
1911
+ category: MEASURE_CATEGORY.PROFITABILITY,
1912
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1309
1913
  valueType: MeasureValueType.PERCENTAGE,
1310
1914
  decimalPlaces: 2,
1311
1915
  useCompactNotation: false,
1312
1916
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1917
+ shortTitle: 'GPM / Net %',
1918
+ tooltip: 'Gross product margin as a share of net revenue (after discounts and refunds).',
1919
+ formulaDisplay: 'Gross Product Margin ÷ Net Revenue × 100',
1920
+ formula: 'gross_product_margin / net_revenue * 100',
1921
+ relatedMeasures: [MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_GROSS_RATE, MEASURE.ORDERS_GROSS_PRODUCT_MARGIN, MEASURE.ORDERS_NET_PRODUCT_MARGIN_NET_RATE],
1313
1922
  },
1314
1923
  [MEASURE.ORDERS_NEW_CUSTOMER_GROSS_PRODUCT_MARGIN_NET_RATE]: {
1315
1924
  title: 'NC Gross Product Margin / Net Rate',
@@ -1320,11 +1929,17 @@ export const ORDERS_MEASURES_MAP = {
1320
1929
  avgSuffix: '%',
1321
1930
  icon: 'percent',
1322
1931
  measure: MEASURE.ORDERS_NEW_CUSTOMER_GROSS_PRODUCT_MARGIN_NET_RATE,
1323
- category: MEASURE_CATEGORY.SALES,
1932
+ category: MEASURE_CATEGORY.PROFITABILITY,
1933
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1324
1934
  valueType: MeasureValueType.PERCENTAGE,
1325
1935
  decimalPlaces: 2,
1326
1936
  useCompactNotation: false,
1327
1937
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1938
+ shortTitle: 'NC GPM/Net %',
1939
+ tooltip: 'New customer gross product margin as a share of their net revenue.',
1940
+ formulaDisplay: 'NC Gross Product Margin ÷ NC Net Revenue × 100',
1941
+ formula: 'nc_gross_product_margin / nc_net_revenue * 100',
1942
+ relatedMeasures: [MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_NET_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_PRODUCT_MARGIN_NET_RATE],
1328
1943
  },
1329
1944
  [MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_PRODUCT_MARGIN_NET_RATE]: {
1330
1945
  title: 'RC Gross Product Margin / Net Rate',
@@ -1335,11 +1950,17 @@ export const ORDERS_MEASURES_MAP = {
1335
1950
  avgSuffix: '%',
1336
1951
  icon: 'percent',
1337
1952
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_PRODUCT_MARGIN_NET_RATE,
1338
- category: MEASURE_CATEGORY.SALES,
1953
+ category: MEASURE_CATEGORY.PROFITABILITY,
1954
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1339
1955
  valueType: MeasureValueType.PERCENTAGE,
1340
1956
  decimalPlaces: 2,
1341
1957
  useCompactNotation: false,
1342
1958
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1959
+ shortTitle: 'RC GPM/Net %',
1960
+ tooltip: 'Returning customer gross product margin as a share of their net revenue.',
1961
+ formulaDisplay: 'RC Gross Product Margin ÷ RC Net Revenue × 100',
1962
+ formula: 'rc_gross_product_margin / rc_net_revenue * 100',
1963
+ relatedMeasures: [MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_NET_RATE, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_PRODUCT_MARGIN_NET_RATE],
1343
1964
  },
1344
1965
  [MEASURE.ORDERS_NET_PRODUCT_MARGIN]: {
1345
1966
  title: 'Net Product Margin',
@@ -1350,11 +1971,15 @@ export const ORDERS_MEASURES_MAP = {
1350
1971
  avgSuffix: '',
1351
1972
  icon: 'trending-up',
1352
1973
  measure: MEASURE.ORDERS_NET_PRODUCT_MARGIN,
1353
- category: MEASURE_CATEGORY.SALES,
1974
+ category: MEASURE_CATEGORY.PROFITABILITY,
1975
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1354
1976
  valueType: MeasureValueType.CURRENCY,
1355
1977
  decimalPlaces: 2,
1356
1978
  useCompactNotation: true,
1357
1979
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1980
+ shortTitle: 'Net Prod. Margin',
1981
+ tooltip: 'Net margin calculated at the product level after discounts and refunds, but before order-level fees.',
1982
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN, MEASURE.ORDERS_GROSS_PRODUCT_MARGIN, MEASURE.ORDERS_NET_PRODUCT_MARGIN_NET_RATE],
1358
1983
  },
1359
1984
  [MEASURE.ORDERS_NEW_CUSTOMER_NET_PRODUCT_MARGIN]: {
1360
1985
  title: 'NC Net Product Margin',
@@ -1365,11 +1990,15 @@ export const ORDERS_MEASURES_MAP = {
1365
1990
  avgSuffix: '',
1366
1991
  icon: 'trending-up',
1367
1992
  measure: MEASURE.ORDERS_NEW_CUSTOMER_NET_PRODUCT_MARGIN,
1368
- category: MEASURE_CATEGORY.SALES,
1993
+ category: MEASURE_CATEGORY.PROFITABILITY,
1994
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1369
1995
  valueType: MeasureValueType.CURRENCY,
1370
1996
  decimalPlaces: 2,
1371
1997
  useCompactNotation: true,
1372
1998
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
1999
+ shortTitle: 'NC Net Prod. Mg',
2000
+ tooltip: 'Product-level net margin from new customer orders after discounts and refunds.',
2001
+ relatedMeasures: [MEASURE.ORDERS_NET_PRODUCT_MARGIN, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_PRODUCT_MARGIN, MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN],
1373
2002
  },
1374
2003
  [MEASURE.ORDERS_RETURNING_CUSTOMER_NET_PRODUCT_MARGIN]: {
1375
2004
  title: 'RC Net Product Margin',
@@ -1380,11 +2009,15 @@ export const ORDERS_MEASURES_MAP = {
1380
2009
  avgSuffix: '',
1381
2010
  icon: 'trending-up',
1382
2011
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_NET_PRODUCT_MARGIN,
1383
- category: MEASURE_CATEGORY.SALES,
2012
+ category: MEASURE_CATEGORY.PROFITABILITY,
2013
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1384
2014
  valueType: MeasureValueType.CURRENCY,
1385
2015
  decimalPlaces: 2,
1386
2016
  useCompactNotation: true,
1387
2017
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2018
+ shortTitle: 'RC Net Prod. Mg',
2019
+ tooltip: 'Product-level net margin from returning customer orders after discounts and refunds.',
2020
+ relatedMeasures: [MEASURE.ORDERS_NET_PRODUCT_MARGIN, MEASURE.ORDERS_NEW_CUSTOMER_NET_PRODUCT_MARGIN, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN],
1388
2021
  },
1389
2022
  [MEASURE.ORDERS_NET_PRODUCT_MARGIN_GROSS_RATE]: {
1390
2023
  title: 'Net Product Margin / Gross Rate',
@@ -1395,11 +2028,17 @@ export const ORDERS_MEASURES_MAP = {
1395
2028
  avgSuffix: '%',
1396
2029
  icon: 'percent',
1397
2030
  measure: MEASURE.ORDERS_NET_PRODUCT_MARGIN_GROSS_RATE,
1398
- category: MEASURE_CATEGORY.SALES,
2031
+ category: MEASURE_CATEGORY.PROFITABILITY,
2032
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1399
2033
  valueType: MeasureValueType.PERCENTAGE,
1400
2034
  decimalPlaces: 2,
1401
2035
  useCompactNotation: false,
1402
2036
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2037
+ shortTitle: 'NPM / Gross %',
2038
+ tooltip: 'Net product margin as a share of gross revenue.',
2039
+ formulaDisplay: 'Net Product Margin ÷ Gross Revenue × 100',
2040
+ formula: 'net_product_margin / gross_revenue * 100',
2041
+ relatedMeasures: [MEASURE.ORDERS_NET_PRODUCT_MARGIN_NET_RATE, MEASURE.ORDERS_NET_PRODUCT_MARGIN, MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_GROSS_RATE],
1403
2042
  },
1404
2043
  [MEASURE.ORDERS_NEW_CUSTOMER_NET_PRODUCT_MARGIN_GROSS_RATE]: {
1405
2044
  title: 'NC Net Product Margin / Gross Rate',
@@ -1410,11 +2049,17 @@ export const ORDERS_MEASURES_MAP = {
1410
2049
  avgSuffix: '%',
1411
2050
  icon: 'percent',
1412
2051
  measure: MEASURE.ORDERS_NEW_CUSTOMER_NET_PRODUCT_MARGIN_GROSS_RATE,
1413
- category: MEASURE_CATEGORY.SALES,
2052
+ category: MEASURE_CATEGORY.PROFITABILITY,
2053
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1414
2054
  valueType: MeasureValueType.PERCENTAGE,
1415
2055
  decimalPlaces: 2,
1416
2056
  useCompactNotation: false,
1417
2057
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2058
+ shortTitle: 'NC NPM/Gross %',
2059
+ tooltip: 'New customer net product margin as a share of their gross revenue.',
2060
+ formulaDisplay: 'NC Net Product Margin ÷ NC Gross Revenue × 100',
2061
+ formula: 'nc_net_product_margin / nc_gross_revenue * 100',
2062
+ relatedMeasures: [MEASURE.ORDERS_NET_PRODUCT_MARGIN_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_PRODUCT_MARGIN_GROSS_RATE],
1418
2063
  },
1419
2064
  [MEASURE.ORDERS_RETURNING_CUSTOMER_NET_PRODUCT_MARGIN_GROSS_RATE]: {
1420
2065
  title: 'RC Net Product Margin / Gross Rate',
@@ -1425,11 +2070,17 @@ export const ORDERS_MEASURES_MAP = {
1425
2070
  avgSuffix: '%',
1426
2071
  icon: 'percent',
1427
2072
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_NET_PRODUCT_MARGIN_GROSS_RATE,
1428
- category: MEASURE_CATEGORY.SALES,
2073
+ category: MEASURE_CATEGORY.PROFITABILITY,
2074
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1429
2075
  valueType: MeasureValueType.PERCENTAGE,
1430
2076
  decimalPlaces: 2,
1431
2077
  useCompactNotation: false,
1432
2078
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2079
+ shortTitle: 'RC NPM/Gross %',
2080
+ tooltip: 'Returning customer net product margin as a share of their gross revenue.',
2081
+ formulaDisplay: 'RC Net Product Margin ÷ RC Gross Revenue × 100',
2082
+ formula: 'rc_net_product_margin / rc_gross_revenue * 100',
2083
+ relatedMeasures: [MEASURE.ORDERS_NET_PRODUCT_MARGIN_GROSS_RATE, MEASURE.ORDERS_NEW_CUSTOMER_NET_PRODUCT_MARGIN_GROSS_RATE],
1433
2084
  },
1434
2085
  [MEASURE.ORDERS_NET_PRODUCT_MARGIN_NET_RATE]: {
1435
2086
  title: 'Net Product Margin / Net Rate',
@@ -1440,11 +2091,17 @@ export const ORDERS_MEASURES_MAP = {
1440
2091
  avgSuffix: '%',
1441
2092
  icon: 'percent',
1442
2093
  measure: MEASURE.ORDERS_NET_PRODUCT_MARGIN_NET_RATE,
1443
- category: MEASURE_CATEGORY.SALES,
2094
+ category: MEASURE_CATEGORY.PROFITABILITY,
2095
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1444
2096
  valueType: MeasureValueType.PERCENTAGE,
1445
2097
  decimalPlaces: 2,
1446
2098
  useCompactNotation: false,
1447
2099
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2100
+ shortTitle: 'NPM / Net %',
2101
+ tooltip: 'Net product margin as a share of net revenue. Shows the post-discount, post-refund product profit rate.',
2102
+ formulaDisplay: 'Net Product Margin ÷ Net Revenue × 100',
2103
+ formula: 'net_product_margin / net_revenue * 100',
2104
+ relatedMeasures: [MEASURE.ORDERS_NET_PRODUCT_MARGIN_GROSS_RATE, MEASURE.ORDERS_NET_PRODUCT_MARGIN, MEASURE.ORDERS_GROSS_PRODUCT_MARGIN_NET_RATE],
1448
2105
  },
1449
2106
  [MEASURE.ORDERS_NEW_CUSTOMER_NET_PRODUCT_MARGIN_NET_RATE]: {
1450
2107
  title: 'NC Net Product Margin / Net Rate',
@@ -1455,11 +2112,17 @@ export const ORDERS_MEASURES_MAP = {
1455
2112
  avgSuffix: '%',
1456
2113
  icon: 'percent',
1457
2114
  measure: MEASURE.ORDERS_NEW_CUSTOMER_NET_PRODUCT_MARGIN_NET_RATE,
1458
- category: MEASURE_CATEGORY.SALES,
2115
+ category: MEASURE_CATEGORY.PROFITABILITY,
2116
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1459
2117
  valueType: MeasureValueType.PERCENTAGE,
1460
2118
  decimalPlaces: 2,
1461
2119
  useCompactNotation: false,
1462
2120
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2121
+ shortTitle: 'NC NPM/Net %',
2122
+ tooltip: 'New customer net product margin as a share of their net revenue.',
2123
+ formulaDisplay: 'NC Net Product Margin ÷ NC Net Revenue × 100',
2124
+ formula: 'nc_net_product_margin / nc_net_revenue * 100',
2125
+ relatedMeasures: [MEASURE.ORDERS_NET_PRODUCT_MARGIN_NET_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_PRODUCT_MARGIN_NET_RATE],
1463
2126
  },
1464
2127
  [MEASURE.ORDERS_RETURNING_CUSTOMER_NET_PRODUCT_MARGIN_NET_RATE]: {
1465
2128
  title: 'RC Net Product Margin / Net Rate',
@@ -1470,11 +2133,17 @@ export const ORDERS_MEASURES_MAP = {
1470
2133
  avgSuffix: '%',
1471
2134
  icon: 'percent',
1472
2135
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_NET_PRODUCT_MARGIN_NET_RATE,
1473
- category: MEASURE_CATEGORY.SALES,
2136
+ category: MEASURE_CATEGORY.PROFITABILITY,
2137
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1474
2138
  valueType: MeasureValueType.PERCENTAGE,
1475
2139
  decimalPlaces: 2,
1476
2140
  useCompactNotation: false,
1477
2141
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2142
+ shortTitle: 'RC NPM/Net %',
2143
+ tooltip: 'Returning customer net product margin as a share of their net revenue.',
2144
+ formulaDisplay: 'RC Net Product Margin ÷ RC Net Revenue × 100',
2145
+ formula: 'rc_net_product_margin / rc_net_revenue * 100',
2146
+ relatedMeasures: [MEASURE.ORDERS_NET_PRODUCT_MARGIN_NET_RATE, MEASURE.ORDERS_NEW_CUSTOMER_NET_PRODUCT_MARGIN_NET_RATE],
1478
2147
  },
1479
2148
  [MEASURE.ORDERS_GROSS_MARGIN_GROSS_RATE]: {
1480
2149
  title: 'Gross Margin / Gross Rate',
@@ -1485,11 +2154,17 @@ export const ORDERS_MEASURES_MAP = {
1485
2154
  avgSuffix: '%',
1486
2155
  icon: 'percent',
1487
2156
  measure: MEASURE.ORDERS_GROSS_MARGIN_GROSS_RATE,
1488
- category: MEASURE_CATEGORY.SALES,
2157
+ category: MEASURE_CATEGORY.PROFITABILITY,
2158
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1489
2159
  valueType: MeasureValueType.PERCENTAGE,
1490
2160
  decimalPlaces: 2,
1491
2161
  useCompactNotation: false,
1492
2162
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2163
+ shortTitle: 'GM / Gross %',
2164
+ tooltip: 'Gross margin (revenue minus COGS) as a percentage of gross revenue. The standard gross margin percentage metric.',
2165
+ formulaDisplay: 'Gross Margin ÷ Gross Revenue × 100',
2166
+ formula: 'gross_margin / gross_revenue * 100',
2167
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN_NET_RATE, MEASURE.ORDERS_GROSS_MARGIN, MEASURE.ORDERS_NET_MARGIN_GROSS_RATE],
1493
2168
  },
1494
2169
  [MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN_GROSS_RATE]: {
1495
2170
  title: 'NC Gross Margin / Gross Rate',
@@ -1500,11 +2175,17 @@ export const ORDERS_MEASURES_MAP = {
1500
2175
  avgSuffix: '%',
1501
2176
  icon: 'percent',
1502
2177
  measure: MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN_GROSS_RATE,
1503
- category: MEASURE_CATEGORY.SALES,
2178
+ category: MEASURE_CATEGORY.PROFITABILITY,
2179
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1504
2180
  valueType: MeasureValueType.PERCENTAGE,
1505
2181
  decimalPlaces: 2,
1506
2182
  useCompactNotation: false,
1507
2183
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2184
+ shortTitle: 'NC GM/Gross %',
2185
+ tooltip: 'New customer gross margin as a share of their gross revenue.',
2186
+ formulaDisplay: 'NC Gross Margin ÷ NC Gross Revenue × 100',
2187
+ formula: 'nc_gross_margin / nc_gross_revenue * 100',
2188
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN_GROSS_RATE, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN_NET_RATE],
1508
2189
  },
1509
2190
  [MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN_GROSS_RATE]: {
1510
2191
  title: 'RC Gross Margin / Gross Rate',
@@ -1515,11 +2196,17 @@ export const ORDERS_MEASURES_MAP = {
1515
2196
  avgSuffix: '%',
1516
2197
  icon: 'percent',
1517
2198
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN_GROSS_RATE,
1518
- category: MEASURE_CATEGORY.SALES,
2199
+ category: MEASURE_CATEGORY.PROFITABILITY,
2200
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1519
2201
  valueType: MeasureValueType.PERCENTAGE,
1520
2202
  decimalPlaces: 2,
1521
2203
  useCompactNotation: false,
1522
2204
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2205
+ shortTitle: 'RC GM/Gross %',
2206
+ tooltip: 'Returning customer gross margin as a share of their gross revenue.',
2207
+ formulaDisplay: 'RC Gross Margin ÷ RC Gross Revenue × 100',
2208
+ formula: 'rc_gross_margin / rc_gross_revenue * 100',
2209
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN_GROSS_RATE, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN_NET_RATE],
1523
2210
  },
1524
2211
  [MEASURE.ORDERS_GROSS_MARGIN_NET_RATE]: {
1525
2212
  title: 'Gross Margin / Net Rate',
@@ -1530,11 +2217,17 @@ export const ORDERS_MEASURES_MAP = {
1530
2217
  avgSuffix: '%',
1531
2218
  icon: 'percent',
1532
2219
  measure: MEASURE.ORDERS_GROSS_MARGIN_NET_RATE,
1533
- category: MEASURE_CATEGORY.SALES,
2220
+ category: MEASURE_CATEGORY.PROFITABILITY,
2221
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1534
2222
  valueType: MeasureValueType.PERCENTAGE,
1535
2223
  decimalPlaces: 2,
1536
2224
  useCompactNotation: false,
1537
2225
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2226
+ shortTitle: 'GM / Net %',
2227
+ tooltip: 'Gross margin as a share of net revenue (after discounts and refunds). Typically higher than the gross rate due to the smaller denominator.',
2228
+ formulaDisplay: 'Gross Margin ÷ Net Revenue × 100',
2229
+ formula: 'gross_margin / net_revenue * 100',
2230
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN_GROSS_RATE, MEASURE.ORDERS_GROSS_MARGIN, MEASURE.ORDERS_NET_MARGIN_NET_RATE],
1538
2231
  },
1539
2232
  [MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN_NET_RATE]: {
1540
2233
  title: 'NC Gross Margin / Net Rate',
@@ -1545,11 +2238,17 @@ export const ORDERS_MEASURES_MAP = {
1545
2238
  avgSuffix: '%',
1546
2239
  icon: 'percent',
1547
2240
  measure: MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN_NET_RATE,
1548
- category: MEASURE_CATEGORY.SALES,
2241
+ category: MEASURE_CATEGORY.PROFITABILITY,
2242
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1549
2243
  valueType: MeasureValueType.PERCENTAGE,
1550
2244
  decimalPlaces: 2,
1551
2245
  useCompactNotation: false,
1552
2246
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2247
+ shortTitle: 'NC GM/Net %',
2248
+ tooltip: 'New customer gross margin as a share of their net revenue.',
2249
+ formulaDisplay: 'NC Gross Margin ÷ NC Net Revenue × 100',
2250
+ formula: 'nc_gross_margin / nc_net_revenue * 100',
2251
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN_NET_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN_NET_RATE, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN_GROSS_RATE],
1553
2252
  },
1554
2253
  [MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN_NET_RATE]: {
1555
2254
  title: 'RC Gross Margin / Net Rate',
@@ -1560,11 +2259,17 @@ export const ORDERS_MEASURES_MAP = {
1560
2259
  avgSuffix: '%',
1561
2260
  icon: 'percent',
1562
2261
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN_NET_RATE,
1563
- category: MEASURE_CATEGORY.SALES,
2262
+ category: MEASURE_CATEGORY.PROFITABILITY,
2263
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_GROSS_MARGIN,
1564
2264
  valueType: MeasureValueType.PERCENTAGE,
1565
2265
  decimalPlaces: 2,
1566
2266
  useCompactNotation: false,
1567
2267
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2268
+ shortTitle: 'RC GM/Net %',
2269
+ tooltip: 'Returning customer gross margin as a share of their net revenue.',
2270
+ formulaDisplay: 'RC Gross Margin ÷ RC Net Revenue × 100',
2271
+ formula: 'rc_gross_margin / rc_net_revenue * 100',
2272
+ relatedMeasures: [MEASURE.ORDERS_GROSS_MARGIN_NET_RATE, MEASURE.ORDERS_NEW_CUSTOMER_GROSS_MARGIN_NET_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_GROSS_MARGIN_GROSS_RATE],
1568
2273
  },
1569
2274
  [MEASURE.ORDERS_NET_MARGIN_GROSS_RATE]: {
1570
2275
  title: 'Net Margin / Gross Rate',
@@ -1575,11 +2280,17 @@ export const ORDERS_MEASURES_MAP = {
1575
2280
  avgSuffix: '%',
1576
2281
  icon: 'percent',
1577
2282
  measure: MEASURE.ORDERS_NET_MARGIN_GROSS_RATE,
1578
- category: MEASURE_CATEGORY.SALES,
2283
+ category: MEASURE_CATEGORY.PROFITABILITY,
2284
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1579
2285
  valueType: MeasureValueType.PERCENTAGE,
1580
2286
  decimalPlaces: 2,
1581
2287
  useCompactNotation: false,
1582
2288
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2289
+ shortTitle: 'NM / Gross %',
2290
+ tooltip: 'Net margin (net revenue minus COGS) as a share of gross revenue. A conservative profitability rate that absorbs all revenue reductions.',
2291
+ formulaDisplay: 'Net Margin ÷ Gross Revenue × 100',
2292
+ formula: 'net_margin / gross_revenue * 100',
2293
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN_NET_RATE, MEASURE.ORDERS_NET_MARGIN, MEASURE.ORDERS_GROSS_MARGIN_GROSS_RATE],
1583
2294
  },
1584
2295
  [MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_GROSS_RATE]: {
1585
2296
  title: 'NC Net Margin / Gross Rate',
@@ -1590,11 +2301,17 @@ export const ORDERS_MEASURES_MAP = {
1590
2301
  avgSuffix: '%',
1591
2302
  icon: 'percent',
1592
2303
  measure: MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_GROSS_RATE,
1593
- category: MEASURE_CATEGORY.SALES,
2304
+ category: MEASURE_CATEGORY.PROFITABILITY,
2305
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1594
2306
  valueType: MeasureValueType.PERCENTAGE,
1595
2307
  decimalPlaces: 2,
1596
2308
  useCompactNotation: false,
1597
2309
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2310
+ shortTitle: 'NC NM/Gross %',
2311
+ tooltip: 'New customer net margin as a share of their gross revenue.',
2312
+ formulaDisplay: 'NC Net Margin ÷ NC Gross Revenue × 100',
2313
+ formula: 'nc_net_margin / nc_gross_revenue * 100',
2314
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN_GROSS_RATE, MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_NET_RATE],
1598
2315
  },
1599
2316
  [MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN_GROSS_RATE]: {
1600
2317
  title: 'RC Net Margin / Gross Rate',
@@ -1605,11 +2322,17 @@ export const ORDERS_MEASURES_MAP = {
1605
2322
  avgSuffix: '%',
1606
2323
  icon: 'percent',
1607
2324
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN_GROSS_RATE,
1608
- category: MEASURE_CATEGORY.SALES,
2325
+ category: MEASURE_CATEGORY.PROFITABILITY,
2326
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1609
2327
  valueType: MeasureValueType.PERCENTAGE,
1610
2328
  decimalPlaces: 2,
1611
2329
  useCompactNotation: false,
1612
2330
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2331
+ shortTitle: 'RC NM/Gross %',
2332
+ tooltip: 'Returning customer net margin as a share of their gross revenue.',
2333
+ formulaDisplay: 'RC Net Margin ÷ RC Gross Revenue × 100',
2334
+ formula: 'rc_net_margin / rc_gross_revenue * 100',
2335
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN_GROSS_RATE, MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN_NET_RATE],
1613
2336
  },
1614
2337
  [MEASURE.ORDERS_NET_MARGIN_NET_RATE]: {
1615
2338
  title: 'Net Margin / Net Rate',
@@ -1620,11 +2343,17 @@ export const ORDERS_MEASURES_MAP = {
1620
2343
  avgSuffix: '%',
1621
2344
  icon: 'percent',
1622
2345
  measure: MEASURE.ORDERS_NET_MARGIN_NET_RATE,
1623
- category: MEASURE_CATEGORY.SALES,
2346
+ category: MEASURE_CATEGORY.PROFITABILITY,
2347
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1624
2348
  valueType: MeasureValueType.PERCENTAGE,
1625
2349
  decimalPlaces: 2,
1626
2350
  useCompactNotation: false,
1627
2351
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2352
+ shortTitle: 'NM / Net %',
2353
+ tooltip: 'Net margin as a share of net revenue. This is the standard net margin percentage, showing profit after all product-level costs.',
2354
+ formulaDisplay: 'Net Margin ÷ Net Revenue × 100',
2355
+ formula: 'net_margin / net_revenue * 100',
2356
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN_GROSS_RATE, MEASURE.ORDERS_NET_MARGIN, MEASURE.ORDERS_GROSS_MARGIN_NET_RATE],
1628
2357
  },
1629
2358
  [MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_NET_RATE]: {
1630
2359
  title: 'NC Net Margin / Net Rate',
@@ -1635,11 +2364,17 @@ export const ORDERS_MEASURES_MAP = {
1635
2364
  avgSuffix: '%',
1636
2365
  icon: 'percent',
1637
2366
  measure: MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_NET_RATE,
1638
- category: MEASURE_CATEGORY.SALES,
2367
+ category: MEASURE_CATEGORY.PROFITABILITY,
2368
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1639
2369
  valueType: MeasureValueType.PERCENTAGE,
1640
2370
  decimalPlaces: 2,
1641
2371
  useCompactNotation: false,
1642
2372
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2373
+ shortTitle: 'NC NM/Net %',
2374
+ tooltip: 'New customer net margin as a share of their net revenue.',
2375
+ formulaDisplay: 'NC Net Margin ÷ NC Net Revenue × 100',
2376
+ formula: 'nc_net_margin / nc_net_revenue * 100',
2377
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN_NET_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN_NET_RATE, MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_GROSS_RATE],
1643
2378
  },
1644
2379
  [MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN_NET_RATE]: {
1645
2380
  title: 'RC Net Margin / Net Rate',
@@ -1650,11 +2385,17 @@ export const ORDERS_MEASURES_MAP = {
1650
2385
  avgSuffix: '%',
1651
2386
  icon: 'percent',
1652
2387
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN_NET_RATE,
1653
- category: MEASURE_CATEGORY.SALES,
2388
+ category: MEASURE_CATEGORY.PROFITABILITY,
2389
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_NET_MARGIN,
1654
2390
  valueType: MeasureValueType.PERCENTAGE,
1655
2391
  decimalPlaces: 2,
1656
2392
  useCompactNotation: false,
1657
2393
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2394
+ shortTitle: 'RC NM/Net %',
2395
+ tooltip: 'Returning customer net margin as a share of their net revenue.',
2396
+ formulaDisplay: 'RC Net Margin ÷ RC Net Revenue × 100',
2397
+ formula: 'rc_net_margin / rc_net_revenue * 100',
2398
+ relatedMeasures: [MEASURE.ORDERS_NET_MARGIN_NET_RATE, MEASURE.ORDERS_NEW_CUSTOMER_NET_MARGIN_NET_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_NET_MARGIN_GROSS_RATE],
1658
2399
  },
1659
2400
  [MEASURE.ORDERS_COGS_GROSS_RATE]: {
1660
2401
  title: 'COGS / Gross Rate',
@@ -1665,11 +2406,17 @@ export const ORDERS_MEASURES_MAP = {
1665
2406
  avgSuffix: '%',
1666
2407
  icon: 'percent',
1667
2408
  measure: MEASURE.ORDERS_COGS_GROSS_RATE,
1668
- category: MEASURE_CATEGORY.SALES,
2409
+ category: MEASURE_CATEGORY.PROFITABILITY,
2410
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
1669
2411
  valueType: MeasureValueType.PERCENTAGE,
1670
2412
  decimalPlaces: 2,
1671
2413
  useCompactNotation: false,
1672
2414
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2415
+ shortTitle: 'COGS/Gross %',
2416
+ tooltip: 'Cost of goods as a share of gross revenue. The complement of gross margin rate — COGS % + Gross Margin % = 100%.',
2417
+ formulaDisplay: 'COGS ÷ Gross Revenue × 100',
2418
+ formula: 'cogs / gross_revenue * 100',
2419
+ relatedMeasures: [MEASURE.ORDERS_COGS_NET_RATE, MEASURE.ORDERS_COGS, MEASURE.ORDERS_GROSS_MARGIN_GROSS_RATE],
1673
2420
  },
1674
2421
  [MEASURE.ORDERS_NEW_CUSTOMER_COGS_GROSS_RATE]: {
1675
2422
  title: 'NC COGS / Gross Rate',
@@ -1680,11 +2427,17 @@ export const ORDERS_MEASURES_MAP = {
1680
2427
  avgSuffix: '%',
1681
2428
  icon: 'percent',
1682
2429
  measure: MEASURE.ORDERS_NEW_CUSTOMER_COGS_GROSS_RATE,
1683
- category: MEASURE_CATEGORY.SALES,
2430
+ category: MEASURE_CATEGORY.PROFITABILITY,
2431
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
1684
2432
  valueType: MeasureValueType.PERCENTAGE,
1685
2433
  decimalPlaces: 2,
1686
2434
  useCompactNotation: false,
1687
2435
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2436
+ shortTitle: 'NC COGS/Gross %',
2437
+ tooltip: 'New customer COGS as a share of their gross revenue.',
2438
+ formulaDisplay: 'NC COGS ÷ NC Gross Revenue × 100',
2439
+ formula: 'nc_cogs / nc_gross_revenue * 100',
2440
+ relatedMeasures: [MEASURE.ORDERS_COGS_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_COGS_GROSS_RATE, MEASURE.ORDERS_NEW_CUSTOMER_COGS_NET_RATE],
1688
2441
  },
1689
2442
  [MEASURE.ORDERS_RETURNING_CUSTOMER_COGS_GROSS_RATE]: {
1690
2443
  title: 'RC COGS / Gross Rate',
@@ -1695,11 +2448,17 @@ export const ORDERS_MEASURES_MAP = {
1695
2448
  avgSuffix: '%',
1696
2449
  icon: 'percent',
1697
2450
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_COGS_GROSS_RATE,
1698
- category: MEASURE_CATEGORY.SALES,
2451
+ category: MEASURE_CATEGORY.PROFITABILITY,
2452
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
1699
2453
  valueType: MeasureValueType.PERCENTAGE,
1700
2454
  decimalPlaces: 2,
1701
2455
  useCompactNotation: false,
1702
2456
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2457
+ shortTitle: 'RC COGS/Gross %',
2458
+ tooltip: 'Returning customer COGS as a share of their gross revenue.',
2459
+ formulaDisplay: 'RC COGS ÷ RC Gross Revenue × 100',
2460
+ formula: 'rc_cogs / rc_gross_revenue * 100',
2461
+ relatedMeasures: [MEASURE.ORDERS_COGS_GROSS_RATE, MEASURE.ORDERS_NEW_CUSTOMER_COGS_GROSS_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_COGS_NET_RATE],
1703
2462
  },
1704
2463
  [MEASURE.ORDERS_COGS_NET_RATE]: {
1705
2464
  title: 'COGS / Net Rate',
@@ -1710,11 +2469,17 @@ export const ORDERS_MEASURES_MAP = {
1710
2469
  avgSuffix: '%',
1711
2470
  icon: 'percent',
1712
2471
  measure: MEASURE.ORDERS_COGS_NET_RATE,
1713
- category: MEASURE_CATEGORY.SALES,
2472
+ category: MEASURE_CATEGORY.PROFITABILITY,
2473
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
1714
2474
  valueType: MeasureValueType.PERCENTAGE,
1715
2475
  decimalPlaces: 2,
1716
2476
  useCompactNotation: false,
1717
2477
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2478
+ shortTitle: 'COGS/Net %',
2479
+ tooltip: 'COGS as a share of net revenue. Higher than gross rate because discounts and refunds reduce the denominator.',
2480
+ formulaDisplay: 'COGS ÷ Net Revenue × 100',
2481
+ formula: 'cogs / net_revenue * 100',
2482
+ relatedMeasures: [MEASURE.ORDERS_COGS_GROSS_RATE, MEASURE.ORDERS_COGS, MEASURE.ORDERS_GROSS_MARGIN_NET_RATE],
1718
2483
  },
1719
2484
  [MEASURE.ORDERS_NEW_CUSTOMER_COGS_NET_RATE]: {
1720
2485
  title: 'NC COGS / Net Rate',
@@ -1725,11 +2490,17 @@ export const ORDERS_MEASURES_MAP = {
1725
2490
  avgSuffix: '%',
1726
2491
  icon: 'percent',
1727
2492
  measure: MEASURE.ORDERS_NEW_CUSTOMER_COGS_NET_RATE,
1728
- category: MEASURE_CATEGORY.SALES,
2493
+ category: MEASURE_CATEGORY.PROFITABILITY,
2494
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
1729
2495
  valueType: MeasureValueType.PERCENTAGE,
1730
2496
  decimalPlaces: 2,
1731
2497
  useCompactNotation: false,
1732
2498
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2499
+ shortTitle: 'NC COGS/Net %',
2500
+ tooltip: 'New customer COGS as a share of their net revenue.',
2501
+ formulaDisplay: 'NC COGS ÷ NC Net Revenue × 100',
2502
+ formula: 'nc_cogs / nc_net_revenue * 100',
2503
+ relatedMeasures: [MEASURE.ORDERS_COGS_NET_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_COGS_NET_RATE, MEASURE.ORDERS_NEW_CUSTOMER_COGS_GROSS_RATE],
1733
2504
  },
1734
2505
  [MEASURE.ORDERS_RETURNING_CUSTOMER_COGS_NET_RATE]: {
1735
2506
  title: 'RC COGS / Net Rate',
@@ -1740,11 +2511,263 @@ export const ORDERS_MEASURES_MAP = {
1740
2511
  avgSuffix: '%',
1741
2512
  icon: 'percent',
1742
2513
  measure: MEASURE.ORDERS_RETURNING_CUSTOMER_COGS_NET_RATE,
1743
- category: MEASURE_CATEGORY.SALES,
2514
+ category: MEASURE_CATEGORY.PROFITABILITY,
2515
+ subcategory: MEASURE_SUBCATEGORY.PROFITABILITY_COGS,
1744
2516
  valueType: MeasureValueType.PERCENTAGE,
1745
2517
  decimalPlaces: 2,
1746
2518
  useCompactNotation: false,
1747
2519
  applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2520
+ shortTitle: 'RC COGS/Net %',
2521
+ tooltip: 'Returning customer COGS as a share of their net revenue.',
2522
+ formulaDisplay: 'RC COGS ÷ RC Net Revenue × 100',
2523
+ formula: 'rc_cogs / rc_net_revenue * 100',
2524
+ relatedMeasures: [MEASURE.ORDERS_COGS_NET_RATE, MEASURE.ORDERS_NEW_CUSTOMER_COGS_NET_RATE, MEASURE.ORDERS_RETURNING_CUSTOMER_COGS_GROSS_RATE],
2525
+ },
2526
+ [MEASURE.ORDERS_LTV]: {
2527
+ title: 'Lifetime Value',
2528
+ description: 'Average lifetime value of customers.',
2529
+ sumPrefix: '$',
2530
+ sumSuffix: '',
2531
+ avgPrefix: '$',
2532
+ avgSuffix: '',
2533
+ icon: 'dollar-sign',
2534
+ measure: MEASURE.ORDERS_LTV,
2535
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2536
+ subcategory: MEASURE_SUBCATEGORY.LTV_METRICS,
2537
+ valueType: MeasureValueType.CURRENCY,
2538
+ decimalPlaces: 2,
2539
+ useCompactNotation: true,
2540
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2541
+ shortTitle: 'LTV',
2542
+ tooltip: 'The average total revenue generated per customer over their entire purchase history. Higher LTV justifies greater acquisition spend.',
2543
+ relatedMeasures: [MEASURE.ORDERS_LTV_90, MEASURE.ORDERS_LTV_180, MEASURE.ORDERS_LTV_365, MEASURE.ORDERS_AVG_ORDERS_PER_CUSTOMER],
2544
+ },
2545
+ [MEASURE.ORDERS_LTV_90]: {
2546
+ title: 'LTV 90d',
2547
+ description: 'Customer lifetime value at 90 days.',
2548
+ sumPrefix: '$',
2549
+ sumSuffix: '',
2550
+ avgPrefix: '$',
2551
+ avgSuffix: '',
2552
+ icon: 'dollar-sign',
2553
+ measure: MEASURE.ORDERS_LTV_90,
2554
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2555
+ subcategory: MEASURE_SUBCATEGORY.LTV_METRICS,
2556
+ valueType: MeasureValueType.CURRENCY,
2557
+ decimalPlaces: 2,
2558
+ useCompactNotation: true,
2559
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2560
+ tooltip: 'Average revenue per customer within 90 days of their first purchase. Useful for evaluating short-term payback on acquisition.',
2561
+ relatedMeasures: [MEASURE.ORDERS_LTV, MEASURE.ORDERS_LTV_180, MEASURE.ORDERS_LTV_365],
2562
+ },
2563
+ [MEASURE.ORDERS_LTV_180]: {
2564
+ title: 'LTV 180d',
2565
+ description: 'Customer lifetime value at 180 days.',
2566
+ sumPrefix: '$',
2567
+ sumSuffix: '',
2568
+ avgPrefix: '$',
2569
+ avgSuffix: '',
2570
+ icon: 'dollar-sign',
2571
+ measure: MEASURE.ORDERS_LTV_180,
2572
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2573
+ subcategory: MEASURE_SUBCATEGORY.LTV_METRICS,
2574
+ valueType: MeasureValueType.CURRENCY,
2575
+ decimalPlaces: 2,
2576
+ useCompactNotation: true,
2577
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2578
+ tooltip: 'Average revenue per customer within 180 days of their first purchase. Captures two purchase cycles for most repeat-buy categories.',
2579
+ relatedMeasures: [MEASURE.ORDERS_LTV, MEASURE.ORDERS_LTV_90, MEASURE.ORDERS_LTV_365],
2580
+ },
2581
+ [MEASURE.ORDERS_LTV_365]: {
2582
+ title: 'LTV 365d',
2583
+ description: 'Customer lifetime value at 365 days.',
2584
+ sumPrefix: '$',
2585
+ sumSuffix: '',
2586
+ avgPrefix: '$',
2587
+ avgSuffix: '',
2588
+ icon: 'dollar-sign',
2589
+ measure: MEASURE.ORDERS_LTV_365,
2590
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2591
+ subcategory: MEASURE_SUBCATEGORY.LTV_METRICS,
2592
+ valueType: MeasureValueType.CURRENCY,
2593
+ decimalPlaces: 2,
2594
+ useCompactNotation: true,
2595
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2596
+ tooltip: 'Average revenue per customer in the first full year after acquisition. A standard benchmark for paid acquisition payback periods.',
2597
+ relatedMeasures: [MEASURE.ORDERS_LTV, MEASURE.ORDERS_LTV_90, MEASURE.ORDERS_LTV_180],
2598
+ },
2599
+ [MEASURE.ORDERS_COHORT_GROSS_REVENUE]: {
2600
+ title: 'Cohort Gross Revenue',
2601
+ description: 'Cumulative gross revenue per cohort.',
2602
+ sumPrefix: '$',
2603
+ sumSuffix: '',
2604
+ avgPrefix: '$',
2605
+ avgSuffix: '',
2606
+ icon: 'dollar-sign',
2607
+ measure: MEASURE.ORDERS_COHORT_GROSS_REVENUE,
2608
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2609
+ subcategory: MEASURE_SUBCATEGORY.LTV_COHORT,
2610
+ valueType: MeasureValueType.CURRENCY,
2611
+ decimalPlaces: 2,
2612
+ useCompactNotation: true,
2613
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2614
+ shortTitle: 'Cohort Gross Rev',
2615
+ tooltip: 'Cumulative gross revenue generated by a customer cohort over time. Used for LTV cohort analysis across acquisition periods.',
2616
+ relatedMeasures: [MEASURE.ORDERS_COHORT_NET_REVENUE, MEASURE.ORDERS_COHORT_AOV, MEASURE.ORDERS_COHORT_CUSTOMERS],
2617
+ },
2618
+ [MEASURE.ORDERS_COHORT_NET_REVENUE]: {
2619
+ title: 'Cohort Net Revenue',
2620
+ description: 'Cumulative net revenue per cohort.',
2621
+ sumPrefix: '$',
2622
+ sumSuffix: '',
2623
+ avgPrefix: '$',
2624
+ avgSuffix: '',
2625
+ icon: 'dollar-sign',
2626
+ measure: MEASURE.ORDERS_COHORT_NET_REVENUE,
2627
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2628
+ subcategory: MEASURE_SUBCATEGORY.LTV_COHORT,
2629
+ valueType: MeasureValueType.CURRENCY,
2630
+ decimalPlaces: 2,
2631
+ useCompactNotation: true,
2632
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2633
+ shortTitle: 'Cohort Net Rev',
2634
+ tooltip: 'Cumulative net revenue (after discounts and refunds) from a customer cohort over time.',
2635
+ relatedMeasures: [MEASURE.ORDERS_COHORT_GROSS_REVENUE, MEASURE.ORDERS_COHORT_AOV, MEASURE.ORDERS_COHORT_CUSTOMERS],
2636
+ },
2637
+ [MEASURE.ORDERS_COHORT_NETT_REVENUE]: {
2638
+ title: 'Cohort Nett Revenue',
2639
+ description: 'Cumulative nett revenue per cohort (T).',
2640
+ sumPrefix: '$',
2641
+ sumSuffix: '',
2642
+ avgPrefix: '$',
2643
+ avgSuffix: '',
2644
+ icon: 'dollar-sign',
2645
+ measure: MEASURE.ORDERS_COHORT_NETT_REVENUE,
2646
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2647
+ subcategory: MEASURE_SUBCATEGORY.LTV_COHORT,
2648
+ valueType: MeasureValueType.CURRENCY,
2649
+ decimalPlaces: 2,
2650
+ useCompactNotation: true,
2651
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2652
+ shortTitle: 'Cohort Nett Rev',
2653
+ tooltip: 'Cumulative nett revenue (net of taxes) per cohort over time.',
2654
+ relatedMeasures: [MEASURE.ORDERS_COHORT_NET_REVENUE, MEASURE.ORDERS_COHORT_NETTS_REVENUE, MEASURE.ORDERS_COHORT_NETS_REVENUE],
2655
+ },
2656
+ [MEASURE.ORDERS_COHORT_NETTS_REVENUE]: {
2657
+ title: 'Cohort Netts Revenue',
2658
+ description: 'Cumulative netts revenue per cohort (T-S).',
2659
+ sumPrefix: '$',
2660
+ sumSuffix: '',
2661
+ avgPrefix: '$',
2662
+ avgSuffix: '',
2663
+ icon: 'dollar-sign',
2664
+ measure: MEASURE.ORDERS_COHORT_NETTS_REVENUE,
2665
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2666
+ subcategory: MEASURE_SUBCATEGORY.LTV_COHORT,
2667
+ valueType: MeasureValueType.CURRENCY,
2668
+ decimalPlaces: 2,
2669
+ useCompactNotation: true,
2670
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2671
+ shortTitle: 'Cohort Netts Rev',
2672
+ tooltip: 'Cumulative netts revenue (net of taxes and shipping) per cohort over time.',
2673
+ relatedMeasures: [MEASURE.ORDERS_COHORT_NETT_REVENUE, MEASURE.ORDERS_COHORT_NETS_REVENUE, MEASURE.ORDERS_COHORT_NET_REVENUE],
2674
+ },
2675
+ [MEASURE.ORDERS_COHORT_NETS_REVENUE]: {
2676
+ title: 'Cohort Nets Revenue',
2677
+ description: 'Cumulative nets revenue per cohort (S).',
2678
+ sumPrefix: '$',
2679
+ sumSuffix: '',
2680
+ avgPrefix: '$',
2681
+ avgSuffix: '',
2682
+ icon: 'dollar-sign',
2683
+ measure: MEASURE.ORDERS_COHORT_NETS_REVENUE,
2684
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2685
+ subcategory: MEASURE_SUBCATEGORY.LTV_COHORT,
2686
+ valueType: MeasureValueType.CURRENCY,
2687
+ decimalPlaces: 2,
2688
+ useCompactNotation: true,
2689
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2690
+ shortTitle: 'Cohort Nets Rev',
2691
+ tooltip: 'Cumulative nets revenue (net of shipping) per cohort over time.',
2692
+ relatedMeasures: [MEASURE.ORDERS_COHORT_NETT_REVENUE, MEASURE.ORDERS_COHORT_NETTS_REVENUE, MEASURE.ORDERS_COHORT_NET_REVENUE],
2693
+ },
2694
+ [MEASURE.ORDERS_COHORT_CUSTOMERS]: {
2695
+ title: 'Cohort Customers',
2696
+ description: 'Number of customers in cohort.',
2697
+ sumPrefix: '',
2698
+ sumSuffix: '',
2699
+ avgPrefix: '',
2700
+ avgSuffix: '',
2701
+ icon: 'users',
2702
+ measure: MEASURE.ORDERS_COHORT_CUSTOMERS,
2703
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2704
+ subcategory: MEASURE_SUBCATEGORY.LTV_COHORT,
2705
+ valueType: MeasureValueType.NUMBER,
2706
+ decimalPlaces: 0,
2707
+ useCompactNotation: true,
2708
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2709
+ shortTitle: 'Cohort Cust.',
2710
+ tooltip: 'The number of customers who made their first purchase in the cohort period. The denominator for all per-customer cohort metrics.',
2711
+ relatedMeasures: [MEASURE.ORDERS_COHORT_GROSS_REVENUE, MEASURE.ORDERS_COHORT_RETENTION_RATE, MEASURE.ORDERS_COHORT_AOV],
2712
+ },
2713
+ [MEASURE.ORDERS_COHORT_RETENTION_RATE]: {
2714
+ title: 'Cohort Retention Rate',
2715
+ description: 'Customer retention rate by cohort.',
2716
+ sumPrefix: '',
2717
+ sumSuffix: '%',
2718
+ avgPrefix: '',
2719
+ avgSuffix: '%',
2720
+ icon: 'percent',
2721
+ measure: MEASURE.ORDERS_COHORT_RETENTION_RATE,
2722
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2723
+ subcategory: MEASURE_SUBCATEGORY.LTV_COHORT,
2724
+ valueType: MeasureValueType.PERCENTAGE,
2725
+ decimalPlaces: 2,
2726
+ useCompactNotation: false,
2727
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2728
+ shortTitle: 'Cohort Retention',
2729
+ tooltip: 'The percentage of customers in a cohort who made an additional purchase in a subsequent period. Higher retention drives LTV.',
2730
+ formulaDisplay: 'Returning Cohort Customers ÷ Initial Cohort Customers × 100',
2731
+ formula: 'returning_cohort_customers / initial_cohort_customers * 100',
2732
+ relatedMeasures: [MEASURE.ORDERS_COHORT_CUSTOMERS, MEASURE.ORDERS_COHORT_GROSS_REVENUE, MEASURE.ORDERS_LTV],
2733
+ },
2734
+ [MEASURE.ORDERS_COHORT_AOV]: {
2735
+ title: 'Cohort AOV',
2736
+ description: 'Average order value by cohort.',
2737
+ sumPrefix: '$',
2738
+ sumSuffix: '',
2739
+ avgPrefix: '$',
2740
+ avgSuffix: '',
2741
+ icon: 'dollar-sign',
2742
+ measure: MEASURE.ORDERS_COHORT_AOV,
2743
+ category: MEASURE_CATEGORY.LIFETIME_VALUE,
2744
+ subcategory: MEASURE_SUBCATEGORY.LTV_COHORT,
2745
+ valueType: MeasureValueType.CURRENCY,
2746
+ decimalPlaces: 2,
2747
+ useCompactNotation: true,
2748
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2749
+ tooltip: 'Average order value for orders placed by customers in the cohort. Tracks whether AOV changes as a cohort matures.',
2750
+ formulaDisplay: 'Cohort Revenue ÷ Cohort Order Count',
2751
+ formula: 'cohort_revenue / cohort_order_count',
2752
+ relatedMeasures: [MEASURE.ORDERS_COHORT_GROSS_REVENUE, MEASURE.ORDERS_COHORT_CUSTOMERS, MEASURE.ORDERS_NET_AOV],
2753
+ },
2754
+ [MEASURE.ORDERS_TOP_PRODUCTS]: {
2755
+ title: 'Top Products',
2756
+ description: 'Top selling products by revenue.',
2757
+ sumPrefix: '',
2758
+ sumSuffix: '',
2759
+ avgPrefix: '',
2760
+ avgSuffix: '',
2761
+ icon: 'package',
2762
+ measure: MEASURE.ORDERS_TOP_PRODUCTS,
2763
+ category: MEASURE_CATEGORY.ORDERS,
2764
+ subcategory: MEASURE_SUBCATEGORY.ORDERS_COUNTS,
2765
+ valueType: MeasureValueType.NUMBER,
2766
+ decimalPlaces: 0,
2767
+ useCompactNotation: false,
2768
+ applicableContexts: ATTRIBUTION_APPLICABLE_CONTEXTS,
2769
+ tooltip: 'A ranking of products ordered by revenue contribution. Identifies the highest-impact products for merchandising and ad targeting.',
2770
+ relatedMeasures: [MEASURE.ORDERS_UNITS, MEASURE.ORDERS_GROSS_REVENUE, MEASURE.ORDERS_COUNT],
1748
2771
  },
1749
2772
  };
1750
2773
  //# sourceMappingURL=orders-measure-definitions.js.map