CompareSG

Singapore's online shopping stopped growing after 2022. Then it jumped.

In 2026 so far, 15 in every 100 dollars spent at Singapore shops went online, after 12 to 13 in every 100 for five years.

How much did we spend online?

Dollars spent online at Singapore shops, all kinds together, January to August of each year. We read 104 months of SingStat's retail data.

2019S$1.6bn
2020S$2.8bn
2021S$3.5bn
2022S$3.9bn
2023S$3.9bn
2024S$3.9bn
2025S$4.3bn
2026*S$5.3bn

2026* runs to August only and is on SingStat's new counting basis (see the boring bit).

Online spending stayed at S$3.9bn in 2022, 2023 and 2024, rose 11% in 2025 and reached S$5.3bn in 2026 so far.

Online dollars are our estimates: sales value times online share. They are as spent, not adjusted for rising prices.

Of every 10 extra dollars, how many were online?

Each year against the year before. A row is 10 extra dollars, and a filled dot was spent online. We start at 2022 because 2020 was the circuit breaker year.

20221 in 10S$2.8bn more than 2021
20230 in 10S$1.1bn more than 2022
20240 in 10S$1.1bn more than 2023
20254 in 10S$1.0bn more than 2024
2026*6 to 9 in 10S$1.1bn more than 2025

Spent onlineNot onlineMaybe just SingStat's new way of counting (2026 only)*

In 2023 and 2024 none of the extra dollars went online. In 2025 it was 4 in 10, and in 2026 so far 6 to 9 in 10.

* SingStat changed how it counts from January 2026. If that explains all of the extra rise since late 2025, 6 in 10 is the low end. The data cannot tell us which.

What happened to online shopping in May 2020?

May 2020 had the highest online share of all 104 months we read: 24.9 in every 100 dollars. Here it is beside May a year before and a year after, in S$ million, all on one scale.

May 2019

In shopsS$3,578m
OnlineS$196m

May 2020

In shopsS$1,392m
OnlineS$461m

May 2021

In shopsS$2,968m
OnlineS$475m

SingStat says most physical stores were closed in May 2020. In-store sales fell 61% from May 2019, S$3,578m to S$1,392m, and online sales were 2.4 times as high, S$196m to S$461m. By May 2021 stores were back at S$2,968m and online sales were S$475m.

More finds on all shops

How much did online and shops each grow?
3.4 times, against +7%
January to August 2019 to the same months of 2026: online spending went from S$1.6bn to S$5.3bn, and spending in shops from S$28.1bn to S$29.9bn.
What if you leave out cars?
17.8 in 100
Leave out motor vehicles, parts and accessories and 17.8 in every 100 dollars were spent online in January to August 2026, against 15.2 with them.
When was the biggest online month?
S$761m
In November 2025, by our estimate (sales value times online share). Next: March 2026, S$728m.
Did more adults shop online?
63 to 71 in 100
Adults who had bought something online in an IMDA survey, 2022 to 2024 (it may include overseas sites). In 2017 it was 50. Online dollars at Singapore shops stayed at S$3.9bn in all three of those years.

What do you buy?

Pick a kind of shopping. The sections below change with your pick. The sections above count all shops together.

How much of it is bought online?

20192020, circuit breaker2021 to 20252026

Out of every 100 retail dollars, how many were online? January to August of each year, every bar on the same scale.

20195.2
202011.8
202112.5
202212.7
202312.2
202411.8
202512.7
2026 (to August)15.2

Online dollars divided by all dollars.

From 2021 to 2025 the share stayed between 11.8 and 12.7 in every 100. In 2026 so far it is 15.2, a new high.

Which month do we shop online most?

Out of every 100 retail dollars, how many were online in each month? The average of the same month in 2021 to 2025. Every month has online shopping.

January11.4
February11.8
March13.0
April12.0
May12.2
June13.2
July12.8
August12.8
September14.2
October13.6
November15.8
December13.6

2020 (the circuit breaker year) and 2026 (eight months so far) are left out. Online dollars divided by all dollars, over those five years.

Every month has online shopping: from 11.4 in every 100 in January to 15.8 in November.

