Box Logic
INTERNAL TOOLING & WORKFLOW AUTOMATION
Role
Solo Designer & Developer
Team
Operations
Logistics
Responsibilities
System Design
Data Modelling
Workflow Automation
UI Concept Design
Tools
Figma
Python
Excel
Outcome
A data-driven packaging system that reduced box selection time from 15 minutes to under a minute per SKU, standardised a catalogue of 84 products into 7 reusable box sizes, and saved over 47 hours of operational overhead annually.
Problem
Bright Tangerine makes professional camera accessories used on film sets around the world. As the product catalogue grew, so did the overhead of packaging each one – box sizes chosen by feel, inconsistent across the range, and around ten to fifteen minutes of admin per SKU. The opportunity to fix it was clear.
The goal: stop optimising individual boxes, and build the system that generates them.
Approach
I started by standardising product data – dimensions, weight, SKU identification, and sales volume – into a consistent format that could be processed downstream. From there, I implemented a K-means clustering model to group products by volumetric profile, with the goal of minimising the number of unique box sizes while keeping packing efficiency above 80%.
Pure clustering doesn’t hold up in production, so I layered rule-based overrides on top: high-sales SKUs get prioritised for tighter fits, fragile or premium products are allowed lower efficiency thresholds, and edge-case geometries are flagged for custom packaging. The whole pipeline runs in Python, ingesting a spreadsheet and outputting box assignments, efficiency metrics, and a review flag per SKU.
Unsorted products
84 SKUs with different dimensions. Each product needs assigning to a box size, but doing it manually takes ~15 minutes per order.
K-means analyses volume profiles
Grouped by volume similarity
The algorithm measures each product's dimensions and groups those with similar volume profiles together. Each cluster maps to an optimal box size.
Optimal assignment
Every product assigned to the right box
Instead of manually matching each SKU to a box, the algorithm finds natural groupings in the data. Products with similar volumes end up together, each mapping to one box size.
The interface question
The system worked – but it lived entirely in a terminal. As a design exercise, I explored what it would look like as an internal tool built for an operations user rather than a developer: status at a glance, SKU assignments with efficiency bars, override rules visible without needing to read code.
| Product | SKU | Assigned box | Efficiency | Status |
|---|---|---|---|---|
Matte Box 4×5.65 |
BT-MB-001 | Box C — 320×220×80mm | 87% |
Good |
Follow Focus Pro |
BT-FF-014 | Box B — 260×180×120mm | 79% |
Good |
Lens Support 15mm |
BT-LS-022 | Custom | — |
Custom |
Shoulder Rig Kit |
BT-SR-007 | Box F — 480×340×200mm | 61% |
Review |
Top Handle Carbon |
BT-TH-031 | Box A — 200×140×60mm | 84% |
Good |
Outcome
Decision time dropped from around fifteen minutes to under one minute per SKU. 84 products consolidated into 7 box sizes, down from 23. Estimated saving of 47+ hours annually, scaling with catalogue growth.
The broader lesson was about system design over individual decisions. Good systems reduce cognitive load, enforce consistency, and scale without increasing complexity – principles that apply just as much to interface design as to packaging logic.
Per SKU decision, down from 15 minutes
Box types in use, consolidated from 23
Saved annually, scales with catalogue growth


