Guides

Running an audit

Audits score every SKU against 12 weighted agent-readiness rules and produce a prioritized fix list.

Trigger an audit

Audits run automatically after every sync, but you can trigger one on demand from the dashboard or the API. The API call is synchronous and returns the score directly.

audit.sh
curl -X POST https://useshelfready.com/api/v1/audit/runs \
  -H "Authorization: Bearer $SHELFREADY_API_KEY"

The 12 rules

Each rule checks one field on every catalog entry. The weight is the score deduction a failing SKU takes (on a 0–100 scale).

RuleSeverityWeightMeaning
gtin_missingwarning18No GTIN — the #1 discoverability signal for AI shopping surfaces
gtin_invaliderror22GTIN fails length or GS1-checksum validation
title_missingerror15Title is required on every surface
title_overlongerror8Title exceeds the 150-character ACP cap
description_missingerror12Description is required for feed eligibility
description_thininfo6Description under 80 characters — agents rank rich descriptions higher
brand_missingwarning10Brand is required by ACP and GMC
url_missingerror15Product URL is required — agents send buyers to it
url_not_httpserror8Product URL must be HTTPS
image_missingerror12Image URL is required on every surface
price_missingerror15Price is required on every surface
availability_unknownwarning10Availability unknown — agents skip items they can't promise

One catalog-level rule, seller_settings_missing, checks that seller name, seller URL, and store country are set (in Dashboard → Settings) — every feed item needs them, so while it fails the catalog score is capped at 40.

Scoring & grades

Each SKU starts at 100 and loses the weight of every rule it fails (floored at 0). The catalog score is the average across SKUs, graded A (90–100), B (75–89), C (60–74), D (40–59), or F (below 40). Severity tells you what a finding means: error findings are spec violations that make an item ineligible on the target surface, warning findings hurt discoverability, and info findings are quality improvements.

Reading results

GET /api/v1/audit returns the latest run plus the current findings snapshot. Each finding points at a product (and variant, when applicable), the field, and the rule code:

finding.json
{
  "product_id": "0f1e2d3c-4b5a-6978-8796-a5b4c3d2e1f0",
  "variant_id": null,
  "code": "gtin_missing",
  "severity": "warning",
  "field": "gtin",
  "message": "No GTIN — the #1 discoverability signal for AI shopping surfaces"
}

A practical fixing order:

  1. Resolve error findings so items become spec-compliant on every surface.
  2. Tackle the heavy warning rules — gtin_missing alone costs 18 points per SKU.
  3. Batch content gaps (description_thin, brand_missing) through AI enrichment.

Continuous audits

Because audits re-run on every sync, your score tracks reality. Subscribe to the audit.completed webhook and wire it to your alerting so score regressions surface immediately.