Lowe fixed-basket consumer price index of a two-item basket

Prices the same basket of quantities q_b, bought in the weight reference period b, at time t prices and at base-period prices, and expresses the first cost as a percentage of the second, the Laspeyres-type index of section 3.3 of the ONS technical manual. Because the UK quantities come from a period before the base period, the manual classes the CPI and CPIH as Lowe-type indices. The same index is a weighted arithmetic average of the price relatives p_t / p_0, each weighted by its share of the basket cost at base-period prices, the route HE-CF-CPI-001 follows from expenditure data. The formula is written out for two items so that the calculator runs, and the Excel and code forms take any number of items. A ratio of two index values is the input of HE-FM-COST-002.

Signature

E_0 = p1_0 * q1_b + p2_0 * q2_b; E_t = p1_t * q1_b + p2_t * q2_b; I_0t = 100 * E_t / E_0
Inputs
InputsDefinitionUnit
p1_0Price of the first basket item in the base period 0currency per unit of the item, above zero
q1_bQuantity of the first item bought in the weight reference period b and held fixedunits of the item
p2_0Price of the second basket item in the base period 0currency per unit of the item, above zero
q2_bQuantity of the second item bought in the weight reference period b and held fixedunits of the item
p1_tPrice of the first basket item at time t, usually the current monthcurrency per unit of the item
p2_tPrice of the second basket item at time t, usually the current monthcurrency per unit of the item
Output
E_0Cost of the fixed basket at base-period pricescurrency
E_tCost of the fixed basket at time t pricescurrency
I_0tIndex at time t relative to the base period, with the base period set at 100index points

Function

Consumer price index from a fixed basket with Jevons elementary aggregates, chain-linking and average inflation rates

Maps the base-period and current prices of a fixed basket, with the quantities or expenditure of an earlier weight reference period, to a Lowe-type index level, and combines the matched prices of one elementary aggregate by the Jevons geometric mean. It also joins yearly links into a long series on the 2015 = 100 reference and maps two index values and the months between them to an average annual inflation rate. The ratio of two index values is the I_b / I_a input of the live price-year adjustment HE-FM-COST-002 under HE-FN-COST-001, which is not repeated here, and a ratio of the US CPI for all urban consumers enters the Medicaid additional rebate of HE-FM-340B-002. Currency conversion and purchasing power parities are left to the Basket of Countries page. Notation follows the Consumer Price Index article.

