{
  "schemaVersion": "1.0",
  "title": "Product category mapping review",
  "author": "George Kelly",
  "prepared": "2026-10-04",
  "kind": "Manual worksheet and fictional cases",
  "provenance": "All products, merchant hierarchies, campaigns, and case decisions are fictional. Taxonomy entries and documentation are primary-source facts checked for this edition.",
  "scope": "A manual evidence-review artifact. No executable classifier, provider upload, merchant acceptance, ranking outcome, or full feed validation is implemented or claimed.",
  "taxonomy": {
    "url": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
    "retrieved": "2026-10-04",
    "versionHeader": "# Google_Product_Taxonomy_Version: 2021-09-21",
    "bytes": 482896,
    "sha256": "30039729880ec5ac4851de088ad228a6898aa253f0de5d5ebea5bb1437478fce",
    "checkedEntries": [
      {
        "id": "2169",
        "path": "Home & Garden > Kitchen & Dining > Tableware > Drinkware > Mugs"
      },
      {
        "id": "152",
        "path": "Cameras & Optics > Cameras > Digital Cameras"
      }
    ],
    "invalidDemonstrationID": "999999999",
    "invalidDemonstrationIDPresent": false
  },
  "decisionVocabulary": {
    "unreviewed": "No mapping decision has been reviewed.",
    "review_candidate": "A candidate exists for human inspection; no provider outcome is established.",
    "hold": "Required evidence or owner decision is unresolved."
  },
  "blankRecord": {
    "itemID": null,
    "observedAt": null,
    "productFunction": null,
    "functionEvidenceReference": null,
    "sourceTaxonomy": null,
    "sourceTaxonomyVersion": null,
    "sourceCategoryID": null,
    "merchantBreadcrumbs": [],
    "primaryProductType": null,
    "primaryHierarchyOwner": null,
    "googleAssignedCategoryObserved": null,
    "overridePurpose": null,
    "applicableProductRequirementReference": null,
    "taxonomyURL": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
    "taxonomyHeader": null,
    "taxonomyRetrievedAt": null,
    "candidateGoogleCategoryID": null,
    "candidateGoogleFullPath": null,
    "proposedGoogleFieldRepresentation": null,
    "proposedGoogleFieldValue": null,
    "decision": "unreviewed",
    "unresolvedQuestions": [],
    "reviewOwner": null,
    "nextAction": null,
    "destinationObservation": null
  },
  "cases": [
    {
      "id": "C01",
      "title": "A merchant breadcrumb is useful without being a Google path",
      "fictional": true,
      "observed_facts": {
        "description": "A ceramic drinking mug with a handle; the demonstration item is sold alone.",
        "merchant_breadcrumb": "Home > Gifts > Ceramic Mugs",
        "main_function_confirmed": true,
        "override_purpose": "A fictional Shopping campaign groups products by Google category."
      },
      "submitted_category_before": null,
      "candidate_google_category_id": "2169",
      "candidate_product_type": "Home > Gifts > Ceramic Mugs",
      "decision": "review_candidate",
      "reason": "The product function supports examining the verified Mugs entry. Keep the merchant breadcrumb in product_type; it is not an entry in the fetched Google taxonomy.",
      "required_next_evidence": "Owner review of the actual offer and campaign purpose; no merchant upload was tested."
    },
    {
      "id": "C02",
      "title": "The final category label is not the full taxonomy value",
      "fictional": true,
      "observed_facts": {
        "description": "The demonstration specification explicitly identifies the item as a drinking mug.",
        "main_function_confirmed": true,
        "override_purpose": "A fictional Shopping campaign uses Google category groups."
      },
      "submitted_category_before": "Mugs",
      "candidate_google_category_id": "2169",
      "candidate_product_type": "Home > Drinkware > Mugs",
      "decision": "review_candidate",
      "reason": "Mugs alone is a leaf label. A reviewed change can use the verified ID rather than assembling a guessed full path.",
      "required_next_evidence": "Confirm the product facts and export only the ID or full official path, never both in the submitted field."
    },
    {
      "id": "C03",
      "title": "An invented numeric category has no taxonomy evidence",
      "fictional": true,
      "observed_facts": {
        "description": "An internal record contains the number 999999999 but supplies no Google mapping evidence.",
        "main_function_confirmed": null,
        "override_purpose": null
      },
      "submitted_category_before": "999999999",
      "candidate_google_category_id": null,
      "candidate_product_type": null,
      "decision": "hold",
      "reason": "The deliberately invalid demonstration number is absent from the official taxonomy fetched for this edition. A numeric-looking value is not evidence of a Google category.",
      "required_next_evidence": "Identify the source namespace, verify the product function, and research a current Google entry. Preserve the original number in the review record."
    },
    {
      "id": "C04",
      "title": "An ambiguous ceramic vessel needs product facts",
      "fictional": true,
      "observed_facts": {
        "description": "The title says ceramic vessel. One description calls it decorative; another calls it drinkware.",
        "main_function_confirmed": false,
        "override_purpose": "A fictional campaign needs a category correction."
      },
      "submitted_category_before": null,
      "candidate_google_category_id": null,
      "candidate_product_type": null,
      "decision": "hold",
      "reason": "Matching a word or image to Mugs would silently decide the product function. Neither the merchant breadcrumb nor the Google candidate is supported.",
      "required_next_evidence": "Resolve the conflicting descriptions with the product owner before assigning either classification."
    },
    {
      "id": "C05",
      "title": "Two merchant hierarchies need a deliberate first value",
      "fictional": true,
      "observed_facts": {
        "description": "The demonstration product is a drinking mug. The store has two approved navigation paths.",
        "main_function_confirmed": true,
        "merchant_breadcrumbs": [
          "Gifts > Housewarming > Drinkware",
          "Kitchen > Drinkware > Mugs"
        ],
        "override_purpose": null
      },
      "submitted_category_before": null,
      "candidate_google_category_id": null,
      "candidate_product_type": null,
      "decision": "hold",
      "reason": "No Google override is proposed. The owner has not chosen which merchant hierarchy should be first for Shopping bidding and reporting.",
      "required_next_evidence": "Choose the primary merchant breadcrumb and record the order explicitly; do not let an export sort determine campaign grouping."
    },
    {
      "id": "C06",
      "title": "A camera bundle retains a separate merchant grouping",
      "fictional": true,
      "observed_facts": {
        "description": "A digital camera is the confirmed main product; the merchant adds a carrying bag.",
        "main_function_confirmed": true,
        "main_product": "Digital camera",
        "merchant_breadcrumb": "Photography > Camera Kits > Starter Bundles",
        "override_purpose": "A fictional Shopping campaign groups the bundle by Google category."
      },
      "submitted_category_before": null,
      "candidate_google_category_id": "152",
      "candidate_product_type": "Photography > Camera Kits > Starter Bundles",
      "decision": "review_candidate",
      "reason": "The proposed Google entry follows the confirmed main product. The merchant hierarchy explains how the store groups its bundle.",
      "required_next_evidence": "Verify bundle contents and main-product evidence for the real offer; review all other applicable product requirements separately."
    }
  ],
  "sources": [
    {
      "id": "google-category",
      "title": "Google Merchant Center: Google product category",
      "url": "https://support.google.com/merchants/answer/6324436?hl=en",
      "note": "Automatic categorization, optional submission, the three listed override uses, one predefined ID or full path, main function, specificity, and main-product bundles.",
      "checked": "2026-10-04"
    },
    {
      "id": "google-type",
      "title": "Google Merchant Center: Product type",
      "url": "https://support.google.com/merchants/answer/6324406?hl=en",
      "note": "Merchant-defined hierarchy, 750-character limit, up to five values, first value for Shopping bidding/reporting, full breadcrumbs, and supported values when fields are identical.",
      "checked": "2026-10-04"
    },
    {
      "id": "google-spec",
      "title": "Google Merchant Center: Product data specification",
      "url": "https://support.google.com/merchants/answer/7052112?hl=en",
      "note": "Both category submission attributes are labelled optional; product-specific requirements still apply. This supports the distinction between automatic classification and universal submission requirements.",
      "checked": "2026-10-04"
    },
    {
      "id": "google-invalid",
      "title": "Google Merchant Center: How to fix invalid product category",
      "url": "https://support.google.com/merchants/answer/12469137?hl=en",
      "note": "Invalid or leaf-only category values can be rejected. Omitting the field invokes automatic categorization; product_type is a separate merchant classification.",
      "checked": "2026-10-04"
    },
    {
      "id": "google-taxonomy",
      "title": "Google: English product taxonomy with IDs",
      "url": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
      "note": "Official file served on October 4, 2026, with version header 2021-09-21. Exact ID/path pairs 2169 (Mugs) and 152 (Digital Cameras) were checked; demonstration ID 999999999 was absent.",
      "checked": "2026-10-04"
    }
  ]
}
