What is YMM
YMM (Year / Make / Model) is the industry-standard pattern for letting an end customer say 'I have a 2024 Can-Am Outlander 1000' and get back parts that fit that exact vehicle. It originated in automotive aftermarket and got bolted on to powersport, often badly. PowersportOS rebuilds it for the powersport reality.
The classic YMM widget
A YMM widget on a parts-retailer storefront looks the same everywhere: three dropdowns in series.
- Year, pick a model year (typically 1990 → current year + 1)
- Make, pick a vehicle brand (Can-Am, Polaris, Yamaha, etc.)
- Model, pick a model from that make (Outlander 1000, Sportsman 850, etc.)
The customer submits the dropdown selection. The site filters the catalog to only parts that fit that combination. Confidence goes up, returns go down, conversion rates go up. Almost every parts site you've ever seen runs some version of this.
Why classic YMM fails powersport
Three reasons the automotive-borrowed three-dropdown pattern doesn't survive contact with the powersport reality:
Submodels matter, and they vary a lot
A Can-Am Outlander 1000 doesn't exist as a single vehicle. In a given year, the lineup might include:
- Outlander 1000 G3 base
- Outlander 1000 G3 X-MR (mud edition)
- Outlander 1000 G3 XT (touring trim)
- Outlander 1000 G3 X-XC (cross-country)
- Outlander 1000 MAX 6×6 (a fundamentally different chassis)
A brake pad that fits the base model may not fit the X-MR because the X-MR has different brake calipers. A skid plate that fits the regular model is wrong for the 6×6. Submodel-precision is non-negotiable if returns matter to you, which they do, return rates on incorrectly-fitted powersport parts run 15-25% on sites without submodel handling.
Generations break compatibility
Can-Am's Outlander platform had G1, G2, and G3 across roughly 2007-2025, each with chassis changes that broke many cross-generation parts compatibilities. Mid-cycle revisions add another layer, a part designed for G2 early might not fit G2 late if the manufacturer revised the chassis halfway through the generation. Year alone doesn't capture this; the platform needs explicit awareness of generations and revisions.
Wildcards have legitimate use
Some parts genuinely fit "all submodels of this model+year", a universal air filter that's the same across the lineup. Forcing the data model to list every submodel as a separate fitment is bloat and a maintenance trap. PowersportOS supports an empty-submodel value that means "wildcard: matches all submodels of this model+year".
How PowersportOS handles YMM
The PowersportOS data model encodes vehicles at the (model, submodel, year) level. A YMM widget on a retailer's storefront makes a single API call that:
- Receives the customer's (Year, Make, Model, Submodel) selection
- Queries all parts with fitments matching that exact vehicle plus parts with wildcard-submodel fitments for that model+year
- Returns the matching parts with their full content (description, images, price, stock) joined from the central catalog and the retailer's tenant layer
The submodel dropdown isn't optional, it's a fourth required dropdown after Year/Make/Model. The customer sees "1000 G3", "1000 G3 X-MR", "1000 G3 XT", and picks one. The platform then returns the parts that match their exact vehicle.
Beyond the dropdown, OEM cross-referencing
The other half of getting fitment right is letting customers search by OEM part number directly. If you already know the original equipment manufacturer's part number from your owner's manual or the part stamped on the broken one, you should be able to type it in and find aftermarket alternatives that fit.
PowersportOS supports multi-OEM cross-references per aftermarket part. One aftermarket filter can be the replacement for a Can-Am OEM number, a Honda OEM number, and a Yamaha OEM number simultaneously (cross-brand attribution is a first-class concept, not a workaround). The customer types any of those OEM numbers and gets the same aftermarket result.
See Fitment data model for the technical details of how vehicles, year ranges, and fitments are structured.