Computational function

  • Computational function for a Lowe CPI from weight-reference expenditure with price-updated weights for a three-item basket

    Takes the household expenditure on each item in the weight reference period b, the form in which the national accounts supply weights, with item prices in period b, in the base period 0 and at time t. It price-updates each expenditure to the base period, turns the updated amounts into weights and averages the price relatives with them, the steps of sections 3.3 and 3.5 of the ONS technical manual. The result equals the basket form of HE-FM-CPI-001 with quantities V_b / p_b, so the inputs differ from the formula's variables, which are quantities.

    Inputs and outputs: V_1, V_2 and V_3 are the expenditures on three items in period b, in currency. p1_b, p2_b and p3_b are their prices in period b, p1_0, p2_0 and p3_0 in the base period and p1_t, p2_t and p3_t at time t, in currency per unit. u_1, u_2 and u_3 are the expenditures price-updated to the base period, w_1, w_2 and w_3 the weights, which add to 1, and I_0t the index with the base period at 100.

    Assumption: All prices are above zero and refer to matched items. The manual price-updates weights at each link, to the previous December for the January index and to January for February to December (section 3.5), so the base period here is the link month and a longer series is chained with HE-FM-CPI-003.

    Worked example (Illustrative three-item basket): Expenditure of 500, 300 and 200 at period b prices of 2, 5 and 10, base prices of 2.10, 5 and 11 and current prices of 2.31, 5.25 and 11 give weights of 0.5024, 0.2871 and 0.2105 and an index of 106.4593 (illustrative inputs, computed here for illustration). V_1 = 500; V_2 = 300; V_3 = 200; p1_b = 2; p2_b = 5; p3_b = 10; p1_0 = 2.1; p2_0 = 5; p3_0 = 11; p1_t = 2.31; p2_t = 5.25; p3_t = 11; u_1 = 525; u_2 = 300; u_3 = 220; w_1 = 0.502392; w_2 = 0.287081; w_3 = 0.210526; I_0t = 106.4593

    Worked example (Weight reference prices equal to base prices): When period b prices equal base prices, price-updating changes nothing, the weights are the expenditure shares 0.5, 0.3 and 0.2 and the index is the Laspeyres case of section 3.3 with b equal to 0, 106.5 here (computed here for illustration). V_1 = 500; V_2 = 300; V_3 = 200; p1_b = 2.1; p2_b = 5; p3_b = 11; p1_0 = 2.1; p2_0 = 5; p3_0 = 11; p1_t = 2.31; p2_t = 5.25; p3_t = 11; u_1 = 500; u_2 = 300; u_3 = 200; w_1 = 0.5; w_2 = 0.3; w_3 = 0.2; I_0t = 106.5

    Excel: =100*SUMPRODUCT(UpdatedExpenditure/SUM(UpdatedExpenditure),ItemPriceCurrent/ItemPriceBase) Returns the index into a cell named CFIndexOut. ItemExpenditure, ItemPriceWeightRef, ItemPriceBase and ItemPriceCurrent are ranges with one row per item, and the helper column UpdatedExpenditure holds on each row the expenditure times the base price divided by the period b price, for example =B2*D2/C2 filled down when ItemExpenditure, ItemPriceWeightRef and ItemPriceBase sit in columns B, C and D from row 2.

    R: lowe_index <- function(V_b, p_b, p_0, p_t) { u <- V_b*p_0/p_b; w <- u/sum(u); list(w = w, index = 100*sum(w*p_t/p_0)) } Returns the weights and the index; lowe_index(c(500, 300, 200), c(2, 5, 10), c(2.1, 5, 11), c(2.31, 5.25, 11))$index gives 106.4593.

    Python: def lowe_index(V_b, p_b, p_0, p_t): u = [v*a/b for v, a, b in zip(V_b, p_0, p_b)]; w = [x/sum(u) for x in u]; return w, 100*sum(wi*t/a for wi, t, a in zip(w, p_t, p_0)) Plain Python 3 with no imports, returning the weights and the index.

    Test (Expenditure route agrees with the basket of HE-FM-CPI-001): Dividing each expenditure by its period b price gives the quantities, and the basket ratio built from them equals the result cell. The expected result is TRUE. FALSE shows weights taken as expenditure shares without price-updating, which gives 106.5 in place of 106.4593 for the first worked example. Excel check =ABS(CFIndexOut-100*SUMPRODUCT(ItemExpenditure/ItemPriceWeightRef,ItemPriceCurrent)/SUMPRODUCT(ItemExpenditure/ItemPriceWeightRef,ItemPriceBase))<1E-9

    Test (Illustrative three-item basket reproduced): With the first worked example in the input ranges, the result cell holds 106.4593 to four decimal places. The expected result is TRUE. FALSE shows the relatives inverted to base over current price, which gives 94.0657, or weights without price-updating, which gives 106.5. Excel check =ABS(CFIndexOut-106.4593)<0.00005

    Common error (Weight reference shares used without price-updating): The manual's Lowe index takes weights from period b and price-updates them to the base period (section 3.3). Using the raw shares 0.5, 0.3 and 0.2 in the first worked example gives 106.5 in place of 106.4593 (computed here for illustration), a gap that depends on how far relative prices moved between period b and the base period.

    Source: Office for National Statistics. Consumer Prices Indices Technical Manual, 2019. Newport, Office for National Statistics, 2019, page last revised 26 March 2025. Section 3.3, index calculation, for the Laspeyres-type and Lowe-type index and its weighted-average form, and section 3.5, aggregation, which states that the weight for January is calculated by price updating the expenditure V in the weight reference period to the December of the previous year and the weight for February to December by price updating January's weight.

    u_1 = V_1 * p1_0 / p1_b; u_2 = V_2 * p2_0 / p2_b; u_3 = V_3 * p3_0 / p3_b; w_1 = u_1 / (u_1 + u_2 + u_3); w_2 = u_2 / (u_1 + u_2 + u_3); w_3 = u_3 / (u_1 + u_2 + u_3); I_0t = 100 * (w_1 * p1_t / p1_0 + w_2 * p2_t / p2_0 + w_3 * p3_t / p3_0)

