# Promotion Observations — String Normalisation + Keyed Dataset Comparison

> Promotion Observations — String Normalisation + Keyed Dataset Comparison 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-25).

Normalises string fields and performs keyed dataset comparison across two sets of promotion observation records (discount_amount, units_sold) for up to 200 rows, producing 2 independent analytical reports.

## Facts

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

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-string-normalisation-keyed-dataset-comparison-d9106e17 -d '<json body>'
```

Example prompt: Can you compare these two sets of promotion records — both have up to 50 rows with row_id, store_group, date, discount_amount, and units_sold — and give me a string normalisation report plus a keyed comparison showing where the discount amounts or units sold differ between the two datasets?

## When to prefer this

Choose this endpoint when you need to both normalise string fields and compare two keyed promotion datasets (discount_amount, units_sold) in a single paid call, without requiring any live data lookup, external prediction, or professional assessment. It is best suited for retail analytics workflows where two promotion record exports need to be reconciled or audited against each other, especially when store group label inconsistencies are suspected.

## Known failure modes

- More than 200 rows submitted — request rejected or truncated
- Missing required fields (row_id, store_group, date, discount_amount, units_sold) — validation error
- date field not matching YYYY-MM-DD pattern — schema validation failure
- Mismatched row_ids between the two datasets — comparison may produce incomplete results
- Null numeric values in discount_amount or units_sold — may affect comparison output
- Empty rows array — minimum 1 item required

## How this service works

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

## Output

Two analytical reports: (1) a string normalisation report covering store_group and other string fields across the supplied rows, and (2) a keyed dataset comparison report identifying row-by-row differences in discount_amount and units_sold between the two supplied datasets, matched on row_id.

## 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
  },
  "other": {
   "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": [
    {
     "da
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/promotion-observations-string-normalisation-keyed-dataset-comparison-d9106e17/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)