More about what you picked

Highest month on record
24.9 in 100
In May 2020, during the circuit breaker, which ran from 7 April to 1 June 2020.
The November bump
+17%
November's share against October's, each year from 2022 to 2025, the same to the nearest per cent every year. Top month of the year in 6 of 7 years (the exception was May 2020).
2026 so far, against the highest earlier year
15.2 against 12.7
Higher than any earlier January to August, ahead of 2022. If the new basis explains all the extra rise since late 2025, it is 14.2.

The short version

Online shopping in Singapore: 15.2 in every 100 retail dollars were spent online from January to August 2026, against 11.8 to 12.7 a year from 2021 to 2025 and 5.2 in 2019, from SingStat's monthly retail data (104 months, January 2018 to August 2026), downloaded 9 Oct 2026.

In dollars, online spending was S$1.6bn in January to August 2019, S$2.8bn in 2020 and S$3.5bn in 2021, then S$3.9bn, S$3.9bn and S$3.9bn in 2022, 2023 and 2024. It rose to S$4.3bn in 2025 and S$5.3bn in 2026 so far. These are our estimates (sales value times online share, not adjusted for prices). In May 2020, with most physical stores closed during the circuit breaker, in-store sales fell 61% from May 2019 while online sales were 2.4 times as high.

The data says when and how much, not why. Of the extra S$1.1bn spent at retailers in 2026 so far, 6 to 9 in every 10 dollars were online (61 to 91 in every 100), the low end if the whole extra rise since late 2025 came from SingStat's change of basis in January 2026. By kind, computers and phones are at 59.6 in every 100 in 2026 so far, furniture and household equipment at 35.6 and supermarkets at 12.3.

By Ben (opens in a new tab). Updated . Data: SingStat Table Builder, retail online share, retail sales value, online food and beverage share, and the IMDA online purchase survey.

Questions people ask

What share of retail sales in Singapore is online?

In August 2026, 15.7 in every 100 retail dollars were spent online, or 18.2 in every 100 if motor vehicles, parts and accessories are left out. Across January to August 2026, 15.2 in every 100 retail dollars were online. These are shares of sales recorded by retailers in Singapore, as estimated by SingStat.

How many dollars are spent online in Singapore?

We estimate S$5.3bn in January to August 2026 at retailers in Singapore, out of S$35.3bn of retail sales. That compares with S$4.3bn in 2025 and S$3.9bn in 2024, S$3.9bn in 2023 and S$3.9bn in 2022. The estimate multiplies SingStat's monthly retail sales value by its online share. It is not adjusted for rising prices.

Did online shopping keep growing after COVID-19?

As a share of retail dollars, not for several years. It averaged 5.2 in January to August 2019 and 11.8 in 2020, and from 2021 to 2025 it stayed between 11.8 and 12.7. In dollars, online spending was S$3.9bn, S$3.9bn and S$3.9bn in 2022, 2023 and 2024. In 2026 so far the share is 15.2, higher than any earlier year.

Where did the extra retail dollars go?

From 2019 to 2026 (January to August), online spending grew from S$1.6bn to S$5.3bn, about 3.4 times, while in-store spending went from S$28.1bn to S$29.9bn, up 7%. In 2023 and 2024, retail sales grew by about S$1.1bn a year and none of that was online. In 2026 so far, 6 to 9 in every 10 of the extra dollars were online.

What do people buy online most in Singapore?

Computers and phones: 59.6 in every 100 dollars of sales in that industry were online in January to August 2026. Furniture and household equipment follows at 35.6, then supermarkets at 12.3. SingStat publishes the online share for only these three retail industries, so we cannot say how clothes, books or other goods compare. Meals and drinks ordered online are tracked separately, as food and beverage services.

Why did online shopping jump in 2020?

The data does not say why. It shows that the online share peaked at 24.9 in May 2020 (computers and phones 94.6, furniture 93.8), and that in-store sales that month were S$1,392m, against S$3,578m in May 2019. SingStat notes that the circuit breaker ran from 7 April to 1 June 2020 and that most physical stores were closed in May 2020.

Why is the online share higher in 2026?

