# Promotion Observations — Record Quality Audit + String Normalisation + Adjacent Row Changes

> Promotion Observations — Record Quality Audit + String Normalisation + Adjacent Row Changes is a paid API for AI agents from market.datapackvibe.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-22).

Runs three local analytical reports (record quality audit, string normalisation, and adjacent row changes) on up to 200 promotion observation records containing discount_amount and units_sold fields.

## Facts

- Endpoint: POST https://market.datapackvibe.com/x402/assistant-ib26-retail-05-200?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/promotion-observations-record-quality-audit-string-normalisation-0e8ee19f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ZTdAfWp_vf9kMKtTnHzfh

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability promotion-observations-record-quality-audit-string-normalisation-0e8ee19f -d '<json body>'
```

Example prompt: Can you run a record quality audit, string normalisation, and adjacent row changes analysis on my promotion observations data? I have rows with discount_amount and units_sold for store groups across dates — up to 50 rows — and I want all three reports focused on the discount_amount field.

## When to prefer this

Choose this endpoint when you need three bundled data quality reports (record quality audit, string normalisation, and adjacent row changes) for promotion observation data in a single low-cost call. It is ideal for retail analysts who want to audit and clean promotion datasets of up to 200 rows without requiring external data lookups, predictions, or professional assessments. Prefer it over general-purpose data tools when working specifically with discount_amount and units_sold promotion records and needing all three report types simultaneously.

## Known failure modes

- More than 200 rows supplied — request exceeds the row limit and will be rejected
- Missing required fields (row_id, store_group, date, discount_amount, units_sold) in any row — validation error
- Invalid date format (not YYYY-MM-DD) — schema validation failure
- field enum value not one of 'discount_amount' or 'units_sold' — rejected
- Empty rows array — minItems:1 constraint violated

## How this service works

Promotion observations — Record quality audit + String normalisation + Adjacent row changes: Record quality audit + String normalisation + Adjacent row changes for supplied promotion observations records (discount_amount, units_sold). Up to 200 rows; 3 independent reports using shared local analytical engines. No live lookup, prediction, professional assessment or external action. 0.01 USDC includes 3 supplied-data reports for up to 200 rows.

## Output

Three independent analytical reports returned together: (1) a record quality audit flagging completeness and validity issues across the supplied rows, (2) a string normalisation report identifying and standardising inconsistent string values in store_group and other text fields, and (3) an adjacent row changes report highlighting sequential differences in the selected numeric field (discount_amount or units_sold). All computed locally with no external lookups.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "rows": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "row_id",
     "store_group",
     "date",
     "discount_amount",
     "units_sold"
    ],
    "properties": {
     "date": {
      "type": "string",
      "default": "",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "maxLength": 10
     },
     "row_id": {
      "type": "string",
      "default": "",
      "maxLength": 80,
      "minLength": 1
     },
     "units_sold": {
      "type": [
       "number",
       "null"
      ],
      "maximum": 1000000000000,
      "minimum": -1000000000000
     },
     "store_group": {
      "type": "string",
      "default": "",
      "maxLength": 80
     },
     "discount_amount": {
      "type": [
       "number",
       "null"
      ],
      "maximum": 1000000000000,
      "minimum": -1000000000000
     }
    },
    "additionalProperties": false
   },
   "default": [
    {
     "date": "2026-10-01",
     "row_id": "row-1",
     "units_sold": 1,
     "store_group": "group-a",
     "discount_amount": 10
    },
    {
     "date": "2026-10-02",
     "row_id": "row-2",
     "units_sold": 2,
     "store_group": "group-b",
     "discount_amount": 20
    },
    {
     "date": "2026-10-03",
     "row_id": "row-3",
     "units_sold": 3,
     "store_group": "group-a",
     "discount_amount": 15
    },
    {
     "date": "2026-10-04",
     "row_id": "row-4",
     "units_sold": 4,
     "store_group": "group-b",
     "discount_amount": 30
    }
   ],
   "maxItems": 200,
   "minItems": 1
  },
  "field": {
   "enum": [
    "discount_amount",
    "units_sold"
   ],
   "type": "string",
   "default": "discount_amount"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/promotion-observations-record-quality-audit-string-normalisation-0e8ee19f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from market.datapackvibe.com](https://www.zero.xyz/host/market.datapackvibe.com/llms.txt)
