Custom Asset Managaement (CAM) Specs

"When specs go wrong, someone needs to catch it!"

Role

Product Design Consultant

Year

2023

Client

Michelin

Industry

Manufraturing

Overview

Designing the Asset Management module for Michelin's Business Tool Network, a web app used by sales reps to configure custom tire specifications for fleet customers, with guardrails that flag when those specs cross a safety line.

  1. Context

A 100-year-old company with a very modern problem

Michelin's sales reps look after tire programs for large fleets, like trucking companies and logistics operators. Each customer gets a Custom Asset Management (CAM) spec: a set of rules that says which tires are approved, how many times a casing can be retreaded, and when it's too old to use safely. Getting these rules wrong can put bad tires on trucks.

The Business Tool Network (BTN) is the internal web app reps use to build and manage these specs. Version 4.x was a full redesign of the Asset Management section. It added more asset types, a new way to create specs, and a check system to catch specs that broke Michelin's own safety limits.

I was the only designer on the project, working directly with the product and engineering teams. No existing design system to borrow from. Just the files, the rules, and a tight deadline.

6

asset types: Drive, Trailer, Trade Trucks, Yard, Default RR, Default RO

4

application categories with different MRT safety maximums

2

creation paths: build fresh or copy from an existing spec

  1. Problem Framing

Before the redesign, reps could build a spec with values that broke Michelin's own safety guidelines and the tool wouldn't say a word. For example, a rep could set a casing age limit of 90 months for line haul, when Michelin's limit is 84. Nobody would know until an audit or something worse.

⚠️ No validation at input time

⚠️ No validation at input time

Reps could enter values that exceeded Michelin's published MRT (Maximum Retread Times) limits with no feedback whatsoever.

⚠️ Specs weren't portable

⚠️ Specs weren't portable

If a rep wanted similar settings for a new customer, they rebuilt from scratch. No way to copy or reuse a known-good template.

⚠️ No clear status at a glance

⚠️ No clear status at a glance

After saving, there was no persistent indicator that a spec was out of compliance, reps had to remember, and managers reviewing specs had no signal at all.

⚠️ Repair limits were opaque

⚠️ Repair limits were opaque

The crown/shoulder/sidewall repair table had no guidance on what values were acceptable relative to application type.

The tool let reps build specs that Michelin's own rules wouldn't allow. A spec is only as good as the person who last touched it.

  1. Discovery

What does a "bad spec" actually cost?

Discovery had two goals: understand how reps actually use the module day to day, and map out the safety limits that needed to be built into the checks. The Michelin Specifications table became a key reference. It showed exactly what the system needed to enforce.

This table defined the validation logic we needed to encode into the UI.

The personas

There were two main user types. Sales reps building specs want to work fast and get it right. They don't want to look up a table every time they type a number. Managers checking saved specs want a quick read on whether something is off, without having to open every record.

We also found that reps had already invented their own workaround for copying specs. They would take a screenshot of a good one and retype it for the next customer. That told us clearly what was missing.

👨🏻‍💼

Sale reps (primary)

👨🏻‍💼👨🏻‍💼

Managers (secondary)

👨🏻‍💻

Spec review audits

👨🏻‍🔧

PDF export for customers

  1. Design Process

The tricky part was this: a rep can set values that go over Michelin's limits and still save the spec. They sometimes have a good reason. So blocking the save wasn't the answer. The goal was to make the problem impossible to miss, so no one could later say they didn't see it.

We looked at four options:

Option A · Hard block

Prevent saving when any value exceeds the MRT maximum. Clear, but overrides valid edge cases where Michelin approves exceptions for specific customers.

Option B · Persistent badge (chosen)

Flag the spec with an "Exceeds Michelin Specifications" badge, shown at all times: view mode, edit mode, and the PDF export. Save is never blocked, but the deviation is always visible.

Option C · Inline field error only

Show error text under the specific field. Catches it during entry but doesn't persist after saving. Managers reviewing later wouldn't see it.

Option D · Save-time modal

Warn at save, require acknowledgment. Adds friction on every save, including saves that don't touch the out-of-range field. Too disruptive.