The data does not say why, and we do not guess. One check we can make: SingStat changed the basis of its retail series from the January 2026 release, which could move the level. The year-on-year gap had already grown from +0.7 in August 2025 to +2.3 in November 2025 on the old basis, and if the whole extra 0.95 points in its average since then came from the new basis, the January to August 2026 average would still be about 14.2, above the 11.8 to 12.7 of 2021 to 2025.

Which month has the most online shopping in Singapore?

November, usually. It was the highest month of the year in 6 of the 7 years from 2019 to 2025 for retail as a whole, with 17.0 in every 100 dollars online in November 2025 against 14.5 in October. The exception was May 2020. In dollars, our estimate for the biggest month is November 2025, at S$761m.

How many people in Singapore shop online?

In a 2024 survey by IMDA, 70.6 in every 100 Singapore residents aged 18 and over had made an online purchase, up from 50.5 in 2017. It was 63.0 in 2022. The survey asks people, not shops, and the table does not say whether purchases from overseas websites are counted.

Does this count shopping on overseas websites?

Not directly. SingStat's retail figures cover retailers in Singapore, whether they sell in shops, online or both. A purchase from a shop based overseas is not a Singapore retailer's sale, so the real share of what people in Singapore buy online could be higher.

The numbers behind it

Online share of sales, January to August of each year, in every 100 dollars (all retail and retail excluding motor vehicles: online dollars over all dollars; the others: average of the monthly shares; food and drink: 2026 is on a new basis)
YearAll retailRetail excluding motor vehiclesSupermarketsComputers and phonesFurniture and homeFood and drink
20184.5not publishednot publishednot publishednot publishednot published
20195.26.37.824.310.38.3
202011.813.79.254.636.226.2
202112.514.912.850.327.932.4
202212.714.614.249.930.427.1
202312.213.912.848.530.723.4
202411.813.812.548.532.323.3
202512.714.912.053.131.925.6
2026 (to Aug)15.217.812.359.635.620.6
Retail sales, January to August of each year, in S$ billion, each figure rounded on its own (online = our estimate: monthly sales value times online share)
YearAll retail salesIn-storeOnlineOnline, change from the year before
2018S$30.0bnS$28.7bnS$1.3bn
2019S$29.6bnS$28.1bnS$1.6bn+16%
2020S$24.0bnS$21.2bnS$2.8bn+83%
2021S$28.2bnS$24.6bnS$3.5bn+24%
2022S$31.0bnS$27.0bnS$3.9bn+12%
2023S$32.1bnS$28.2bnS$3.9bn-1%
2024S$33.2bnS$29.3bnS$3.9bn0%
2025S$34.2bnS$29.8bnS$4.3bn+11%
2026 (to Aug)S$35.3bnS$29.9bnS$5.3bn+23%
2026, if the new basis added 0.95 points to every monthS$35.3bnS$30.3bnS$5.0bn+15%
Extra dollars against the year before: how many of them were online (January to August)
YearExtra retail salesExtra online salesOnline part of the extra dollars
2021S$4.1bn+S$692m17%
2022S$2.8bn+S$416m15%
2023S$1.1bn-S$28mnone (online fell)
2024S$1.1bn-S$3mnone (online fell)
2025S$1.0bn+S$424m44%
2026 (to Aug)S$1.1bn+S$1,008m91%
2026, if the new basis added 0.95 points to every monthS$1.1bn+S$673m61%
May 2019, 2020 and 2021, all retail
MonthRetail salesIn-storeOnline (our estimate)Online share, in every 100
May 2019S$3,774mS$3,578mS$196m5.2
May 2020S$1,853mS$1,392mS$461m24.9
May 2021S$3,443mS$2,968mS$475m13.8
Each month of 2026: online share of sales, in every 100 dollars, and the gap to the same month of 2025 (all retail)
MonthAll retailRetail excluding motor vehiclesSupermarketsComputers and phonesFurniture and homeFood and drinkAll retail, change from 2025
January14.116.412.054.733.922.2+2.5
February14.116.211.356.337.719.9+1.7
March15.718.912.958.839.120.5+2.4
April14.817.413.258.533.520.1+2.1
May15.317.913.159.034.820.1+3.0
June16.419.512.364.735.120.4+3.0
July15.218.011.461.136.120.9+2.2
August15.718.212.363.734.720.6+2.7
Singapore residents who made an online purchase, in every 100 people (IMDA survey, by age group)
YearAged 18 and overAged 18 to 39Aged 40 to 59Aged 60 and over
201750.581.146.38.0
201857.587.855.713.8
201963.492.565.316.6
202067.397.372.417.7
202171.893.780.032.4
202263.081.070.231.2
202362.786.072.720.0
202470.692.982.730.0
Every month in the data
Every month in the data: online share of sales in every 100 dollars (blank = not published), and retail sales value
MonthAll retailRetail excluding motor vehiclesSupermarketsComputers and phonesFurniture and homeFood and drinkRetail sales value
January 20184.4S$3,952m
February 20184.1S$3,671m
March 20184.3S$3,802m
April 20184.6S$3,575m
May 20184.5S$3,787m
June 20184.4S$3,838m
July 20184.7S$3,670m
August 20184.7S$3,749m
September 20185.5S$3,604m
October 20185.6S$3,746m
November 20187.5S$3,815m
December 20186.0S$4,304m
January 20194.95.97.324.39.47.3S$4,265m
February 20194.95.77.322.710.77.4S$3,337m
March 20195.36.58.026.09.88.1S$3,817m
April 20195.46.58.023.010.38.2S$3,558m
May 20195.26.38.021.510.28.1S$3,774m
June 20195.26.17.623.710.08.7S$3,555m
July 20195.66.78.026.711.08.9S$3,676m
August 20195.56.47.926.510.79.4S$3,652m
September 20197.08.28.331.812.69.4S$3,590m
October 20196.17.18.824.910.39.8S$3,648m
November 20197.68.79.230.615.59.9S$3,713m
December 20196.77.68.527.812.310.2S$4,226m
January 20205.66.47.625.413.510.3S$4,040m
February 20207.69.08.429.917.413.7S$3,105m
March 20208.810.57.841.518.716.8S$3,348m
April 202018.620.07.578.651.941.1S$2,169m
May 202024.926.39.394.693.847.5S$1,853m
June 202018.621.010.670.850.435.1S$2,614m
July 202010.612.611.247.621.222.9S$3,411m
August 202010.612.711.548.022.422.1S$3,503m
September 202011.213.511.549.224.621.9S$3,269m
October 202010.412.511.945.120.821.3S$3,403m
November 202014.016.312.349.729.520.9S$3,738m
December 202011.112.711.736.423.721.3S$4,185m
January 202110.312.211.340.921.922.4S$3,873m
February 202110.211.810.745.124.922.0S$3,364m
March 202111.914.612.846.028.324.1S$3,656m
April 202111.213.412.347.024.525.1S$3,442m
May 202113.816.313.154.029.238.9S$3,443m
June 202115.518.714.657.732.948.2S$3,397m
July 202113.716.113.855.729.939.6S$3,505m
August 202114.016.414.056.031.339.2S$3,491m
September 202115.118.014.854.131.034.1S$3,559m
October 202115.317.815.252.129.739.1S$3,719m
November 202117.119.616.855.934.433.4S$3,866m
December 202114.316.115.354.828.028.4S$4,490m
January 202212.314.012.651.428.828.8S$4,346m
February 202213.515.414.650.732.630.2S$3,229m
March 202214.817.315.752.433.330.0S$3,946m
April 202212.214.014.247.228.426.5S$3,811m
May 202211.613.213.847.128.324.1S$4,003m
June 202212.614.514.549.630.525.3S$3,842m
July 202212.614.214.350.129.426.0S$3,933m
August 202212.514.214.051.031.925.6S$3,884m
September 202213.815.614.150.930.224.2S$3,889m
October 202213.014.613.747.628.824.0S$4,049m
November 202215.217.014.851.934.623.1S$4,068m
December 202212.914.313.249.127.823.5S$4,787m
January 202311.412.611.446.029.923.3S$4,261m
February 202312.013.813.446.630.923.0S$3,615m
March 202313.115.413.649.133.324.2S$4,115m
April 202311.913.512.748.528.523.6S$3,958m
May 202311.913.513.349.029.623.7S$4,092m
June 202312.614.312.649.730.923.2S$3,911m
July 202312.614.312.849.731.122.8S$4,029m
August 202312.314.012.449.331.723.0S$4,100m
September 202313.715.512.849.433.223.0S$3,970m
October 202312.814.512.744.231.123.7S$4,093m
November 202315.017.013.550.237.123.3S$4,224m
December 202312.814.512.047.330.923.0S$4,851m
January 202411.112.811.447.630.522.8S$4,393m
February 202411.012.611.546.033.420.9S$3,985m
March 202412.114.412.746.934.423.1S$4,307m
April 202411.813.912.849.630.624.0S$3,983m
May 202411.813.713.148.231.223.8S$4,259m
June 202412.314.412.549.432.823.8S$3,956m
July 202412.014.212.750.331.623.8S$4,132m
August 202412.314.313.049.833.724.1S$4,193m
September 202413.816.213.351.333.124.3S$4,108m
October 202412.614.513.046.531.724.4S$4,271m
November 202414.716.713.752.235.224.8S$4,269m
December 202413.315.312.150.232.524.9S$4,775m
January 202511.613.211.050.830.523.6S$4,629m
February 202512.414.612.652.333.023.9S$3,886m
March 202513.315.812.752.333.425.9S$4,448m
April 202512.714.812.850.829.926.4S$4,036m
May 202512.314.412.150.129.726.5S$4,321m
June 202513.415.912.355.732.626.8S$4,067m
July 202513.015.411.556.232.725.9S$4,355m
August 202513.015.211.356.633.326.0S$4,430m
September 202514.917.612.256.935.826.3S$4,199m
October 202514.516.812.552.036.525.2S$4,442m
November 202517.019.312.760.640.825.3S$4,478m
December 202514.817.011.756.533.425.8S$4,894m
January 202614.116.412.054.733.922.2S$4,622m
February 202614.116.211.356.337.719.9S$4,219m
March 202615.718.912.958.839.120.5S$4,634m
April 202614.817.413.258.533.520.1S$4,246m
May 202615.317.913.159.034.820.1S$4,452m
June 202616.419.512.364.735.120.4S$4,236m
July 202615.218.011.461.136.120.9S$4,413m
August 202615.718.212.363.734.720.6S$4,461m

