CA1 Assignment - "What is the government doing to mitigate the issue of food price inflation in Singapore?"¶
Introduction¶
Food price inflation has become an increasingly pressing issue in Singapore, especially in the wake of global supply chain disruptions, climate challenges, and economic shocks from 2019 to 2024. Given Singapore’s heavy reliance on food imports—over 90% of its supply—the country is particularly vulnerable to external price volatility. To address this, the government has implemented a range of strategies aimed at strengthening food security and cushioning the impact of rising prices on households. This report explores how food prices have changed across different categories, the progress and challenges in local food production, and the effectiveness of key government policies in mitigating food inflation.
Aims¶
This report aims to analyze the Singapore government’s measures to mitigate food price inflation between 2019 and 2024, by examining trends in food prices, changes in local food production, and efforts to reduce reliance on imports. It seeks to evaluate the effectiveness of policies such as the “30 by 30” initiative and other support schemes in stabilizing food costs and enhancing food security amidst global supply challenges.
CPI definition¶
The Consumer Price Index (CPI) measures the average change in prices of a fixed basket of goods and services commonly purchased by households over time. It is calculated by comparing the current cost of this basket to its cost during a base year (e.g. 2019), and the results are expressed as an index number.
Explanation of what each dataset represents¶
Data value(cpi_food): This dataset provides monthly CPI data, reflecting the average price changes in a fixed basket of consumption goods and services commonly purchased by resident households. It is widely used as a measure of consumer price inflation. The base year is 2019.
Data value(cpi_change): This dataset shows the percentage change in consumer prices in Singapore every six months, compared to the previous half-year, using 2019 as the baseline. The values are expressed in percentages (%).
Dataset(local_production): This dataset provides annual data on the value of locally produced food in Singapore, offering insights into domestic food production trends. The values are expressed in millions.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
Sub question 1: How have food prices changed over time across different categories?¶
#Used to display the cpi of food items over the years from 2019 to 2024
df = pd.read_csv("cpi_food.csv")
df['DataSeries'] = df['DataSeries'].str.strip()
food_items = ['Food', 'Meat', 'Vegetables', 'Fish & Seafood', 'Fruits', 'Rice']
df_filtered = df[df['DataSeries'].isin(food_items)]
columns_to_keep = ['DataSeries', '2019Jan', '2020Jan', '2021Jan', '2022Jan', '2023Jan', '2024Jan']
# Make an explicit copy here
df_result = df_filtered[columns_to_keep].copy()
# Now rename columns safely on this copy
df_result.rename(columns=lambda x: x.replace('Jan','') if 'Jan' in x else x, inplace=True)
# Set index and transpose
df_transposed = df_result.set_index('DataSeries').T
print(df_transposed.to_string(float_format='{:7.2f}'.format))
DataSeries Food Rice Meat Fish & Seafood Fruits Vegetables 2019 99.45 97.88 99.55 102.71 98.91 98.36 2020 101.10 98.66 102.55 106.83 101.74 102.42 2021 102.58 99.53 105.12 102.28 101.71 109.90 2022 105.20 96.61 107.62 109.03 106.92 116.28 2023 113.74 97.57 123.74 114.86 110.45 120.31 2024 117.53 101.80 124.77 114.81 113.35 119.77
The dataset above is the filtered data from cpi_food, it displays the cpi of food items from 2019 to 2024¶
# Load and clean data
df = pd.read_csv("cpi_food.csv")
df['DataSeries'] = df['DataSeries'].str.strip()
# Filter only the desired food categories
food_items = ['Food', 'Meat', 'Vegetables', 'Fish & Seafood', 'Fruits', 'Rice']
columns_to_keep = ['DataSeries', '2019Jan', '2020Jan', '2021Jan', '2022Jan', '2023Jan', '2024Jan']
df_filtered = df[df['DataSeries'].isin(food_items)][columns_to_keep]
# Melt the DataFrame to long format for plotting
df_melted = df_filtered.melt(id_vars='DataSeries', var_name='YearMonth', value_name='CPI')
# Convert YearMonth to datetime format for better plotting
df_melted['YearMonth'] = pd.to_datetime(df_melted['YearMonth'], format='%Y%b')
# Set up subplots: 6 food categories = 2 rows x 3 columns
fig, axs = plt.subplots(2, 3, figsize=(18, 8))
axs = axs.flatten()
# Plot each food item in its own subplot
for i, item in enumerate(food_items):
data = df_melted[df_melted['DataSeries'] == item]
axs[i].plot(data['YearMonth'], data['CPI'], marker='o', color='teal', linewidth=2)
axs[i].set_title(item, fontsize=12)
axs[i].set_xlabel('Year')
axs[i].set_ylabel('CPI')
axs[i].grid(True, linestyle='--', alpha=0.5)
# Add annotation for Rice CPI drop (2021 to 2022)
if item == 'Rice':
year_2021 = pd.to_datetime('2021Jan', format='%Y%b')
year_2022 = pd.to_datetime('2022Jan', format='%Y%b')
cpi_2021 = data[data['YearMonth'] == year_2021]['CPI'].values[0]
cpi_2022 = data[data['YearMonth'] == year_2022]['CPI'].values[0]
axs[i].annotate('Significant Drop',
xy=(year_2022, cpi_2022),
xytext=(year_2021, cpi_2021 + 2),
arrowprops=dict(facecolor='red', shrink=0.05, width=2),
fontsize=10, color='red')
# Add annotation for Seafood CPI drop (2020 to 2021)
if item == 'Fish & Seafood':
year_2020 = pd.to_datetime('2020Jan', format='%Y%b')
year_2021 = pd.to_datetime('2021Jan', format='%Y%b')
cpi_2020 = data[data['YearMonth'] == year_2020]['CPI'].values[0]
cpi_2021 = data[data['YearMonth'] == year_2021]['CPI'].values[0]
axs[i].annotate('Significant Drop',
xy=(year_2021, cpi_2021),
xytext=(year_2020, cpi_2020 + 2),
arrowprops=dict(facecolor='red', shrink=0.05, width=2),
fontsize=10, color='red')
# Add main title
fig.suptitle('CPI Trends by Food Category in Singapore (2019-2024)', fontsize=16)
plt.tight_layout(rect=[0, 0, 1, 0.95]) # Leave space for the main title
plt.show()
Analysis of the visual above (CPI trends by food category across the years)¶
Rice CPI Drop (2021–2022): This significant drop in rice CPI from 2021 to 2022 was primarily due to a global increase in rice production driven by favorable weather conditions and the lifting of export restrictions by major producers like India. These factors led to an oversupply in the global market, reducing international rice prices. Since Singapore imports the vast majority of its rice, the drop in global prices directly lowered local import costs, resulting in a reduced Consumer Price Index for rice.
Seafood CPI Drop (2020–2021): The decline in seafood CPI from 2020 to 2021 was largely influenced by abundant seafood supply due to good weather conditions in key source countries like Indonesia, particularly for products such as prawns. Additionally, the Singapore dollar strengthened against regional currencies, making seafood imports cheaper. This, coupled with Singapore’s efforts to diversify import sources, helped drive down seafood prices and led to a notable dip in the seafood CPI.
# Read and prepare the data
df = pd.read_csv("cpi_food.csv")
df['DataSeries'] = df['DataSeries'].str.strip()
# Filter for specific food items
food_items = ['Food', 'Meat', 'Vegetables', 'Fish & Seafood', 'Fruits', 'Rice']
df_filtered = df[df['DataSeries'].isin(food_items)]
# Keep only necessary columns
columns_to_keep = ['DataSeries', '2019Jan', '2020Jan', '2021Jan', '2022Jan', '2023Jan', '2024Jan']
df_result = df_filtered[columns_to_keep]
# Transpose for plotting
df_plot = df_result.set_index('DataSeries').T
# Set y-axis range
y_min = 90
y_max = df_plot.max().max() + 5
# Plotting
fig, axes = plt.subplots(2, 3, figsize=(15, 8))
axes = axes.flatten()
for i, year in enumerate(df_plot.index):
ax = axes[i]
values = df_plot.loc[year]
max_idx = values.idxmax()
colors = ['red' if item == max_idx else 'skyblue' for item in df_plot.columns]
bars = ax.bar(df_plot.columns, values, color=colors)
ax.set_title(year)
ax.set_ylabel("CPI")
ax.set_ylim(y_min, y_max)
ax.set_xticks(range(len(df_plot.columns)))
ax.set_xticklabels(df_plot.columns, rotation=45, ha='right')
# Add legend
red_patch = mpatches.Patch(color='red', label='Highest CPI')
blue_patch = mpatches.Patch(color='skyblue', label='Other Categories')
fig.legend(handles=[red_patch, blue_patch], loc='upper right')
fig.suptitle("CPI of Food Categories (2019-2024)", fontsize=16)
plt.tight_layout(rect=[0, 0, 1, 0.95])
plt.show()
Analysis of the visual above ( CPI graph for various food catogaries each year )¶
The graph shows the Consumer Price Index (CPI) trends for various food categories from January 2019 to January 2024, highlighting the category with the highest CPI each year. Overall, food prices have risen across all categories, with notable shifts in which category experienced the most inflation. Fish & Seafood had the highest CPI in 2019 and 2020, Vegetables led in 2021 and 2022, and Meat saw sharp increases, becoming the highest in both 2023 and 2024. Meanwhile, Rice consistently had the lowest CPI. These patterns suggest evolving inflation pressures possibly driven by supply chain disruptions, production costs, or demand fluctuations.
#Used to display the percentage change in cpi of food items over the years from 2019 to 2024
df = pd.read_csv("cpi_change.csv")
df['DataSeries'] = df['DataSeries'].str.strip()
food_items = ['Food', 'Meat', 'Vegetables', 'Fish & Seafood', 'Fruits', 'Rice']
df_filtered = df[df['DataSeries'].isin(food_items)]
columns_to_keep = ['DataSeries', '20191H', '20201H', '20211H', '20221H', '20231H', '20241H']
df_result = df_filtered[columns_to_keep]
print(df_result.to_string(index=False))
DataSeries 20191H 20201H 20211H 20221H 20231H 20241H
Food 0.9 1.3 0.7 2.7 3.1 1.9
Rice 1.7 1.8 -0.6 -1.4 0.8 -0.4
Meat -0.3 5.0 -0.2 4.3 2.0 0.0
Fish & Seafood 1.5 1.1 0.6 5.1 6.4 -0.9
Fruits 0.6 0.8 0.8 -0.4 0.6 -0.6
Vegetables 1.9 3.8 3.4 3.0 1.4 2.3
The dataset above is the filtered data from cpi_change, it displays the % cpi change in food items from 2019 to 2024¶
# Load CSV
df = pd.read_csv("cpi_change.csv")
# Clean headers
df.columns = df.columns.str.strip()
df['DataSeries'] = df['DataSeries'].str.strip()
# Filter relevant food categories
food_items = ['Food', 'Meat', 'Vegetables', 'Fish & Seafood', 'Fruits', 'Rice']
columns_to_keep = ['DataSeries', '20191H', '20201H', '20211H', '20221H', '20231H', '20241H']
df_filtered = df[df['DataSeries'].isin(food_items)][columns_to_keep]
# Transpose
df_plot = df_filtered.set_index('DataSeries').T
df_plot.index = df_plot.index.astype(str)
df_plot = df_plot.apply(pd.to_numeric, errors='coerce')
# Plot
plt.figure(figsize=(10, 6))
for col in df_plot.columns:
plt.plot(df_plot.index, df_plot[col], marker='o', label=col)
plt.title("CPI % Change (1H) for Food Categories (2019-2024)")
plt.xlabel("Year (First Half)")
plt.ylabel("CPI % Change")
plt.xticks(rotation=45)
plt.grid(True)
plt.legend(title="Food Category")
# Place note inside the plot (top-left)
plt.text(0.01, 0.97,
"Note: Values on vertical axis above 0 indicate an increase in CPI,\nwhile values below 0 indicate a decrease in CPI.",
transform=plt.gca().transAxes,
fontsize=9,
verticalalignment='top',
bbox=dict(facecolor='white', edgecolor='gray', boxstyle='round,pad=0.4'))
plt.tight_layout()
plt.show()
Analysis of the visual above ( CPI % Change graph )¶
This graph highlights several key trends and anomalies. Significant CPI drops were observed for rice between 2021 and 2022, likely due to increased global supply and relaxed export restrictions, and for fish & seafood between 2020 and 2021, possibly due to better catches and a stronger Singapore dollar. Meanwhile, meat and vegetables showed consistent CPI increases, driven by global supply chain disruptions and rising production costs, with overall inflation peaking in. Anomalies include a vegetable CPI spike in 2022 (likely weather-related), a fruit price jump in 2023, and a dip in meat CPI in 2024, suggesting evolving supply-demand dynamics. Overall, the graph reflects how global factors significantly impact Singapore’s food prices.
Overall Food Price Trends¶
Between 2019 and 2024, food prices in Singapore exhibited varied trends across different categories, as reflected in the Consumer Price Index (CPI) data. The general CPI for food increased from 99.447 in January 2019 to 117.532 in January 2024, indicating an approximate 18.2% rise over five years. This upward trend indicates a consistent increase in food prices during this period.
Category-Specific Insights¶
Meat: The CPI for meat rose from 99.554 in January 2019 to 124.767 in January 2024, marking a significant increase of about 25.3%. This substantial rise can be attributed to factors such as global supply chain disruptions and increased demand.
Vegetables: Vegetable prices saw a notable increase, with the CPI climbing from 98.360 in January 2019 to 119.768 in January 2024, reflecting a 21.8% rise. This surge may be linked to factors like weather-related supply issues and increased production costs.
Fish & Seafood: The CPI for fish and seafood increased from 102.713 in January 2019 to 114.812 in January 2024, a 11.8% rise. This moderate increase suggests relative stability in this category, possibly due to diversified import sources.
Fruits: Fruit prices experienced a CPI increase from 98.910 in January 2019 to 113.346 in January 2024, amounting to a 14.6% rise. This steady growth indicates consistent demand and supply dynamics in the fruit market.
Rice: Rice prices showed the least volatility, with the CPI moving from 97.878 in January 2019 to 101.797 in January 2024, a modest 4% increase. This stability may be due to long-term contracts and diversified import sources ensuring steady supply.
Overall Conclusion for Sub question 1¶
Meat, vegetables, and seafood experienced the highest inflation rates, with meat showing the most significant price increases, while rice and fruits maintained low or even negative inflation, reflecting greater price stability. The data above confirms that food price inflation has not been uniform, but it is slowing down. While staple categories like rice were stable, protein and perishables experienced large spikes due to supply shocks, climate, and geopolitical events.
Sub question 2: "How has local food production changed over time, and is it aligned with efforts to reduce reliance on imports?"¶
#Used to display the value of local production in millions from 2019 to 2024
# Load CSV with pandas
df = pd.read_csv('local_production.csv')
# Extract rows based on label in first column
veg_row = df[df.iloc[:, 0].str.contains("Vegetables", na=False)].iloc[0, 1:7].astype(int).values
seafood_row = df[df.iloc[:, 0].str.contains("Seafood", na=False)].iloc[0, 1:7].astype(int).values
eggs_row = df[df.iloc[:, 0].str.contains("Hen Shell Eggs", na=False)].iloc[0, 1:7].astype(int).values
total_row = df[df.iloc[:, 0].str.contains("Total Value Of Local Production", na=False)].iloc[0, 1:7].astype(int).values
# Convert years manually (assuming the columns are in reverse order)
years = np.array([2024, 2023, 2022, 2021, 2020, 2019])
vegetables_value = np.array(veg_row)
seafood_value = np.array(seafood_row)
hen_shell_eggs_value = np.array(eggs_row)
total = np.array(total_row)
# Display using numpy-style formatting
print(f"{'Year':<6}{'Total value':<14}{'Vegetables':<14}{'Seafood':<14}{'Hen Shell Eggs':<18}{'Unit'}")
for i in range(len(years)):
print(f"{years[i]:<6}{total[i]:<14}{vegetables_value[i]:<14}{seafood_value[i]:<14}{hen_shell_eggs_value[i]:<18}million dolllars")
Year Total value Vegetables Seafood Hen Shell Eggs Unit 2024 231 40 30 161 million dolllars 2023 233 43 34 156 million dolllars 2022 207 43 40 124 million dolllars 2021 186 47 41 99 million dolllars 2020 163 40 35 89 million dolllars 2019 166 42 46 79 million dolllars
The dataset above is the filtered data from local_production, it displays the value of local production in millions from 2019 to 2024.¶
# Load raw CSV data
df_raw = pd.read_csv("local_production.csv", header=None)
# Extract and clean data
df_data = df_raw.iloc[9:].reset_index(drop=True)
df_data.columns = df_data.iloc[0]
df_data = df_data.drop(index=0).reset_index(drop=True)
df_data.columns = df_data.columns.astype(str).str.strip()
df_data = df_data.rename(columns={df_data.columns[0]: "Data Series"})
df_data["Data Series"] = df_data["Data Series"].str.strip()
# Filter required data series
keywords = [
"Total Value Of Local Production (Million Dollars)",
"Vegetables (Million Dollars)",
"Seafood (Million Dollars)",
"Hen Shell Eggs (Million Dollars)"
]
filtered_data = df_data[df_data["Data Series"].isin(keywords)]
# Extract data for plotting
years = [str(year) for year in range(2019, 2025)]
# Convert to numeric and create series
total_value = filtered_data[filtered_data["Data Series"] == "Total Value Of Local Production (Million Dollars)"][years].values.flatten().astype(float)
vegetables = filtered_data[filtered_data["Data Series"] == "Vegetables (Million Dollars)"][years].values.flatten().astype(float)
seafood = filtered_data[filtered_data["Data Series"] == "Seafood (Million Dollars)"][years].values.flatten().astype(float)
hen_eggs = filtered_data[filtered_data["Data Series"] == "Hen Shell Eggs (Million Dollars)"][years].values.flatten().astype(float)
years_int = list(map(int, years))
# Plotting
plt.figure(figsize=(10, 6))
plt.plot(years_int, total_value, marker='o', label='Total Value')
plt.plot(years_int, vegetables, marker='o', label='Vegetables')
plt.plot(years_int, seafood, marker='o', label='Seafood')
plt.plot(years_int, hen_eggs, marker='o', label='Hen Shell Eggs')
# Annotations
plt.axvline(x=2019, color='red', linestyle='--', linewidth=1.5, label='Beginning of COVID')
plt.axvline(x=2022, color='blue', linestyle='--', linewidth=1.5, label='Significant seafood production drop')
# Formatting
plt.title('Local Food Production in Singapore (201-2024)', fontsize=14)
plt.xlabel('Year', fontsize=12)
plt.ylabel('Value (in millions SGD)', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.5)
plt.legend()
plt.tight_layout()
plt.show()
Analysis of the visual above (Local food production trends in singapore over the years)¶
Explanation for decrease of vegetables, seafood and increase of eggs from 2019 to 2020: The notable decline in seafood and vegetables in Singapore from 2019 to 2020 can be attributed to disruptions caused by the COVID-19 pandemic, which led to reduced fishing activities, adjustments in farm outputs, supply chain disruptions and labour shortages. Conversely, hen shell egg production increased from 79 million in 2019 to 89 million in 2020. This rise was driven by heightened consumer demand amid pandemic-induced uncertainties, prompting producers to boost output to ensure food security. Singapore's strategic initiatives, such as diversifying import sources and expanding local production, further supported this increase in egg availability.
Explanation for why seafood was affected much worse as compared to vege from 2019 to 2020: The substantial drop in Singapore's seafood production from 46 million kg in 2019 to 35 million kg in 2020 was primarily due to the COVID-19 pandemic's impact on fishing activities and supply chains. Movement restrictions and health concerns led to fewer fishing trips, disruption of key fishing ports like Jurong Fishery Port, reducing the volume of seafood brought ashore. Additionally, diminished demand from the food service sector and consumers prompted farms to adjust their output accordingly. These factors collectively contributed to the most pronounced decline in local seafood production during that period.
Explanantion for the significant decrease of seafood from 2022 to 2024: The decline in Singapore's seafood production between 2022 and 2024 is the result of compounded challenges: pandemic-induced construction delays, inflationary pressures increasing operational costs, disease outbreaks affecting fish populations, and a reduction in the number of sea-based farms. These factors have collectively hindered the growth and sustainability of local seafood production.
#Used to display the amount of local production in tonnes/million pieces from 2019 to 2024
#Million pieces count individual items, while tonnes measure weight; for example, 1 million eggs roughly equals 60 tonnes, so converting million pieces to tonnes allows for a consistent comparison of total production by weight.
#For eggs: 1 million eggs ≈ 60 tonnes , average egg ≈ 60g (This conversion is required as the eggs were in million pieces while the rest were in tonnes making it difficult to compare)
# Step 1: Load and clean data
df = pd.read_csv('local_production.csv')
# Step 2: Extract rows using keyword match
veg_row = df[df.iloc[:, 0].str.contains("Local Production Of Vegetables", na=False)].iloc[0, 1:7].astype(int).values
seafood_row = df[df.iloc[:, 0].str.contains("Local Production Of Seafood", na=False)].iloc[0, 1:7].astype(int).values
eggs_million = df[df.iloc[:, 0].str.contains("Local Production Of Hen Shell Eggs", na=False)].iloc[0, 1:7].astype(int).values
# Step 3: Convert eggs from million pieces to tonnes
eggs_tonnes = eggs_million * 60
# Step 4: Prepare arrays
years = np.array([2024, 2023, 2022, 2021, 2020, 2019])
vegetables = np.array(veg_row)
seafood = np.array(seafood_row)
eggs = np.array(eggs_tonnes)
# Step 5: Calculate total in tonnes
total = vegetables + seafood + eggs
# Step 6: Display
print(f"{'Year':<6}{'Total':<10}{'Vegetables':<14}{'Seafood':<14}{'Hen Shell Eggs':<18}{'Unit'}")
for i in range(len(years)):
print(f"{years[i]:<6}{total[i]:<10}{vegetables[i]:<14}{seafood[i]:<14}{eggs[i]:<18}tonnes")
Year Total Vegetables Seafood Hen Shell Eggs Unit 2024 66304 16391 3533 46380 tonnes 2023 62105 16915 4090 41100 tonnes 2022 60861 19881 4440 36540 tonnes 2021 67215 23506 5069 38640 tonnes 2020 64320 22793 4567 36960 tonnes 2019 61311 24296 5335 31680 tonnes
The dataset above is the filtered data from local_production, it displays the amount of local production in tonnes from 2019 to 2024.¶
How far are we from the 30 by 30 goal?¶
Limitations: 2024 sfa report (Singapore food statistics) is not released yet therefore the data below is from 2023 sfa report and the local_production.csv file. However the local_production.csv file contains data for local production in 2024 but the data for singapore food imports in 2024 is not out yet. Also we are only analyzing imports and local production of eggs, vegetables and seafood as the data for other food items is not available.
2023 local production:
Eggs: 685 million pieces
Vegetables: 16915 tonnes
Seafood: 4090 tonnes
2023 Imports:
Eggs: 2161 million pieces
Vegetables: 547400 tonnes
Seafood: 126500 tonnes
Based on the data above, in 2023, 24.1% of eggs, 3% of vegetables, and 3% of seafood were locally produced. This indicates that while egg production is approaching the 30% target set by the 30 by 30 goal, achieving this target for vegetables and seafood remains a significant challenge. Overall, Singapore still faces difficulties in reaching the 30 by 30 goal, but progress in egg production demonstrates promising potential.
Overall Conclusion for Sub question 2¶
While Singapore has made strides in increasing local food production, particularly in egg production, achieving the "30 by 30" goal remains challenging. Continued investment in technology, infrastructure, and supportive policies will be crucial to enhance local production capabilities and reduce reliance on food imports.
SUMMARY¶
To address food price inflation, the Singapore government has adopted a comprehensive strategy focused on strengthening food security, supply resilience, and household support. A key initiative is the “30 by 30” goal, launched in 2019, which aims to produce 30% of the nation’s nutritional needs locally by 2030 through grants supporting high-tech farming of vegetables, eggs, and seafood. Singapore is also diversifying its food import sources across over 170 countries and investing in agri-tech innovations such as vertical farming and aquaculture. In response to supply crises such as Malaysia’s 2022 chicken export ban, the government swiftly secured alternative sources to maintain supply. Financial support includes the GST Voucher Scheme (launched in 2012, enhanced in 2023) and the Assurance Package (introduced in 2022, expanded to over S$10 billion), offering cash payouts, CDC vouchers, and utility rebates. In 2024, supermarket chain Giant absorbed a 1% GST hike on 700 essential items to cushion cost impacts. The Monetary Authority of Singapore also tightened monetary policy between 2021 and 2022 to address imported inflation. Hawker centres are supported through NEA measures such as rent moderation, productivity grants, and a mandate (since 2018) for each stall to offer at least one affordable meal.
However, local food production has faced setbacks, with recent declines in vegetable and seafood output despite gains in egg production, reflecting ongoing challenges in achieving the “30 by 30” target. Lastly, most food categories have shown smaller CPI increases compared to previous years, with some, like vegetables and fish & seafood, even flattening or slightly declining. This suggests that while food prices remain elevated, their rate of growth is moderating. Therefore, it is reasonable to infer that Singapore’s food inflation policies are having a positive effect, though external factors such as global supply disruptions and climate events remain influential.
REFERENCES¶
CEIC Data, n.d. Singapore Consumer Price Index: 2019=100. [online] Available at: https://www.ceicdata.com/en/singapore/consumer-price-index-2019100/cpi-food [Accessed 27 May 2025].
The Straits Times, 2024. Inflation eases in 2024 as prices of cars, some food items, clothing fell in S’pore. [online] Available at: https://www.straitstimes.com/business/inflation-eases-in-2024-as-prices-of-cars-some-food-items-clothing-fell-in-spore [Accessed 27 May 2025].
Singapore Department of Statistics, n.d. Consumer Price Index Infographics. [online] Available at: https://www.singstat.gov.sg/modules/infographics/consumer-price-index [Accessed 27 May 2025].
Channel NewsAsia, 2022. Malaysia bans chicken exports: What you need to know. [online] Available at: https://www.channelnewsasia.com/asia/malaysia-bans-chicken-exports-what-you-need-know-2735536 [Accessed 27 May 2025].
HortiDaily, 2017. Bad weather hurts veg import prices in Singapore. [online] Available at: https://www.hortidaily.com/article/6035244/bad-weather-hurts-veg-import-prices-in-singapore/ [Accessed 27 May 2025].
United States International Trade Commission, n.d. The Impact of the COVID-19 Pandemic on Freight Transportation Services and U.S. Merchandise Imports. [online] Available at: https://www.usitc.gov/research_and_analysis/economics_reports/impact_covid-19_pandemic_freight_transportation_services_and_us_merchandise_imports.htm [Accessed 27 May 2025].
Singapore Department of Statistics, n.d. Agriculture and Aquaculture. [online] Available at: https://www.singstat.gov.sg/find-data/search-by-theme/industry/agriculture-and-aquaculture/latest-data [Accessed 27 May 2025].
Mothership.sg, 2020. Singapore rolls out new S$39.4 million grant for farming sector. [online] Available at: https://mothership.sg/2020/04/singapore-new-grant-farming/ [Accessed 27 May 2025].
The Straits Times, 2021. Sufficient supply of seafood despite Jurong Fishery Port closure; shoppers urged to widen seafood choices: Grace Fu. [online] Available at: https://www.straitstimes.com/singapore/sufficient-supply-of-seafood-despite-jurong-fishery-port-closure-shoppers-urged-to-widen-seafood-choices-grace-fu [Accessed 27 May 2025].
Singapore Department of Statistics, n.d. TableBuilder: Table TS/M890721. [online] Available at: https://www.tablebuilder.singstat.gov.sg/table/TS/M890721 [Accessed 27 May 2025].
ScienceDirect, 2023. Article S2213624X23000688. [online] Available at: https://www.sciencedirect.com/science/article/pii/S2213624X23000688 [Accessed 27 May 2025].
Ministry of Sustainability and the Environment, 2023. Press Release on 30x30 Express. [online] Available at: https://www.mse.gov.sg/latest-news/press-release-on-30-x-30-express [Accessed 27 May 2025].
Channel NewsAsia, 2024. Vegetables, seafood in Singapore: Food price, cost, farmers, security. [online] Available at: https://www.channelnewsasia.com/singapore/vegetables-seafood-singapore-food-price-cost-farmers-security-4442626 [Accessed 27 May 2025].
The Straits Times, 2023. Food production in S’pore declined in 2022 due to Covid-19-related delays, limited consumer support. [online] Available at: https://www.straitstimes.com/singapore/food-production-in-s-pore-declined-in-2022-due-to-covid-19-related-delays-limited-consumer-support [Accessed 27 May 2025].
Singapore Business Review, 2024. Local vegetable and seafood production dip in 2023. [online] Available at: https://sbr.com.sg/agribusiness/news/local-vegetable-and-seafood-production-dip-in-2023 [Accessed 27 May 2025].
The Straits Times, 2024. S’pore vegetable, seafood production fell in 2023 due to construction challenges, inflation: SFA. [online] Available at: https://www.straitstimes.com/singapore/s-pore-vegetable-seafood-production-fell-in-2023-due-to-construction-challenges-inflation-sfa [Accessed 27 May 2025].
Singapore Food Agency, n.d. Our SG Food Story. [online] Available at: https://www.sfa.gov.sg/fromSGtoSG/our-sg-food-story [Accessed 27 May 2025].
The Business Times, 2024. Rice price drop brings relief, billions risk for farmers. [online] Available at: https://www.businesstimes.com.sg/companies-markets/energy-commodities/rice-price-drop-brings-relief-billions-risk-farmers [Accessed 27 May 2025].
Lee Kuan Yew School of Public Policy, 2023. Food price inflation in Singapore during global food price shocks. [online] Available at: https://lkyspp.nus.edu.sg/gia/article/food-price-inflation-in-singapore-during-global-food-price-shocks [Accessed 27 May 2025].
TODAY, 2022. Seafood prices higher due to supply shortage, bad weather. [online] Available at: https://www.todayonline.com/singapore/seafood-prices-higher-supply-shortage-bad-weather-2036371 [Accessed 27 May 2025].
DollarsAndSense, 2025. Inflation Jan 2025: Things that are actually cheaper. [online] Available at: https://dollarsandsense.sg/inflation-jan-2025-things-that-are-actually-cheaper/ [Accessed 27 May 2025].
Singapore Food Agency (SFA) (2023) Singapore Food Statistics 2023. Singapore: Singapore Food Agency. [online] Available at: https://www.sfa.gov.sg/docs/default-source/publication/sg-food-statistics/singapore-food-statistics-2023.pdf?sfvrsn=cac6f594_1 (Accessed: 30 May 2025).