Retail BrandsAPI v1.7OpenAPIretailbrands.global

Data model

The API keeps four things visibly separate, so you always know what a number is built on.

LayerAnswers
EvidenceWhat was observed, from where, and how reliably.
Normalised dataThe clean, comparable value once the evidence is processed.
Derived intelligenceWhat the value means once it is benchmarked, ranked and turned into signals.
ScoresThe synthesised judgement: topic scores, the four dimensions and the overall RBSI.

Entities

The API exposes four entities: brands, malls, operators (the owners and operators of malls) and stores (a brand in a place). A brand trades in malls, a mall belongs to operators, and a store joins a brand to a mall or a street.

From source to score

Source → Evidence → Data point → Benchmark → Rank → Topic → Dimension → RBSI
                                     ↘ Signals ↗
LevelWhat it holds
DataData points: value, unit, when it was observed.
EvidenceHow reliable and meaningful a value is: source, confidence, verification status, freshness, benchmark and rank.
IntelligenceSignals, topic scores and ranks, the four dimensions, key drivers and trends.
RBSIThe overall assessment: score, previous score, change, trend and confidence.

The four dimensions

Every brand score is built from four dimensions on the same 0 to 10,000 scale: Strength, Momentum, Affinity and Risk. Risk can limit the overall score regardless of the other three. Scoring rules are defined once, in the Retail Brands scoring specification, and the API only returns their result.

Data points

Everything the API returns as an individual item is a data point with a stable register identifier and an api_slug of the form <entity>.<topic>.<name>. The catalogue is available at GET /data-points and every observed value says how it was acquired:

MethodMeaning
pulledRetrieved directly from a source.
deductedCalculated or inferred from other observations, and marked as such with a confidence. Signals and scores are always deducted.
manualEntered or verified by an analyst.

Where several sources agree, that shows in confidence rather than in a separate method. Each data point also has a refresh rate (daily, weekly, monthly, quarterly, annual or event-driven), a level (the lowest access level that includes it) and governance fields: sensitivity (normal, sensitive, critical), confirmation_level and verification_mode.

Signals

Signals are interpreted events derived from the data: an expansion, a leadership change, a legal issue. Each has a category, a title, a summary and its sources.

Objects

Brand

A monitored brand.

FieldTypeDescription
idstringThe brand slug, stable and URL-safe.
slugstringSame as id.
namestringDisplay name.
categorystring | nullPrimary category.
sub_categorystring | null
regionstring | nullHome region.
hqstring | nullCountry of the headquarters.
countriesarrayISO country codes with confirmed stores.
scoreobject | nullHeadline score: rbsi, previous, change, trend.
updated_atstring | nullWhen the brand was last evaluated (ISO 8601).

Score

The Retail Brands Score Index and what it is made of.

FieldTypeDescription
rbsiintegerOverall score on a 0 to 10,000 scale.
previousinteger | nullThe previous evaluation.
changeinteger | nullrbsi minus previous.
trend"up" | "down" | "flat"Direction since the previous evaluation.
confidence"low" | "medium" | "high"How well the score is supported by evidence.
dimensionsobjectLevel 2+. `strength`, `momentum`, `affinity`, `risk`, each on the same scale.
driversarrayLevel 3. The topics that moved the score, with direction and weight.
evaluated_atstringISO 8601.

Signal

An interpreted event on a brand, derived from evidence.

FieldTypeDescription
idstringSignal identifier (UUID).
brand_idstringThe brand slug.
brand_namestring
categorystringSignal category.
titlestringHeadline.
summarystringThe short answer: what it means.
statusstring | nullIncreasing, Emerging, Stable...
directionstring | nullAccelerating, Steady or Decelerating.
importancestring | null
marketsarrayCountries concerned.
published_atstring | nullISO 8601.
source_namesarrayNames of up to two sources.
source_countintegerNumber of sources behind the signal.

DataPoint

An entry of the data point catalogue.

FieldTypeDescription
idstringRegister id, for example `B-RDP-412` (entity B, M, O or S; type RDP, REG, SIG…).
api_slugstring`<entity>.<topic>.<name>`.
method"pulled" | "deducted" | "manual"How it is acquired (see Data model).
level1 | 2 | 3The lowest access level that includes it.
refreshstringdaily, weekly, monthly, quarterly, annual or event-driven.
sensitivity"normal" | "sensitive" | "critical"Governance field.

DataPointValue

An observed value with what it is built on.

FieldTypeDescription
data_pointstringThe data point api_slug.
valueanyThe value, typed by the data point.
unitstring | nullUnit of the value.
methodstringpulled, deducted or manual.
confidencestringlow, medium or high.
observed_atstringWhen the value was observed.
verification_statusstringunverified, verified or conflicted.
evidencearrayLevel 3. Sources behind the value.

Mall

A shopping centre.

FieldTypeDescription
idstringThe mall slug, stable and URL-safe.
namestring
countrystring | nullISO alpha-2.
regionstring | null
typestring | nullShopping mall, Outlet mall or Retail park.
gla_m2number | nullGross leasable area in square metres.
operatorsarrayOwners and operators: id, name.
brandsobjectmonitored: number of monitored brands trading there.
storesintegerStores of monitored brands.

Operator

An owner or operator of malls.

FieldTypeDescription
idstringThe operator slug, stable and URL-safe.
slugstringSame as id.
namestring
websitestring | null
mallsintegerMalls in the published portfolio.
brandsobjecttotal brands trading in its malls, monitored among them.
storesintegerStores of monitored brands.
countriesarrayISO country codes of its malls.

Store

A brand in a place.

FieldTypeDescription
idstring`sto_…`
brand_idstring
mall_idstring | nullNull for a street store.
addressstring | null
countrystringISO alpha-2.
status"open" | "closed" | "unknown"