The boring bit

Where the data comes from

Four tables from SingStat Table Builder, all downloaded 9 Oct 2026. Online Retail Sales Proportion, Monthly (opens in a new tab) (table M602191, also on data.gov.sg) gives, for each month, the share of sales that were online for all retail, for retail excluding motor vehicles, and for three industries: 104 months from January 2018 to August 2026 (the three industries start in January 2019, so they have 92 months). Retail Sales Value, Monthly (opens in a new tab) (M602171) gives the sales value of retailers in Singapore for the same 104 months, and for retail excluding motor vehicles from January 2019 (the table's title mentions the 2025 = 100 basis, but its values are S$ million: July 2026 is 4,413 in the table and $4.4 billion in SingStat's July 2026 release). Online Food & Beverage Sales Proportion, Monthly (opens in a new tab) (M602271) gives the share of food and beverage services sales that were online, 92 months from January 2019. Individuals Who Made Online Purchase By Age Group, Annual (opens in a new tab) (M920331, from IMDA) gives the share of Singapore residents who made an online purchase, each year from 2017 to 2024.

SingStat's own notes say the retail figures cover retailers in Singapore, whether they sell through shops, online or both, and come from a monthly survey of about 460 retail firms. See its July 2026 release (opens in a new tab), which also gives the total retail sales value for July 2026 as $4.4 billion and the online share as 15.4 in every 100 (the table has since been revised to 15.2 and S$4,413m). Online means the order was received remotely and the price and terms were agreed online, through a company's website, an online marketplace or an app. Orders by phone, fax, email or in-store kiosk or QR code do not count. For food and beverage services the same definition applies, regardless of how or where the food is delivered or collected.

