<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: partwiz</title>
    <description>The latest articles on DEV Community by partwiz (@partwiz_autoparts).</description>
    <link>https://dev.to/partwiz_autoparts</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4090193%2Fd0e88bae-d560-4156-8f79-fdeabae07bb2.png</url>
      <title>DEV Community: partwiz</title>
      <link>https://dev.to/partwiz_autoparts</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/partwiz_autoparts"/>
    <language>en</language>
    <item>
      <title>How TecDoc Actually Works: A Developer's Guide to Automotive Parts Fitment Data</title>
      <dc:creator>partwiz</dc:creator>
      <pubDate>Sat, 22 Aug 2026 21:54:32 +0000</pubDate>
      <link>https://dev.to/partwiz_autoparts/how-tecdoc-actually-works-a-developers-guide-to-automotive-parts-fitment-data-5d2a</link>
      <guid>https://dev.to/partwiz_autoparts/how-tecdoc-actually-works-a-developers-guide-to-automotive-parts-fitment-data-5d2a</guid>
      <description>&lt;p&gt;If you've ever tried to build "does this part fit my car" search for an&lt;br&gt;
e-commerce site, you've probably hit TecDoc — the European standard&lt;br&gt;
database for automotive parts fitment — without anyone actually explaining&lt;br&gt;
how it's structured. Here's the developer-level version.&lt;/p&gt;

&lt;h2&gt;
  
  
  The core problem TecDoc solves
&lt;/h2&gt;

&lt;p&gt;"Does part X fit a 2018 Toyota Corolla?" is not a well-formed question.&lt;br&gt;
A 2018 Corolla shipped with at least four engine variants, each with&lt;br&gt;
different mounting points, dimensions, and part numbers for the same&lt;br&gt;
physical component. Fitment data has to be precise at the &lt;em&gt;engine variant&lt;/em&gt;&lt;br&gt;
level, not just make/model/year, or you ship wrong parts and eat return&lt;br&gt;
costs.&lt;/p&gt;

&lt;p&gt;TecDoc — maintained by TecAlliance, an industry consortium of OEMs and&lt;br&gt;
aftermarket suppliers — is the reference database that solves this at&lt;br&gt;
scale: 500+ vehicle makes, 900+ aftermarket brands, 400M+ fitment records.&lt;/p&gt;

&lt;h2&gt;
  
  
  The data model
&lt;/h2&gt;

&lt;p&gt;Two linked structures:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vehicle catalog&lt;/strong&gt; — a 4-level hierarchy:&lt;br&gt;
&lt;code&gt;Make → Model → Type → Engine&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Each level gets its own TecDoc ID. The "Type" level is where it gets&lt;br&gt;
interesting — a 2018 Corolla 1.8 Hybrid and a 2018 Corolla 1.6 Petrol are&lt;br&gt;
different Type IDs, because they're different vehicles from a parts&lt;br&gt;
perspective even though they're the "same car" from a marketing one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parts catalog&lt;/strong&gt; — organized by &lt;em&gt;Generic Article Group&lt;/em&gt; (GAG), a&lt;br&gt;
standardized category code. "Brake disc" has one GAG code regardless of&lt;br&gt;
which of the 900+ brands submitted it. This is what makes cross-brand&lt;br&gt;
comparison reliable — you're never accidentally comparing a brake disc to&lt;br&gt;
a brake pad because two brands categorized things slightly differently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fitment records&lt;/strong&gt; are the join table: &lt;code&gt;(GAG, Type ID) → compatible&lt;/code&gt;.&lt;br&gt;
This is the actual query your fitment search needs to run.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-reference: the other half
&lt;/h2&gt;

&lt;p&gt;Separately, TecDoc stores cross-reference records: &lt;code&gt;IAM part number →&lt;br&gt;
OEM part number&lt;/code&gt;. When an aftermarket brand submits a part, they attach&lt;br&gt;
the OEM number it's designed to replace. This gives you multi-directional&lt;br&gt;
lookup — OEM number in, all equivalents out; any equivalent in, OEM&lt;br&gt;
number + all siblings out.&lt;/p&gt;

&lt;p&gt;The gotcha: this only works if the brand actually submitted the&lt;br&gt;
cross-reference. A physically identical part from a brand that skipped&lt;br&gt;
that step won't show up in the lookup. Production systems typically need&lt;br&gt;
a supplementary fitment-based matching layer to catch these gaps, and&lt;br&gt;
often blend in manufacturer feeds and other data sources alongside TecDoc&lt;br&gt;
to close coverage holes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means if you're building on top of it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Don't key your fitment queries on make/model/year alone — resolve down
to Type ID (engine variant) or your compatibility data will be wrong
for split-engine model years.&lt;/li&gt;
&lt;li&gt;Quarterly update cycle means TecDoc data is never more than ~3 months
stale by design. Fine for structural parts, not fine for fast-moving
categories (filters, plugs) without your own sync discipline.&lt;/li&gt;
&lt;li&gt;Direct TecDoc licensing is a real commercial process (volume
commitments, TecAlliance integration) — most teams building product
pages work with a data provider instead, one that combines TecDoc with
other sources and ships pre-processed, query-ready output.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wrote a longer breakdown of the full data model (including how AI&lt;br&gt;
search engines weight fitment specificity when citing product pages) here:&lt;br&gt;
&lt;a href="https://www.partwiz.app/blog/tecdoc-explained" rel="noopener noreferrer"&gt;TecDoc Explained&lt;/a&gt; — I&lt;br&gt;
work on &lt;a href="https://www.partwiz.app" rel="noopener noreferrer"&gt;PartWiz&lt;/a&gt;, where we deal with catalog&lt;br&gt;
data enrichment for spare parts sellers; happy to compare notes if&lt;br&gt;
you're deep in this problem too.&lt;/p&gt;

&lt;p&gt;Curious what other devs have run into building fitment search — anyone&lt;br&gt;
dealing with ACES/PIES on the US side instead of TecDoc, would be&lt;br&gt;
interested to compare notes.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>api</category>
      <category>tutorial</category>
      <category>ecommerce</category>
    </item>
  </channel>
</rss>
