Category assignment logic

Each item code in the Tally Movement Analysis reports was matched to a category in four passes:

  1. Exact match (whitespace/dash/case-insensitive) against a master mapping built from all three supplied Google Sheets — the "Item to category mapping" tab, the "2025 calculation process" tab, and the "Website item id to category mapping" sheet (~2,900 unique item codes combined).
  2. For codes not found, keyword rules mirroring the business's own "Type" shorthand convention (e.g. MEDAL→Medals, FRAME→Frames, FIBER→Fiber Trophy, trailing N-suffix codes→Mementos, BRANDING/LANYARD→Services/Branding).
  3. An exact match against 107 item codes Rahil manually labeled from the original uncategorized list.
  4. 37 fuzzy rules derived from those 107 labels, propagated to every other unlabeled code sharing the same prefix, numeric model-family, or keyword.

Category contribution definition

"Category contribution" = each category's share of total Outward (sales/dispatch) Value for the period. Inward (purchase) value/qty is shown alongside for reference but the % contribution ranking is based on Outward Value, consistent with the "Sum of Gross Value" pivot approach used in the client's own 2025 calculation process tab.

Manual labels + fuzzy propagation

Rahil reviewed the original 1,239-item "Uncategorized (mapping gap)" export and directly labeled 107 codes across four categories: Memento, Trophy (generic), Corporate Trophy, and Fiber Trophy. Each rule below generalizes one label to every other code sharing its prefix (e.g. all "CP*" codes), numeric model-family (e.g. all "4288-*" variants), or an embedded keyword (e.g. any code containing "CRIC" or "IPL") — the same logic the business already uses internally for its "Type" shorthand column.

Rule Type Match Assigned Category # Labels Example Codes
Prefix CP Mementos 21 CP55S, CP75L, CP95
Prefix GT Trophy (Type Unspecified) 10 GT107B, GT-103-D
Prefix JH Corporate Trophy 10 Jh89AA, JH089AA
Prefix PF Fiber Trophy 9 PF1303XS, PF1303S
Model family 69 Trophy (Type Unspecified) 5 69-B-1, 69-K-1, 69
Keyword CRIC Trophy (Type Unspecified) 4 CRIC14-B, CRIC21
Keyword IPL Trophy (Type Unspecified) 4 1720 IPL-1, IPL Cup-3
Model family 4288 Corporate Trophy 3 4288-A, 4288-B, 4288-C
Model family 1907 Mementos 3 1907 N-1, N-2, N-3
Model family 4392 Trophy (Type Unspecified) 3 4392 C, 4392 - A/B
Model family 2408 Trophy (Type Unspecified) 3 A2408, B2408, C2408
Model family 552 Mementos 3 552-1, 552-2, 552-3
Keyword CUP Trophy (Type Unspecified) 2 Man Trophy Cup G-3, V Cup-3
Model family 551 Mementos 2 551-1, 551-3
Model family 2967 Mementos 2 2967-2, 2967-3
Model family 728 Mementos 2 728-6, 728 M3
Model family 1175 Corporate Trophy 1 1175
Model family 4390 Trophy (Type Unspecified) 1 4390 B
Model family 036 Trophy (Type Unspecified) 1 036 A
Model family 2115 Trophy (Type Unspecified) 1 2115B
Model family 75 Corporate Trophy 1 75-1
Model family 108 Trophy (Type Unspecified) 1 Q108L
Prefix KT Fiber Trophy 1 KT 9
Model family 4039 Corporate Trophy 1 4039-D
Model family 573 Mementos 1 573-MC
Model family 6364 Trophy (Type Unspecified) 1 6364-154
Model family 20 Trophy (Type Unspecified) 1 T-20-90-3
Model family 1013 Trophy (Type Unspecified) 1 J1013M
Prefix ROYAL Trophy (Type Unspecified) 1 Royal20
Model family 729 Mementos 1 729-3
Model family 203 Mementos 1 203
Model family 1946 Mementos 1 1946 N-3
Model family 1723 Mementos 1 1723 N-3
Model family 9012 Trophy (Type Unspecified) 1 9012B
Prefix CR Fiber Trophy 1 CR533AA
Model family 3213 Mementos 1 3213-1
Model family 290 Mementos 1 290-2

<aside> 💡

Applied to the remaining 1,132 unlabeled codes, these 37 rules resolved 272 additional item codes (₹22.2L / ~31% of the then-remaining unlabeled value). Full per-item resolution is in the companion Excel workbook's "Fuzzy Mapping Rules" and item-detail tabs.

</aside>

Data quality — remaining mapping coverage gap

<aside> ⚠️

After all four passes, 16.2% of July 2026's outward value (₹433,290) and 13.0% of the 2024–2026 outward value (₹4,914,478) remain in "Uncategorized (mapping gap)" — down from 37.7% and 31.9% before Rahil's manual labels.

These are codes that don't share a prefix, model-family, or keyword with any labeled example (mostly one-off model codes and a long tail of low-value items). They were not guessed into a specific category to avoid misrepresenting the split.

Recommendation: extending the manual-label list (or the source mapping sheets directly) would close most of what remains — the companion CSV of remaining uncategorized codes can be re-sent for another labeling pass if useful.

</aside>

Trend methodology limitation

The 2024–2026 source file reports period totals per item, not a monthly time series. The combined trend analysis is therefore a comparison of July 2026 against the 28-month average and share — a valid indicator of relative momentum, but it cannot show month-by-month seasonality within the 28-month window. A true monthly trend would require re-running the Tally Movement Analysis report once per month.

Companion files

A full PDF report and an Excel workbook (with item-level detail, filters, native charts, and a dedicated "Fuzzy Mapping Rules" tab) were also generated and shared directly with Rahil outside of Notion.