What is not claimed

  • This is the share of sales recorded by retailers in Singapore, not everything people in Singapore buy. Purchases from overseas websites are not counted, so the real online share could be higher.
  • The data cannot tell us why the share moved. We name the circuit breaker only as the period SingStat identifies in 2020: it ran from 7 April to 1 June 2020 and most physical stores were closed in May 2020 (SingStat newsletter, issue 1 of 2021 (opens in a new tab)). We do not claim that it caused the later changes, and we do not say what caused the 2026 rise.
  • The dollars are our estimates. SingStat publishes the total sales value and the online share, not the online dollars. We multiply them month by month: online dollars = sales value x online share, and in-store dollars = sales value minus online dollars (so anything not ordered online counts as in-store). They are dollars as spent, not adjusted for rising prices. Leaving out motor vehicles, parts and accessories gives online dollars 1% to 3% lower in every year, close enough to cross-check the method.
  • Each year's figure covers the same eight months, January to August, so 2026 (which has only eight months) can be compared fairly with other years and the November shopping peak does not distort it. For all retail and for retail excluding motor vehicles, a year's share is the online dollars divided by all dollars of those eight months. SingStat publishes no sales values for the three industries or for food and beverage services, so for them it is the plain average of the eight monthly shares. For all retail the plain average gives different figures in some years (for 2020, 13.2 instead of 11.8) because the online share peaked in months when total sales were low.
  • Only three retail industries are published (supermarkets and hypermarkets, computer and telecommunications equipment, furniture and household equipment). Clothes, books and everything else are inside the all-retail figure but cannot be looked at on their own. The names above are SingStat's. "Computers and phones" is our short form of computer and telecommunications equipment. "Food and drink" is food and beverage services (restaurants, cafes and the like), which SingStat counts separately from retail.
  • The month chart is the average of the same month in 2021 to 2025, and leaves out 2020 and 2026. For all shops it is online dollars over all dollars across those five years; for the other kinds it is the plain average of the five published shares.
  • 2020 and 2021 were COVID years, with the circuit breaker and later restrictions. Their figures describe those years and should not be read as a normal pattern.
  • SingStat changed the basis of its retail and food and beverage series (from 2017 to 2025 as the reference year, with coverage and weights revised) from the January 2026 release (SingStat note on the change (opens in a new tab)). The online-share history was not revised, so 2026 is on a different basis from the years before it, and is marked with an asterisk. The check for retail is in the questions above and the code below: even if the whole extra 0.95 points in the average year-on-year gap (its January to August 2026 average against its August to December 2025 average) came from the new basis, 2026 would still be about 14.2 in every 100, above the 11.8 to 12.7 of 2021 to 2025, and 6 in every 10 of the extra dollars would still be online. That is a bound under that assumption, not proof of the cause: from January 2026 the online share of food and beverage services dropped to an average about 5 points below 2025's, so a change of basis may move these shares, and we cannot see by how much for retail. We do not compare food and drink in 2026 with earlier years.
  • SingStat revises recent months after first release. For example, its April 2026 release (opens in a new tab) gave 15.4 in every 100 for April 2026, and the table now gives 14.8. We use the tables as they stand on 9 Oct 2026.
  • The survey of individuals (IMDA) asks people whether they bought anything online. It is a different measure from the shop figures, and the table does not say whether purchases from overseas websites are counted, so the two are shown side by side but not added or compared as one number.
  • Nothing here says anything about how well any shop or website is run.

