3.1. The Price Dimension
3.1.1. Price Change Index (ΔP)
Definition: The relative change in the normalized unit price of a product $p$ over a period $\tau$.
$$
\Delta P(p, t, \tau) = \frac{up(p, t) - up(p, t-\tau)}{up(p, t-\tau)} \tag{4}
$$
Range: $(-1, +\infty)$. Value: $0$ — price unchanged; $0.1$ — increase by 10%; $-0.05$ — decrease by 5%.
Calculation. If a product $p$ is observed at multiple points of sale $S_p$, the unit price is aggregated as the median:
$$
up(p, t) = \operatorname{Median}_{s \in S_p} \left\{ \frac{price(p, s, t)}{pack(p, s, t)} \right\} \tag{5}
$$
The median is preferable to the mean, as it is robust to outliers (single price anomalies at individual points).
Alarm threshold: $|\Delta P| > 0.05$ over 7 days — yellow; $|\Delta P| > 0.10$ over 7 days — red.
3.1.2. Price Pressure Index (PSI)
Definition: Weighted average relative change in unit price for products in group $g$, with fuzzy membership weights.
$$
PSI_g(t, \tau) =
\frac{\sum_{p \in P_g^{avail}} \mu_g(p) \cdot \Delta P(p, t, \tau)}
{\sum_{p \in P_g^{avail}} \mu_g(p)} \tag{6}
$$
where $P_g^{avail}$ is the set of goods in group $g$ available at time $t$. The weights are $\mu_g(p)$, ensuring the correct contribution of partially owned goods.
Range: $(-1, +\infty)$. $PSI = 0$ — prices are stable; $PSI = 0.08$ — average growth of 8%.
Calculation. For each good $p$: (a) aggregate prices by points using the median from formula $(5)$; (b) calculate $\Delta P$ using formula $(4)$; (c) weight by $\mu_g$ and sum. Products unavailable at time $t$ are excluded from the sum (their contribution is reflected by the ASI, not the PSI).
Alarm threshold: $PSI > 0.03$ over 7 days — yellow; $PSI > 0.07$ — red. For the "essential products" group (9 UAE categories), the threshold is lower: $0.02$ and $0.05$, respectively.
3.1.3. Shrinkflation Index (SFI)
Definition. The proportion of products in group $g$ that exhibit a decreasing pack size with a stable or increasing absolute price.
$$
SFI_g(t, \tau) =
\frac{
\left| \left\{ p \in P_g^{avail} : pack(p,t) < pack(p,t-\tau) \wedge price(p,t) \geq price(p,t-\tau) \right\} \right|
}{
|P_g^{avail}|
} \tag{7}
$$
Range: $[0, 1]$. $SFI = 0$ — shrinkflation is not detected; $SFI = 0.15$ — 15% of the products in the group are affected.
Calculation. For each product $p$, $pack\_size(p, s, t)$ and $pack\_size(p, s, t-\tau)$ are compared at the same points of sale. If the product is available at multiple points of sale, majority voting is used (a change is recorded if observed at $\geq 50\%$ of the points).
Alert threshold: $SFI > 0.05$ — yellow; $SFI > 0.10$ — red.
The SFI detects hidden inflation, invisible to standard price monitoring: the price is stable, but the consumer receives a smaller quantity of the product.
3.1.4. Price Volatility Index (PVI)
Definition. The coefficient of variation of the daily unit price values of product $p$ over a sliding window of $T$ days.
$$
PVI(p, t, T) =
\frac{
\operatorname{StdDev}(\{up(p, \tau) : \tau \in [t-T, t]\})
}{
\operatorname{Mean}(\{up(p, \tau) : \tau \in [t-T, t]\})
} \tag{8}
$$
Range: $[0, +\infty)$. $PVI \approx 0$ — price stability; $PVI > 0.10$ — high price volatility. Recommended $T = 14$ days.
Group aggregation:
$$
PVI_g(t) = \frac{\sum_p \mu_g(p)\, PVI(p,t)}{\sum_p \mu_g(p)}
$$
Alert threshold: $PVI_g > 0.08$ — yellow (atypical instability); $PVI_g > 0.15$ — red.
3.2. Availability Dimension
3.2.1. Product Availability Index (AI)
Definition: The proportion of retail outlets where product $p$ is available at time $t$.
$$
AI(p, t) = \frac{|\{s \in S : avail(p, s, t) = 1\}|}{|S|} \tag{9}
$$
Range: $[0, 1]$. $AI = 1$ — product is available everywhere; $AI = 0$ — product is unavailable at all outlets.
3.2.2. Category Availability Stress Index (ASI)
Definition: The proportion of group "mass" $g$ lost due to product unavailability.
$$
ASI_g(t) = 1 - \frac{\sum_p \mu_g(p) \cdot AI(p, t)}{\sum_p \mu_g(p)} \tag{10}
$$
Range: $[0, 1]$. $ASI = 0$ — full availability; $ASI = 0.3$ — 30% of the category's product range is unavailable.
Calculation. For each product $p$: calculate $AI(p, t)$ using formula $(9)$, then aggregate with the weights $\mu_g(p)$ using formula $(10)$. Fuzzy membership ensures that a product partially belonging to a group contributes proportionally.
Alert threshold: $ASI > 0.10$ — yellow; $ASI > 0.25$ — red.
3.2.3. Assortment Diversity Index (ADI)
Definition. Normalized Shannon entropy of the distribution of brands/tiers across available products in a group. Measures the diversity of the offering, not the number of products.
$$
H_g(t) = -\sum_k q_k \cdot \ln q_k
$$
where
$$
q_k = \frac{\sum_{p \in P_{g,k}^{avail}} \mu_g(p)}{\sum_{p \in P_g^{avail}} \mu_g(p)} \tag{11}
$$
$$
ADI_g(t) = \frac{H_g(t)}{H_g^{\max}} \tag{12}
$$
where $k$ indexes brands (or tier classes), $q_k$ is the fuzzy-weighted share of brand $k$ in the group's available assortment, and $H_g^{\max} = \ln K$ is the maximum entropy for $K$ brands with equal shares.
Range: $[0, 1]$. $ADI = 1$ — perfectly equal representation; $ADI \to 0$ — monopolization by one brand/tier.
Interpretation. A declining $ADI$ with a stable $ASI$ means that the product range has not decreased, but the choice has narrowed—for example, premium brands have disappeared, leaving only private labels. This is a critical signal for the regulator.
Alarm threshold: $ADI < 0.6$ — yellow; $ADI < 0.4$ — red.
3.2.4. Extinction Rate Index (DR)
Definition. The rate of change in $ASI$. It distinguishes between slow assortment erosion and a sharp collapse.
$$
DR_g(t) = \frac{ASI_g(t) - ASI_g(t-\tau)}{\tau} \tag{13}
$$
Range: $(-\infty, +\infty)$. $DR > 0$ — availability is deteriorating; $DR < 0$ — availability is improving.
Units: per unit of time.