As Nordic Loop prepared for enterprise pilots, we needed a reliable method to capture surplus inventory using AI image classification while supporting CO₂ estimation and future matching workflows.
With no production users yet, this was a narrow window to define the product's structural foundation before real usage introduced schema constraints. The cost of getting it wrong was a disruptive migration shortly after launch. The worst possible moment.
The taxonomy wasn't just a UI label. It was the input to three downstream systems: the AI classifier, the CO₂ calculation engine, and the DPP generator. A wrong category at capture propagated as wrong data through all three. This wasn't a feature decision. It was an infrastructure decision.
The existing data model categorised listings by raw material type: wood, metal, plastic, glass. This created four compounding risks:
- AI misalignment. The classifier was trained on asset categories, not material types. A chair is not "wood and fabric," it's a chair. The taxonomy and the model were working against each other.
- Ambiguous measurement units. Construction assets vary widely in how they are counted (pieces, pallets, tonnes). A material-based model had no reliable way to enforce correct units, making CO₂ estimates meaningless.
- Unreliable CO₂ attribution. CO₂ calculations depend on knowing what the asset actually is, not what it is made of. A material-based input couldn't produce trustworthy estimates.
- Near-certain post-launch migration. The schema would need to change once real users started listing real assets. Inheriting that technical debt from day one was avoidable.
Shift from a material-based model to an asset-based taxonomy, aligning the product with how construction workers actually think about inventory and how the AI classifier performs best.
Because no active users existed yet, we deliberately chose structural clarity over backward compatibility. The only moment that choice was cheap.
Redesigned the capture architecture around asset identity rather than raw material composition. Key decisions:
- Restricted AI predictions to high-confidence categories. Limited the model to the top 7 most-used asset types with manual override available. Narrower coverage, but reliable output where it mattered most.
- Introduced conditional unit selection. Units were only required where no safe default existed (e.g. masonry materials). Reduced friction without sacrificing data integrity.
- Gated CO₂ estimates behind required inputs. A CO₂ figure only appears when the system has enough data to calculate it accurately. Preventing false precision was more important than showing a number.
- Added an "Other/Unknown" path. Users who couldn't classify an asset were never forced into a dead end. The system accepted uncertainty rather than demanding a wrong answer.
- Recommended a clean schema over legacy compatibility. With zero active users, there was no argument for carrying old structure forward.
Guiding principle throughout: AI handles recognition. Humans provide specificity.
Accepted narrower initial AI coverage and slightly higher required user input in exchange for:
- Stronger data reliability across all asset types
- Scalable classification that would hold as the product grew
- Credible CO₂ estimates from day one
- No post-launch schema migration
Short-term convenience deprioritised to prevent long-term structural debt.
- Clean schema in place before any pilot launched. No migration required during or after the Mod:group and Skanska pilots. The foundation held under real enterprise usage.
- CO₂ estimates reliable from day one. Gating inputs behind required fields meant every figure shown to an enterprise stakeholder was defensible, not approximate.
- Inventory flow produced decision-grade data. Asset-based listings gave enterprise users actionable inventory visibility, not just a list of raw materials with ambiguous quantities.
- Architecture credible enough for senior enterprise engagement. The Head of New Ventures at Stena Metall agreed to a demo and requested direct platform access. The Head of Projects at Platzer engaged positively toward a pilot. Both reached a seniority level the pre-pivot marketplace pitch had not.
Material-based taxonomy misaligned with how construction workers think, how the AI classifies, and how CO₂ is calculated. Structural debt inherited from day one.
Asset-based taxonomy aligned across AI, CO₂, and DPP systems. No migration needed after launch. Every number shown to an enterprise stakeholder was defensible.
Early taxonomy decisions function as infrastructure. Correcting them after adoption is expensive, not just technically, but in terms of user trust and data quality.
Designing AI-assisted workflows is less about maximising automation and more about deliberately defining the boundary between system inference and human input. Where the model is confident, let it decide. Where it isn't, ask the human.
In a 0→1 environment, architecture is often the highest-leverage product decision. And the one most likely to be skipped in favour of shipping faster.