Coverage

Every month in the tables up to August 2026 was used: 104 of 104 for all retail, retail excluding motor vehicles' share and sales value, 92 of 92 for each of the three industries and 92 of 92 for food and beverage services. All 8 yearly rows of the survey table (2017 to 2024) were used. Nothing was left out or estimated, apart from the online dollars described above.

Report an error. Corrections are logged publicly with a date.

How we did it
API downloadTime-series groupingSeasonal comparisonSensitivity checkData cleaning
  1. Downloaded four tables from SingStat. All 104 months of the online share and the sales value, the food and beverage share and the survey, saved as files so the page rebuilds the same numbers every time.
  2. Worked out online dollars. Each month's sales value times its online share, added up for January to August of each year. In-store is the rest.
  3. Compared the same eight months in every year. January to August, because 2026 only has eight months and shopping is seasonal. November, for example, is usually the highest month.
  4. Averaged each month. For the month chart, the same month in 2021 to 2025 put together.
  5. Measured the 2021 to 2025 band as the lowest and highest yearly figure in those five years, and compared 2026 with it.
  6. Split each year's extra dollars. The change in online dollars over the change in all dollars, against the year before.
  7. Checked the January 2026 change of basis. We took the gap between each month and the same month a year earlier, compared the five months before 2026 (on the old basis) with the eight months after, and took the whole difference away from every month of 2026 as a worst case, for the share and for the dollars.
  8. Checked recent revisions by comparing SingStat's first release for a month with the current table.
