What food is in season in Singapore?
Durians land in July, mandarins in January. Pick a food to see the months it arrives in Singapore, from ten years of monthly food imports, 2016 to 2025.
My food
10 foods that arrive in a clear season, the most seasonal first.
When do durians arrive?
Each bar is one month: how much of a year's imports of this food arrive then, averaged over 2016 to 2025. The busiest 3 months are filled in, and the dashed line is an even spread (about 8% a month). A season that crosses the end of the year shows at both ends.
of a year's durian imports (by value) arrive in June to August. An even spread would put 25% there.
What this covers: Durians, fresh.
Durians: more than half of a year's imports, 54 out of every 100 dollars, arrive in June to August. An even spread would put 25 there.
What arrives in each month?
Each card lists the foods in the picker that are in their busiest 3 months then. The food you picked is in colour, and its months have a coloured edge.
January
- Mandarins
- Prepared abalone
- Dried scallops
- Prepared clams
- Candied fruit
- Prepared shrimp
February
- Mandarins
March
No food in the picker is busiest now
April
- Guavas, mangoes, mangosteens
May
- Guavas, mangoes, mangosteens
June
- Durians
- Peaches
- Guavas, mangoes, mangosteens
July
- Durians
- Peaches
August
- Durians
- Peaches
September
No food in the picker is busiest now
October
- Persimmons
November
- Persimmons
- Prepared abalone
- Dried scallops
- Prepared clams
- Candied fruit
- Prepared shrimp
December
- Prepared abalone
- Dried scallops
- Prepared clams
- Candied fruit
- Prepared shrimp
- Mandarins
- Persimmons
March and September are the only months in which none of the 10 foods is at its busiest.
Highlighted: the months when durians are busiest (June to August). Other foods in the picker that are also busiest in some of those months: peaches and guavas, mangoes and mangosteens.
Do durians arrive at the same time every year?
Each row is one year. The bars show how that year's durian imports spread over the 12 months, and the tallest bar is the busiest month. Shaded columns are the usual busiest 3 months (Jun–Aug).
In 9 of the 10 years, the busiest month for durians was June, July or August. The exception was 2017 (December), when the busiest month fell outside those three.
Which foods are the most seasonal?
Each bar is the share of a year's imports that arrive in the food's busiest 3 months. The dashed line is an even spread (25%). Hatched bars are fresh foods with no clear season, for comparison. Hover or tap a row for details, and click to pick it.
Ranked third of 10: 54% of a year's durian imports arrive in the busiest 3 months. The most seasonal, mandarins, has 66%. An even spread would be 25%.
Fun finds
The short version
Of 740 foods and food products in Singapore's monthly import records for 2016 to 2025, 10 arrive in a clear season. Mandarins are the most seasonal (66 out of every 100 dollars of a year's imports arrive in December to February), durians come mostly in June to August (54 out of every 100), and persimmons in October to December (58 out of every 100).
What we did. We took Singapore's monthly imports of food from the UN Comtrade database, one line for each 6-digit trade code, in US dollars, for the 10 full years 2016 to 2025. For each food and each year we worked out what share of that year's imports arrived in each month, then averaged the ten years. The busiest 3 months are the busiest month and the month on each side. A food goes in the picker when its busiest month is the same, give or take one, in at least 9 of the 10 years, it agrees when counted by weight, it is a named food and not a catch-all code, and at least 30% of a year's imports arrive in its busiest 3 months.
What we found. 10 of the 228 foods with steady imports pass. Mandarins are the most seasonal: 66% of a year's imports arrive in December to February, and 45% in January alone. Durians arrive mostly in June to August (54%), with July the busiest month, and peaches share those months. Persimmons come in October to December, and guavas, mangoes and mangosteens in April to June. Five foods are busiest in December: prepared abalone, dried scallops, prepared clams, candied fruit and prepared shrimp. March and September are the only months in which none of the 10 foods is at its busiest.
What to keep in mind. This is when food arrives in Singapore, not when it is grown, cheapest or eaten, and imports include food later sent on to other countries. The shares are by value, and each picked food's busiest month is the same by weight. 15 foods that passed the early tests are left out, and the Numbers section says why. We do not say why a food arrives when it does.
By Ben (opens in a new tab). Updated . Data: UN Comtrade, Singapore's monthly imports by 6-digit trade code, 2016 to 2025.
Questions people ask
When is durian season in Singapore?
Durians arrive in Singapore mostly in June to August. In 2016 to 2025, 54 out of every 100 dollars of a year's durian imports arrived in those three months, and July was the busiest month. In 9 of the 10 years the busiest month was June, July or August; the exception was 2017, when December was busiest. This shows when durians are imported, not what they cost or how they taste.
Is there a second durian season in Singapore?
A late burst came in 2017, 2022 and 2025: November and December brought 35%, 25% and 26% of those years' durian imports. In the other 7 years it was 10% or less. We show when, not why.
What fruits are in season in Singapore?
From import records, mandarins (Dec–Feb), persimmons (Oct–Dec), durians (Jun–Aug), peaches (Jun–Aug) and guavas, mangoes and mangosteens (Apr–Jun) arrive in a clear season. This is about fruit that comes into Singapore, so it says nothing about fruit grown here.
When do mandarin oranges arrive in Singapore?
Mandarins are the most seasonal food in the picker: 66 out of every 100 dollars of a year's imports arrive from December to February, and January alone brings 45. In all 10 years the busiest month was December, January or February.
Which food has the clearest season?
Mandarins, with 66% of a year's imports in their busiest 3 months, then persimmons (58%) and durians (54%). An even spread would put 25% there.
Do all foods have a season?
No. Of 228 foods with steady imports, only 25 had the same busiest month (give or take one) in at least 9 of the 10 years. Spinach, pumpkins and garlic spread their imports almost evenly: 25% to 26% of a year's imports in their busiest 3 months.
Does this say when to buy or eat a food?
No. It counts the month a food enters Singapore, measured by its value in US dollars. We do not know what happens to a food after it arrives, how long it is kept, or when it is eaten.
Is this when food is grown in Singapore?
No. These are imports: food that enters Singapore, including food that is later sent on to other countries.
How were the foods picked?
We started with 740 foods and food products in the food chapters of the trade code book. 228 were imported in every one of the 10 years, at least US$5 million a year with steady totals. 25 had the same busiest month, give or take one, in at least 9 years. 21 also agreed when counted by weight. 15 were not catch-all codes. 10 had at least 30% of a year's imports in their busiest 3 months.
Why are some foods not in the picker?
4 foods agreed on the busiest month by value but not by weight, 6 are catch-all codes ("not elsewhere classified") that mix different foods, and 5 were too close to an even spread. The Numbers section lists each one.
Do 2020 and 2021 change the answer?
Not the months. Leaving out 2020 and 2021, 9 of the 10 foods keep the same busiest month and dried scallops moves by one month (December to November). A food's share of the year in its busiest 3 months moves by at most 4.6 points.
Why do these foods arrive in these months?
This page shows when foods arrive, not why. We do not claim a reason.
The numbers behind it
| Rank | Food | What the code covers | Trade code | Busiest month | Busiest 3 months | Share of a year in those 3 months | Years with the same busiest 3 months | Busiest month by weight | Average imports a year (US$ million) |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Mandarins | Mandarins, tangerines, satsumas, clementines and similar citrus, fresh or dried | 0805.20 to 0805.29, joined | January | Dec–Feb | 66% | 10 of 10 | January | 28.0 |
| 2 | Persimmons | Persimmons, fresh | 0810.70 | November | Oct–Dec | 58% | 10 of 10 | November | 5.8 |
| 3 | Durians | Durians, fresh | 0810.60 | July | Jun–Aug | 54% | 9 of 10 | July | 13.4 |
| 4 | Prepared abalone | Abalone, prepared or preserved | 1605.57 | December | Nov–Jan | 51% | 9 of 10 | December | 54.9 |
| 5 | Dried scallops | Scallops, dried, salted, in brine or smoked | 0307.29 | December | Nov–Jan | 49% | 9 of 10 | December | 12.2 |
| 6 | Peaches | Peaches and nectarines, fresh | 0809.30 | July | Jun–Aug | 42% | 10 of 10 | July | 11.8 |
| 7 | Prepared clams | Clams, cockles and arkshells, prepared or preserved | 1605.56 | December | Nov–Jan | 42% | 10 of 10 | December | 5.1 |
| 8 | Candied fruit | Fruit, nuts, peel and other plant parts preserved by sugar (drained, glacé or crystallised) | 2006.00 | December | Nov–Jan | 32% | 9 of 10 | December | 9.5 |
| 9 | Guavas, mangoes, mangosteens | Guavas, mangoes and mangosteens, fresh or dried | 0804.50 | May | Apr–Jun | 31% | 10 of 10 | May | 30.4 |
| 10 | Prepared shrimp | Shrimps and prawns, prepared or preserved, not in airtight containers | 1605.21 | December | Nov–Jan | 31% | 9 of 10 | December | 32.8 |
Share of a year: the average of ten yearly shares, so a big year does not outweigh a small one.
| Food | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | Total |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mandarins | 45.3 | 6.4 | 5.0 | 3.3 | 2.3 | 2.7 | 3.8 | 4.3 | 4.1 | 4.0 | 3.9 | 14.8 | 100.0 |
| Persimmons | 7.3 | 1.2 | 1.4 | 4.8 | 9.4 | 9.4 | 3.5 | 1.5 | 3.7 | 17.2 | 23.0 | 17.8 | 100.0 |
| Durians | 5.0 | 2.8 | 4.9 | 4.3 | 6.0 | 17.5 | 21.8 | 15.2 | 5.7 | 3.7 | 5.4 | 7.9 | 100.0 |
| Prepared abalone | 11.5 | 1.4 | 1.8 | 2.2 | 2.8 | 4.2 | 7.0 | 8.5 | 8.4 | 13.0 | 16.7 | 22.5 | 100.0 |
| Dried scallops | 13.3 | 5.7 | 4.1 | 3.0 | 4.8 | 5.5 | 4.6 | 5.2 | 9.2 | 8.5 | 16.6 | 19.5 | 100.0 |
| Peaches | 10.7 | 9.4 | 7.0 | 2.0 | 6.6 | 10.8 | 15.6 | 15.3 | 8.5 | 3.1 | 3.3 | 7.6 | 100.0 |
| Prepared clams | 14.3 | 3.8 | 5.8 | 6.0 | 4.0 | 4.3 | 8.5 | 6.4 | 8.8 | 10.8 | 11.8 | 15.6 | 100.0 |
| Candied fruit | 9.8 | 5.6 | 8.1 | 7.6 | 8.3 | 7.6 | 7.7 | 7.3 | 7.4 | 8.3 | 10.2 | 12.1 | 100.0 |
| Guavas, mangoes, mangosteens | 6.7 | 6.5 | 9.0 | 10.0 | 11.5 | 9.6 | 8.4 | 7.8 | 6.5 | 7.3 | 8.2 | 8.5 | 100.0 |
| Prepared shrimp | 10.1 | 5.5 | 7.8 | 7.9 | 7.8 | 7.9 | 7.8 | 8.5 | 7.8 | 8.4 | 9.7 | 10.9 | 100.0 |
| Food | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | Smallest / biggest |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Mandarins | 25.3 | 19.9 | 25.5 | 25.8 | 22.3 | 32.8 | 34.5 | 25.6 | 37.4 | 30.9 | 53% |
| Persimmons | 6.2 | 6.3 | 5.3 | 5.2 | 6.7 | 7.1 | 6.5 | 4.4 | 4.8 | 5.0 | 62% |
| Durians | 8.6 | 9.0 | 13.8 | 14.2 | 11.1 | 16.9 | 15.2 | 15.9 | 12.9 | 16.7 | 51% |
| Prepared abalone | 63.4 | 55.4 | 69.0 | 64.6 | 38.8 | 65.3 | 61.1 | 46.9 | 48.0 | 36.1 | 52% |
| Dried scallops | 22.7 | 26.5 | 13.6 | 12.0 | 7.1 | 7.8 | 10.2 | 7.3 | 9.0 | 5.4 | 20% |
| Peaches | 9.7 | 9.0 | 11.3 | 12.6 | 11.6 | 12.8 | 11.0 | 12.3 | 13.6 | 14.2 | 63% |
| Prepared clams | 7.3 | 5.4 | 6.1 | 6.0 | 3.1 | 3.9 | 4.8 | 5.1 | 4.9 | 4.5 | 43% |
| Candied fruit | 10.7 | 10.5 | 10.6 | 9.4 | 8.8 | 9.8 | 8.7 | 8.3 | 9.3 | 9.0 | 78% |
| Guavas, mangoes, mangosteens | 29.4 | 31.4 | 35.7 | 31.6 | 31.8 | 34.4 | 27.9 | 28.9 | 25.9 | 27.1 | 73% |
| Prepared shrimp | 45.8 | 39.8 | 35.4 | 32.5 | 24.3 | 26.2 | 33.0 | 27.1 | 29.9 | 34.3 | 53% |
| Trade code | What the code covers | Why it is left out | Busiest month (value) | Busiest month (weight) | Share of a year in busiest 3 months | Average imports a year (US$ million) |
|---|---|---|---|---|---|---|
| 0810.90 | Fruits n.e.c. in heading no. 0801 to 0810, fresh | Busiest month by weight is not within a month of the busiest month by value | June | August | 33% | 34.7 |
| 1806.90 | N.e.c. in chapter 18 | Busiest month by weight is not within a month of the busiest month by value | November | September | 32% | 104.9 |
| 2008.19 | Whether or not containing added sugar, other sweetening matter or spirit (excluding ground-nuts except in mixtures) | Busiest month by weight is not within a month of the busiest month by value | December | April | 31% | 69.6 |
| 2103.90 | Mixed condiments and mixed seasonings | Busiest month by weight is not within a month of the busiest month by value | December | October | 28% | 142.1 |
| 0301.99 | Live, n.e.c. in heading 0301 | Catch-all code (not elsewhere classified) | January | December | 30% | 17.7 |
| 0303.89 | Frozen, n.e.c. in heading 0303, excluding fillets, fish meat of 0304, and edible fish offal of subheadings 0303.91 to 0303.99 | Catch-all code (not elsewhere classified) | December | December | 30% | 19.0 |
| 0703.90 | Leeks and other kinds n.e.c. in heading no. 0703, fresh or chilled | Catch-all code (not elsewhere classified) | January | January | 35% | 7.3 |
| 0709.59 | Truffles and mushrooms n.e.c. in heading 0709, fresh or chilled | Catch-all code (not elsewhere classified) | January | January | 29% | 22.5 |
| 0712.39 | Mushrooms and truffles n.e.c. in item 0712.3, whole, cut, sliced, broken or in powder but not further prepared, dried | Catch-all code (not elsewhere classified) | December | December | 40% | 8.6 |
| 0813.40 | Fruit n.e.c. in heading no. 0812, dried | Catch-all code (not elsewhere classified) | December | December | 33% | 7.4 |
| 0307.11 | Oysters, whether in shell or not, live, fresh or chilled | Under 30% of a year's imports in the busiest 3 months | December | December | 29% | 5.6 |
| 0705.11 | Cabbage (head) lettuce (lactuca sativa), fresh or chilled | Under 30% of a year's imports in the busiest 3 months | January | January | 27% | 11.9 |
| 0706.90 | Salad beetroot, salsify, celeric, radishes and similar edible roots, fresh or chilled | Under 30% of a year's imports in the busiest 3 months | January | January | 28% | 10.5 |
| 0709.20 | Asparagus, fresh or chilled | Under 30% of a year's imports in the busiest 3 months | January | February | 28% | 8.6 |
| 1905.31 | Sweet biscuits, whether or not containing cocoa | Under 30% of a year's imports in the busiest 3 months | December | December | 30% | 81.4 |
| Trade code | What the code covers | Share of a year in busiest 3 months | Biggest single month | Average imports a year (US$ million) |
|---|---|---|---|---|
| 0709.70 | Spinach, New Zealand spinach and orache spinach, fresh or chilled | 25% | 9% | 15.4 |
| 0709.93 | Pumpkins, squash and gourds, fresh or chilled | 26% | 9% | 21.7 |
| 0703.20 | Garlic, fresh or chilled | 26% | 9% | 24.3 |
The boring bit
Where the data comes from
UN Comtrade, the United Nations' database of trade between countries. We took Singapore's imports by month (period) and 6-digit Harmonized System code, with all origins together, for food and farm chapters 01 to 24, downloaded on 11 Oct 2026 with a free key. We kept the food chapters (2 to 4, 7 to 11, 16 to 22). Value is in US dollars; the weight cross-check uses net weight in kilograms.
What is not claimed
- Arrival is not eating. The month is when the food is recorded as entering Singapore. It is not when the food is grown, cheapest, freshest or eaten.
- Imports are not what Singapore eats. Some of what enters is later sent on to other countries, and we cannot tell how much.
- The shares are by value in US dollars. A food whose price moves through the year can look different by weight, so we check that the busiest month agrees by weight too. Four foods that pass by value but not by weight are left out.
- A food in the picker does not mean no other food has a season. We only judge foods imported every year, at least US$5 million a year on average, with a name that is not a catch-all.
- The 30% rule is our choice. An even spread would put 25% of a year in any 3 months. Candied fruit (32%), guavas, mangoes and mangosteens (31%) and prepared shrimp (31%) are only just over it.
- 2020 and 2021 are among the 10 years, and COVID may have moved some shipments. Without them 9 of the 10 foods keep the same busiest month (dried scallops moves from December to November) and a food's share in its busiest 3 months moves by at most 4.6 points.
- The mandarin code was split in 2018 (0805.20 became 0805.21, 0805.22 and 0805.29). We joined the four codes, as otherwise the years before and after 2018 could not be compared.
- Catch-all codes ("not elsewhere classified") are left out because they mix different foods, so a season could come from any one of them. Cherries and dates are not in the picker.
- Prepared and dried foods are included as the trade data names them. We do not say which dish or occasion they are for.
- We do not say why a food arrives when it does, and we do not call any food better or worse than another.
Coverage
We used 75,852 monthly records for 743 trade codes in the food chapters, January 2016 to December 2025 (120 months). The four mandarin codes are counted as one food, so that is 740 foods. The file we downloaded holds 94,709 records for all food and farm chapters (01 to 24) from 2016-01 to 2026-03 (123 months); January to March 2026 is not a full year, so it is not used. A month with no record counts as no imports. Of the 740 foods, 228 had imports in all 10 years of at least US$5 million a year on average, with the smallest year at least a fifth of the biggest. Only those were judged.
Report an error. Corrections are logged publicly with a date.
How we did it
- Downloaded Singapore's imports for food and farm chapters 01 to 24, month by month from January 2016 to March 2026, one line per 6-digit trade code, all origins together, in US dollars and kilograms.
- Kept the food chapters and the 10 full years, 2016 to 2025, and joined the four mandarin codes.
- Divided each month by its year's total for each food, then averaged the ten yearly shares for each calendar month.
- Found the busiest month (the largest average share) and the busiest 3 months (that month and the two beside it), and added their shares.
- Counted the years in which that year's own busiest month falls within one month of the usual one.
- Applied the tests: imports every year, busiest month matching in 9 of 10 years, weight agrees, a named food, and at least 30% in the busiest 3 months. Ranked by that share.
- Checked it a second way: a separate script rereads the raw file with different code and gets the same busiest month, share and years for every food, and the page leaves out 2020 and 2021 as a test.
Show the Python code
YEARS = [str(y) for y in range(2016, 2026)]
FOOD_CHAPTERS = {2, 3, 4, 7, 8, 9, 10, 11, 16, 17, 18, 19, 20, 21, 22}
MIN_AVG_USD = 5_000_000
MIN_SMALLEST_OVER_BIGGEST = 0.2
MIN_YEARS_MATCH = 9
MIN_WINDOW_SHARE = 0.30
COMPARE = 3 # flattest foods shown for comparison (not picked)
JOINS = {"MANDARIN": ["080520", "080521", "080522", "080529"]} # 0805.20 became 0805.21, .22 and .29 from 2018
MONTHS = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split()
def series(codes, table, years=YEARS):
"""{(year, month): total} for a food made of one or more codes."""
out = defaultdict(float)
for c in codes:
for (cc, y, m), v in table.items():
if cc == c and y in years:
out[(y, m)] += v
return out
def analyse(codes, value, weight, years=YEARS):
s = series(codes, value, years)
annual = {y: sum(s.get((y, m), 0.0) for m in range(1, 13)) for y in years}
if min(annual.values()) <= 0:
return None, "a year with no imports"
avg = sum(annual.values()) / len(years)
if avg < MIN_AVG_USD:
return None, "under US$5m a year"
if min(annual.values()) / max(annual.values()) < MIN_SMALLEST_OVER_BIGGEST:
return None, "yearly total jumps (code change?)"
share = [sum(s.get((y, m), 0.0) / annual[y] for y in years) / len(years) for m in range(1, 13)]
peak = max(range(12), key=lambda i: share[i]) + 1
win = [((peak - 2 + k) % 12) + 1 for k in range(3)] # peak month and the months either side
win_share = sum(share[m - 1] for m in win)
busiest = {}
for y in years:
busiest[y] = max(range(1, 13), key=lambda m: s.get((y, m), 0.0))
hits = sum(1 for y in years if min((busiest[y] - peak) % 12, (peak - busiest[y]) % 12) <= 1)
# the same measure by weight, as a cross-check
sw = series(codes, weight, years)
wann = {y: sum(sw.get((y, m), 0.0) for m in range(1, 13)) for y in years}
wpeak = None
if all(v > 0 for v in wann.values()):
wshare = [sum(sw.get((y, m), 0.0) / wann[y] for y in years) / len(years) for m in range(1, 13)]
wpeak = max(range(12), key=lambda i: wshare[i]) + 1
monthly = {y: [round(s.get((y, m), 0.0)) for m in range(1, 13)] for y in years}
month_avg = [sum(s.get((y, m), 0.0) for y in years) / len(years) for m in range(1, 13)]
yearly_win = {y: sum(s.get((y, m), 0.0) for m in win) / annual[y] for y in years}
peak_month_record = max(((s.get((y, m), 0.0), y, m) for y in years for m in range(1, 13)))
low_month_record = min(((s.get((y, m), 0.0), y, m) for y in years for m in range(1, 13)))
return dict(
avg_usd=avg, annual=annual, share=share, peak=peak, win=win, win_share=win_share, hits=hits,
busiest=busiest, weight_peak=wpeak, month_avg=month_avg, monthly=monthly, yearly_win=yearly_win,
record_high=list(peak_month_record), record_low=list(low_month_record),
top_month_share=max(share), flat_ratio=max(share) * 12,
), "ok"
def circ(a, b):
return min((a - b) % 12, (b - a) % 12)
# inside main(): which foods are picked
def pick(candidates, value, weight):
steps, dropped, passed, analysed = {}, {}, {}, {}
for key, cs in candidates:
if int(cs[0][:2]) not in FOOD_CHAPTERS:
continue
steps["food chapters"] += 1
res, why = analyse(cs, value, weight)
if res is None:
continue
steps["enough imports every year"] += 1
res["codes"] = cs
res["description"] = desc.get(cs[0], "")
analysed[key] = res
if res["hits"] < MIN_YEARS_MATCH:
continue
steps["same busiest month in 9 of 10 years"] += 1
if not res["weight_peak"] or circ(res["weight_peak"], res["peak"]) > 1:
dropped["weight"].append(key)
continue
steps["weight agrees"] += 1
if "n.e.c." in res["description"]:
dropped["catchall"].append(key)
continue
steps["names a food"] += 1
if res["win_share"] < MIN_WINDOW_SHARE:
dropped["even"].append(key)
continue
steps["30% in busiest 3 months"] += 1
ex, _ = analyse(cs, value, weight, [y for y in YEARS if y not in ("2020", "2021")]) # the same food without 2020 and 2021
res["ex_covid_peak"] = ex["peak"] if ex else None
res["ex_covid_win_share"] = ex["win_share"] if ex else None
passed[key] = resWhat could make it wrong: a code that was renamed or split part-way through the ten years (we joined the mandarin codes and require steady yearly totals for the rest), a catch-all code we did not spot, a shipment recorded in a different month from when it arrived, a year with an unusual shipping pattern, or a food that is sold under several codes where we looked at only one. As a check, a second script gets the same numbers from the raw file.
No machine learning was needed. The question was "which month, and how much of the year", which adding up and dividing answers directly.
Sources: UN Comtrade Database (opens in a new tab), Singapore imports by month and 6-digit Harmonized System code, downloaded 11 Oct 2026. Source: United Nations Comtrade Database.