Try this function

Implementations

  • Excel

    Lowe fixed-basket CPI from named price and quantity ranges

    With base-period prices in PriceBase, time t prices in PriceCurrent and weight reference quantities in QtyWeightRef, three ranges of equal length with one row per item, the formula returns the index; name its cell LoweIndexOut. A helper column named PriceRelative holds each current price divided by its base price and is read by the tests.

    =100*SUMPRODUCT(PriceCurrent,QtyWeightRef)/SUMPRODUCT(PriceBase,QtyWeightRef)

Assumptions

  • Fixed basket measuring pure price change in the consumer price index

    Only prices change between the base period and time t, and the basket is held fixed in composition, quantity and as far as possible quality (section 3.3 of the ONS technical manual). The manual quotes Eurostat's description of the harmonised index as a pure price index and states that it is not a cost of living index (section 2.4.1.2). Section 13.11 defines a cost of living index by the minimum cost of reaching base-period utility, states that because of this stress on minimum cost it will usually give a lower rate of inflation, and describes consumers switching towards goods and services that are becoming relatively cheaper.

  • Household spending scope of the consumer price index basket

    The basket covers prices paid by households. Section 2.5.5 of the manual states that typically no account is taken of services free at the point of consumption, even if consumers have paid for them indirectly through taxes or National Insurance contributions, and that NHS prescription and dental charges are included but not the full economic cost. An index built this way does not track the cost to the NHS of providing care.

  • Fixed-basket form valid within one annual link of the CPI

    The basket and its weights are fixed only within one link, so the formula describes a within-year index. Section 12.4.2 of the manual states that a chain-linked index spanning more than one year cannot be represented as the ratio of basket prices or as a weighted average of price relatives, so longer series are built with HE-FM-CPI-003.

Worked examples

  • Lowe index of an illustrative two-item CPI basket

    An illustrative basket holds 50 units of an item priced 2.00 in the base period and 2.20 now, and 4 units of an item priced 10.00 and 10.50. The basket costs 140 at base prices and 152 at current prices, so the index is 108.5714. It lies between the item relatives of 110 and 105 and nearer the first, which accounts for 100 of the 140 of base-period spending.

    p1_0 = 2; p2_0 = 10; p1_t = 2.2; p2_t = 10.5; q1_b = 50; q2_b = 4; E_0 = 140; E_t = 152; I_0t = 108.5714
  • Lowe index when every CPI basket price rises by the same 5%

    When every price rises by the same proportion the quantities cancel and the index is 100 times that proportion, 105 for an illustrative rise of 5%, a limiting case that checks an implementation.

    p1_0 = 2; p2_0 = 10; p1_t = 2.1; p2_t = 10.5; q1_b = 50; q2_b = 4; E_0 = 140; E_t = 147; I_0t = 105

Common errors

  • Current quantities in the numerator of a fixed-basket CPI

    Pricing the current basket at current prices against the old basket at base prices measures the change in spending, a value index, and not price change. If the quantities in the worked example double, the result is 217.1429 in place of 108.5714 (computed here for illustration), although no price rose by more than 10%.

  • Consumer price index ratio taken as the cost of NHS care

    The CPI follows household payments and leaves out care free at the point of use, and PMG36 section 4.4.12 asks for inflation indices appropriate to the cost perspective. In the article's worked example, uprating GBP 2,500 in 2019/20 prices to 2023/24 prices with the CPI ratio through HE-FM-COST-002 gives GBP 3,041.25, about 3.4% more than the GBP 2,942.25 given by the NHS cost inflation index pay and prices series for NHS providers (HE-SR-CPI-010), whose 2023/24 increase is provisional.

  • Unweighted average of item relatives in place of CPI basket weights

    Averaging the relatives of 110 and 105 without weights gives 107.5, while the basket in the worked example gives 108.5714 (computed here for illustration), because the first item accounts for 100 of the 140 of base-period spending. Above the elementary aggregate the manual combines indices as weighted averages (section 3.5).