Show the Python code
import math
import pandas as pd


def half_up(x, places=1):
    # the house rule: round half up (Python and pandas round half to even)
    k = 10 ** places
    return math.floor(x * k + 0.5) / k


# One row per month, from SingStat's tables (see prep/prep_online_share.py)
share = pd.read_csv("online_share.csv", index_col="month", parse_dates=True)    # % of sales that were online
value = pd.read_csv("retail_value.csv", index_col="month", parse_dates=True)    # retail sales value, S$ million


def jan_aug(s):
    # the same eight months in every year, so 2026 (January to August) is comparable
    s = s[s.index.month <= 8]
    return s.groupby(s.index.year).sum()


# Dollars: SingStat gives each month's sales value and the share of it that was online
online = value["total"] * share["retail"] / 100          # online dollars each month, S$ million
total_y, online_y = jan_aug(value["total"]), jan_aug(online)
instore_y = total_y - online_y
retail = 100 * online_y / total_y                         # the share of January to August dollars that were online
print(retail.map(half_up))                                # 2019: 5.2, 2020: 11.8 ... 2026: 15.2

# The 2021 to 2025 band, and 2026 against it
band = retail.loc[2021:2025]
band_low, band_high = band.min(), band.max()              # 11.8 and 12.7
print(half_up(band_low), half_up(band_high), half_up(retail[2026]))

# Of the extra dollars each year, how many were online?
extra_online, extra_total = online_y.diff(), total_y.diff()
online_part = 100 * extra_online / extra_total            # 2024: 0, 2025: 44, 2026: 91
print(online_part.loc[2021:].map(lambda x: half_up(x, 0)))

# Could a change of basis in January 2026 explain the rise? Take the whole extra gap away as a worst case
gap = share["retail"] - share["retail"].shift(12)         # this month minus the same month a year earlier
extra = gap["2026-01":"2026-08"].mean() - gap["2025-08":"2025-12"].mean()
worst_case_2026 = retail[2026] - extra               # about 14.2, still above the band
worst_online_2026 = (value["total"] * (share["retail"] - extra) / 100)["2026-01":"2026-08"].sum()
worst_online_part = 100 * (worst_online_2026 - online_y[2025]) / extra_total[2026]    # about 61 of every 100 extra dollars
print(half_up(worst_case_2026), half_up(worst_online_part, 0))

# Which month? The same calendar month in 2021 to 2025 put together (2020 and 2026 are left out)
five = online.index.year.isin(range(2021, 2026))
month_online = online[five].groupby(online[five].index.month).sum()
month_total = value["total"][five].groupby(value["total"][five].index.month).sum()
month_share = 100 * month_online / month_total          # January 11.4 ... November 15.8 ... December 13.6
print(month_share.map(half_up))

Source: Online Retail Sales Proportion, Monthly (opens in a new tab), Retail Sales Value, Monthly (opens in a new tab), Online Food & Beverage Sales Proportion, Monthly (opens in a new tab) and Individuals Who Made Online Purchase By Age Group (opens in a new tab), SingStat Table Builder (the first is also on data.gov.sg (opens in a new tab)), downloaded 9 Oct 2026. Contains information from data.gov.sg made available under the Singapore Open Data Licence.