Option B won because it keeps the warning visible no matter who's looking at the spec, and no matter when. We also kept Option C as a companion: the specific field error shows in red while editing, while the badge gives the overall status at the top.

  1. Core Screen

The spec in read mode: status at a glance

The default view shows the full spec. The amber badge sits above the asset name and stays there. Repair limits are laid out in a table with Crown, Shoulder, and Sidewall columns. This is also what gets sent to the customer as a PDF.

Drive spec, read view (exceeds spec)

Edit mode: validation in context

In edit mode, fields turn into inputs. The badge stays at the top. The error message shows right below the field that's over the limit, and it always tells you the exact number you can't go past. If you try to cancel, a pop-up checks that you actually want to leave.

Edit mode with inline validation

Trailer tab with Specification Type: RR badge

  1. Key Decision

The Create New CAM Spec modal: one decision, two paths

When a rep clicks Create, they choose between starting fresh or copying an existing spec. This was new in v4.x, built to replace the screenshot workaround. But the modal had to answer one tricky question: if a rep copies the "X One" spec for a new customer and then changes it, does the original change too?

The answer is no, but we had to make that crystal clear. A rep who assumes the wrong thing could accidentally mess up a spec that other customers rely on.

Path 1: Create new

Create New (Create New selected)

New CAM Spec inputs

Actions Combinations

  • Action = Reject; Disposition = Return, then do not display Disposition field



  • Action = Reject; Disposition = Scrap, then display Disposition Code field



  • Action = Downgrade; display 3 fields of Applications, Axle(s), and Tread(s)

Path 2: Create from existing

Once a rep picks a template and clicks Create, a confirmation pop-up spells out what happens next in plain terms: the copy belongs to this customer only. Any changes they make stay here.

Create from Existing (X One selected)

Duplicate X One existing CAM spec

  1. Validation deep dive

Two levels of validation, one consistent language

The badge at the top and the red text under the field both use the same amber color and plain language. They're the same type of alert, just at different levels. One tells you the whole spec has a problem. The other tells you exactly which field and exactly what the limit is.

New CAM Spec form with required field errors

Cancel confirmation modal

  1. Details that matter

Export dropdown (Drive and Trailer selected)

PDF downloading state

Confirm new spec scope (bookmark hint)

  1. PDF export

The printed view carries the same compliance signal

The PDF keeps the same layout and the same status badges. Drive (with the amber "exceeds" badge) and Trailer (with the blue "Specification Type: RR" badge) both appear on the same document. Customers get the full picture.

Confirm new spec scope (bookmark hint)

  1. Outcomes

What changed

The module made a simple promise: no badge means the spec is within Michelin's limits. Keeping that promise meant the checks had to work the same way in three places: the form, the read view, and the printed PDF. That took close work with the engineering team to get right.

The module made a simple promise: no badge means the spec is within Michelin's limits. Keeping that promise meant the checks had to work the same way in three places: the form, the read view, and the printed PDF. That took close work with the engineering team to get right.

Compliance status is always visible, in every mode, including the customer-facing PDF

Reps can clone and modify specs without risking changes to shared templates

Managers can review spec status at a glance without opening each record

  1. Reflection

What I'd push on next

The logic for which fields show up in the Repair Limits section depending on the action selected was resolved in the final build. But it was the trickiest part to get right. A simple decision table in the docs would save the next engineer a lot of time.

I'd also want to see how often reps use "Create from Existing" versus "Create New" once the tool is live. If most people copy, the modal should lead with that option, not list it second.

The badge isn't a warning that something went wrong. It's the tool doing exactly what it's supposed to do.

The logic for which fields show up in the Repair Limits section depending on the action selected was resolved in the final build. But it was the trickiest part to get right. A simple decision table in the docs would save the next engineer a lot of time.

I'd also want to see how often reps use "Create from Existing" versus "Create New" once the tool is live. If most people copy, the modal should lead with that option, not list it second.

The badge isn't a warning that something went wrong. It's the tool doing exactly what it's supposed to do.

Case Studies