Sources

  • ONS technical manual on the Laspeyres-type and Lowe-type consumer price index

    Office for National Statistics. Consumer Prices Indices Technical Manual, 2019. Newport, Office for National Statistics, 2019, page last revised 26 March 2025. Section 3.3, index calculation, which gives the Laspeyres-type or fixed-basket index I_0,t = 100 x sum of p_i^t q_i^b over sum of p_i^0 q_i^b, its equivalent form as a weighted arithmetic average of price relatives with weights w_i^0;b = p_i^0 q_i^b over sum of p_i^0 q_i^b, and the statement that UK consumer price indices are Lowe-type indices with quantities taken from a period before the base period and price-updated to it. Section 2.4.1.2 states that the harmonised index is not a cost of living index, section 3.5 forms higher-level indices as weighted averages, and section 12.4.2 states that a chain-linked index spanning more than one year cannot be represented as a basket ratio or a weighted average of price relatives. A notice on the page dated 25 March 2026 states that some aspects of the manual are out of date and that it has been replaced by the ONS Consumer prices indices technical guidance (last revised 28 May 2026), whose article Higher-level aggregation and weights in consumer prices (last revised 25 March 2026) still gives aggregation as a Laspeyres-type weighted average with price-updated expenditure weights (sections 3 and 4).

    View source →

  • ONS technical manual on the scope of the CPI and the cost of living

    Office for National Statistics. Consumer Prices Indices Technical Manual, 2019. Newport, Office for National Statistics, 2019, page last revised 26 March 2025. Section 2.5.5, expenditure items, which states that typically no account is taken of services free at the point of consumption, even if paid for indirectly through taxes or National Insurance contributions, and that NHS prescription and dental charges are included in the CPIH and CPI but not the full economic cost. Section 13.11, the cost of living, which defines the cost of living as the minimum cost at current prices of the base-period level of utility, states that because of the stress on minimum cost a cost of living index will usually give a lower rate of inflation than the consumer price inflation indices, and describes substitution towards goods and services that are becoming relatively cheaper.

    View source →

  • NICE requirement for inflation indices appropriate to the cost perspective

    National Institute for Health and Care Excellence. NICE technology appraisal and highly specialised technologies guidance: the manual (PMG36). Published 31 January 2022, last updated 13 October 2026. Chapter 4 economic evaluation, section 4.4.12, which states that when current costs are not available, costs from previous years should be adjusted using inflation indices appropriate to the cost perspective, such as the NHS cost inflation index and the PSS pay and prices index from the PSS Research Unit report on unit costs of health and social care, or the Office for National Statistics consumer price index.

    View source →

  • Unit costs manual 2024 NHS cost inflation index increases behind the CPI comparison

    Jones KC, Weatherly H, Birch S, Castelli A, Chalkley M, Dargan A, et al. Unit Costs of Health and Social Care 2024 Manual. Canterbury and York, Personal Social Services Research Unit (University of Kent) and Centre for Health Economics (University of York), 2025. Section 12.1.1, the NHS Cost Inflation Index (NHSCII), table 12.1.1, which gives annual increases in the NHSCII pay and prices series for NHS providers of 2.49% for 2020/2021, 2.58% for 2021/2022, 7.32% for 2022/2023 and 4.31% for 2023/2024, the last marked provisional. Their product, 1.1769, gives the GBP 2,942.25 in HE-ER-CPI-002 (computed in the article).

    View source →

Canonical Identity

Stable URI · Machine-readable · Resolvable · CC BY 4.0