Skip to content

Commit a86c032

Browse files
authored
Merge pull request #80 from Data-Simply/more_docs_analysis_modules
docs: updated analysis module docs
2 parents 7f7828a + 364c1cf commit a86c032

File tree

4 files changed

+5207
-3
lines changed

4 files changed

+5207
-3
lines changed

docs/analysis_modules.md

Lines changed: 239 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,52 @@ waterfall_plot(
4343
)
4444
```
4545

46+
### Index Plots
47+
48+
<div class="clear" markdown>
49+
50+
![Image title](assets/images/analysis_modules/index_plot.svg){ align=right loading=lazy width="50%"}
51+
52+
Index plots are visual tools used in retail analytics to compare different categories or segments against a baseline or
53+
average value, typically set at 100. Index plots allow analysts to:
54+
55+
Quickly identify which categories over- or underperform relative to the average
56+
Compare performance across diverse categories on a standardized scale
57+
Highlight areas of opportunity or concern in retail operations
58+
Easily communicate relative performance to stakeholders without revealing sensitive absolute numbers
59+
60+
In retail contexts, index plots are valuable for:
61+
62+
Comparing sales performance across product categories
63+
Analyzing customer segment behavior against the overall average
64+
Evaluating store or regional performance relative to company-wide metrics
65+
Identifying high-potential areas for growth or investment
66+
67+
By normalizing data to an index, these plots facilitate meaningful comparisons and help focus attention on significant
68+
deviations from expected performance, supporting more informed decision-making in retail strategy and operations.
69+
70+
</div>
71+
72+
Example:
73+
74+
```python
75+
from pyretailscience.standard_graphs import index_plot
76+
77+
index_plot(
78+
df,
79+
df_index_filter=df["segment_name"] == "Light",
80+
value_col="unit_price",
81+
group_col="category_0_name",
82+
title="Music an opportunity category for Light?",
83+
y_label="Categories",
84+
x_label="Indexed Spend",
85+
source_text="Source: Transaction data financial year 2023",
86+
sort_by="value",
87+
sort_order="descending",
88+
legend_title="Quarter",
89+
)
90+
```
91+
4692
### Timeline Plot
4793

4894
<div class="clear" markdown>
@@ -73,8 +119,12 @@ from pyretailscience.standard_graphs import time_plot
73119
rng = np.random.default_rng(42)
74120
df = pd.DataFrame(
75121
{
76-
"transaction_datetime": pd.concat([pd.Series(pd.date_range(start="2022-01-01", periods=200, freq="D"))] * 3),
77-
"total_price": np.concatenate([rng.integers(1, 1000, size=200) * multiplier for multiplier in range(1, 4)]),
122+
"transaction_datetime": pd.concat(
123+
[pd.Series(pd.date_range(start="2022-01-01", periods=200, freq="D"))] * 3
124+
),
125+
"total_price": np.concatenate(
126+
[rng.integers(1, 1000, size=200) * multiplier for multiplier in range(1, 4)]
127+
),
78128
"group": ["Group A"] * 200 + ["Group B"] * 200 + ["Group C"] * 200,
79129
},
80130
)
@@ -149,3 +199,190 @@ pa.df.head()
149199
| 100 Animals Book | 4-Series 4K UHD | 78 | 82 | 1 | 0.000039 | 0.0128205 | 3.98 |
150200
| 100 Animals Book | 700S Eterna Trumpet | 78 | 71 | 1 | 0.000039 | 0.0128205 | 4.60 |
151201
<!-- markdownlint-enable MD013 -->
202+
203+
### Cross Shop
204+
205+
<div class="clear" markdown>
206+
207+
![Image title](https://placehold.co/600x400/EEE/31343C){ align=right loading=lazy width="50%"}
208+
209+
PASTE TEXT HERE
210+
211+
</div>
212+
213+
Example:
214+
215+
```python
216+
PASTE CODE HERE
217+
```
218+
219+
### Gain Loss
220+
221+
<div class="clear" markdown>
222+
223+
![Image title](https://placehold.co/600x400/EEE/31343C){ align=right loading=lazy width="50%"}
224+
225+
PASTE TEXT HERE
226+
227+
</div>
228+
229+
Example:
230+
231+
```python
232+
PASTE CODE HERE
233+
```
234+
235+
### Customer Decision Hierarchy
236+
237+
<div class="clear" markdown>
238+
239+
![Image title](assets/images/analysis_modules/customer_decision_hierarchy.svg){ align=right loading=lazy width="50%"}
240+
241+
A Customer Decision Hierarchy (CDH), also known as a Customer Decision Tree, is a powerful tool in retail analytics that
242+
visually represents the sequential steps and criteria customers use when making purchase decisions within a specific
243+
product category. Here's a brief summary of its purpose and utility:
244+
245+
CDHs allow analysts to:
246+
247+
- Map out the hierarchical structure of customer decision-making processes
248+
- Identify key product attributes that drive purchase decisions
249+
- Understand product substitutions and alternatives customers consider
250+
- Prioritize product attributes based on their importance to customers
251+
252+
In retail contexts, CDHs are valuable for:
253+
254+
- Optimizing product assortments and shelf layouts
255+
- Developing targeted marketing strategies
256+
- Identifying opportunities for new product development
257+
- Understanding competitive dynamics within a category
258+
259+
By visualizing the decision-making process, CDHs help retailers align their offerings and strategies with customer
260+
preferences, potentially increasing sales and customer satisfaction. They provide insights into how customers navigate
261+
choices, enabling more effective category management and merchandising decisions.
262+
263+
</div>
264+
265+
Example:
266+
267+
```python
268+
from pyretailscience.range_planning import CustomerDecisionHierarchy
269+
270+
cdh = CustomerDecisionHierarchy(df)
271+
ax = cdh.plot(
272+
orientation="right",
273+
source_text="Source: Transactions 2024",
274+
title="Snack Food Substitutions",
275+
)
276+
```
277+
278+
### Revenue Tree
279+
280+
<div class="clear" markdown>
281+
282+
![Image title](https://placehold.co/600x400/EEE/31343C){ align=right loading=lazy width="50%"}
283+
284+
PASTE TEXT HERE
285+
286+
</div>
287+
288+
Example:
289+
290+
```python
291+
PASTE CODE HERE
292+
```
293+
294+
### HML Segmentation
295+
296+
<div class="clear" markdown>
297+
298+
![Image title](https://placehold.co/600x400/EEE/31343C){ align=right loading=lazy width="50%"}
299+
300+
PASTE TEXT HERE
301+
302+
</div>
303+
304+
Example:
305+
306+
```python
307+
PASTE CODE HERE
308+
```
309+
310+
### Threshold Segmentation
311+
312+
<div class="clear" markdown>
313+
314+
![Image title](https://placehold.co/600x400/EEE/31343C){ align=right loading=lazy width="50%"}
315+
316+
PASTE TEXT HERE
317+
318+
</div>
319+
320+
Example:
321+
322+
```python
323+
PASTE CODE HERE
324+
```
325+
326+
### Segmentation Stats
327+
328+
<div class="clear" markdown>
329+
330+
![Image title](https://placehold.co/600x400/EEE/31343C){ align=right loading=lazy width="50%"}
331+
332+
PASTE TEXT HERE
333+
334+
</div>
335+
336+
Example:
337+
338+
```python
339+
PASTE CODE HERE
340+
```
341+
342+
### Purchases Per Customer
343+
344+
<div class="clear" markdown>
345+
346+
![Image title](https://placehold.co/600x400/EEE/31343C){ align=right loading=lazy width="50%"}
347+
348+
PASTE TEXT HERE
349+
350+
</div>
351+
352+
Example:
353+
354+
```python
355+
PASTE CODE HERE
356+
```
357+
358+
### Days Between Purchases
359+
360+
<div class="clear" markdown>
361+
362+
![Image title](https://placehold.co/600x400/EEE/31343C){ align=right loading=lazy width="50%"}
363+
364+
PASTE TEXT HERE
365+
366+
</div>
367+
368+
Example:
369+
370+
```python
371+
PASTE CODE HERE
372+
```
373+
374+
### Transaction Churn
375+
376+
<div class="clear" markdown>
377+
378+
![Image title](https://placehold.co/600x400/EEE/31343C){ align=right loading=lazy width="50%"}
379+
380+
PASTE TEXT HERE
381+
382+
</div>
383+
384+
Example:
385+
386+
```python
387+
PASTE CODE HERE
388+
```

0 commit comments

Comments
 (0)