SuperAPI AI Directory

price-positioning

Data & analytics

View repository

Updated 10-15 20:31

About this skill

price-positioning

Collected price observations → deterministic derivation of a price positioning map + empty price bands (whitespace). 100% of all price claims specify source and observation date.

This skill is an analysis pattern. The act of collecting prices is out of scope — data can be brought in with any tool (web collection MCP, search API, internal sheets, manual paste). The skill's value lies in structuring and interpreting the collected prices in a reproducible way. Therefore, it works identically in any market or currency even without a specific collection tool.

When to use

  • When you need to decide the entry price bandfor your product/brand
  • When looking for empty price bands (whitespace) in the competitive price distribution
  • When organizing representative brands/items by price band into a table and drawing a positioning map
  • When consolidating할 때

Input — normalized price observations

It takes only one artifact from the collection stage. CSV or JSON, one row per observation. For required/optional columns and examples, see references/input-schema.md .

Field Required 뜻
brand O Brand/business name
item O Item/SKU/plan name
price O Observed price (actual selling price)
currency O Currency code (KRW, USD, etc.)
source_url O Source URL
observed_at O Observation date (YYYY-MM-DD)
category · tier_hint · value_metric (Optional) subcategory, band hint, value scale

When dividing collection among multiple workers, just pass each worker the collection contractsaying "collect in this column format" (tool is free). The contract text can be copied as-is into references/input-schema.md.

Deterministic workflow (6 steps)

  1. Scope definition — One line for the market to analyze + one currency. If candidate entry bands are already determined, use them as thresholds (e.g., low price 50k or less, mid price 50–150k, premium 150k or more); if not, automatically band by data quantiles.

  2. Normalization — Fit observations to the above schema, and separate rows with non-numeric prices or missing required values into an exclusion list (do not discard; record the reason). If currencies are mixed, analyze only the most frequent currency and leave the rest as data gaps.

  3. Calculation (deterministic) — Count, share, min, p25, median, p75, max, mean, and standard deviation per band, outliers marked by IQR, and the largest empty interval on the price axis (whitespace). The same input always produces the same output. Do not do it by hand; use the analyzer.

    python3 scripts/positioning.py observations.csv \
      --bands "저가:-50000,중가:50000-150000,프리미엄:150000-" \
      --market "3040 남성 패션 (KR)" --format md --out pricing-landscape.md
    
    • --bands If omitted, --quantiles N(default 3) automatically bands the data by quantile.
    • Uses only the standard library, with no network, environment variables, or external execution whatsoever (it reads only the data file and writes only the result file).
  4. Interpretation — Attach meaning to the numbers (this is the human's job). Read the value scale, price psychology, and switching costs, and judge whether an empty price range is a real opportunityor a desert with no demand. The 7 principles are references/methodology.md.

  5. Verification — Check whether every price claim has a source and observation date, whether estimates and facts are distinguished, and whether data gaps are stated. The criteria are references/evidence-and-honesty.md.

  6. Output — positioning.json(fixed schema) and pricing-landscape.md(fixed sections). The format and fields are references/output-spec.md.

Output (fixed format)

  • positioning.json — A machine-readable schema containing band statistics, whitespace, outliers, value-scale distribution, data gaps, and flags (schema_version fixed).
  • pricing-landscape.md — A human-readable report of the band table + whitespace + data gaps + Red/Yellow flags. The analyst adds entry price range recommendations with supporting rationale.

Both outputs produce the same result from the same input by the analyzer. Only the interpretation sentences are added by a human, and added sentences must always carry an evidence label.

Absolute constraints

  • Collection is not this skill's job. Do not scrape prices within the skill. Input is received from outside.
  • Source and observation date for every price claim. Prices without a source are excluded from analysis or marked as weak signals.
  • Separate estimates from facts — [Data]·[Estimate]·[Assumption]·[Opinion] labels. Do not write estimates as if they were facts.
  • No evaluative vocabulary — Instead of "good, bad, cheap, expensive," speak with numbers and observations.
  • Do not hide data gaps. It is better to leave blanks as gaps than to make them up.
  • Maintain determinism — No random or time-dependent values. Dates come from the data's observation date.

Handoff

positioning.jsonThe slide creator cites the bands and whitespace directly in the positioning map slide, and the entry price range recommendations are passed as input to the decision card (kanban, report).

Reference files

File When to read Purpose
references/input-schema.md When drafting the collection contract Normalized observation schema + tool-agnostic collection contract wording
references/methodology.md Interpretation stage The 7 principles of price analysis (value scale, tiers, price psychology, switching costs, whitespace, map, recommendations)
references/output-spec.md Output stage positioning.json schema + pricing-landscape.md template + deterministic rules
references/evidence-and-honesty.md Verification step Evidence labels, quantification, observation date, data gaps, flag rules