K-Beauty: Poised for a New Leap Forward
The K-beauty industry has recently been capturing the spotlight once again. As an investor looking into the sector, I feel that this industry is not just following a fleeting trend but is facing a period of serious structural transformation. In the past, there was a high dependency on China, but now the export market is rapidly expanding to the United States, Japan, Europe, the Middle East, and Southeast Asia. The role of technology-driven brands and Original Design Manufacturing (ODM) companies has become more critical than ever.
This shift involves more than just diversifying export destinations; it accompanies a paradigm shift in product essence and consumer perception. Consumers now choose cosmetics based on more specific and scientific criteria such as ingredients, efficacy, safety, and sustainability, rather than just brand image. As a result, the beauty industry is gradually approaching the boundary of the healthcare and wellness sectors, presenting both a challenge and an opportunity for K-beauty companies.
🌍 K-Beauty’s Expansion Strategy: Moving Beyond China
Just a few years ago, K-beauty was largely dependent on the Chinese market. However, following the THAAD incident in 2017, the growth in the Chinese market slowed due to government regulations, an unofficial boycott sentiment, and the rapid rise of local Chinese brands. In response, Korean cosmetics companies strategically began to diversify their export markets, a strategy that is now yielding visible results.
As of 2024, the United States has emerged as the largest export destination for Korean cosmetics, with market share steadily increasing in Japan, Europe, the Middle East, and Southeast Asia as well. This trend is not merely a geographical diversification but a strategic pivot to adapt to the needs of global consumers. This demands precise product planning tailored to regional consumer characteristics: American consumers are sensitive to ingredients and efficacy, Japanese consumers value functionality and simplicity, Europeans prioritize sustainability and eco-friendliness, and Middle Eastern consumers focus on luxury and Halal certification.
Distribution methods are also evolving. While department store-centric distribution was dominant in the past, digital platforms like Amazon, Qoo10, TikTok, and Olive Young have now become core channels. This provides global expansion opportunities for emerging brands and SMEs, enabling them to build a loyal customer base through Direct-to-Consumer (D2C) communication.
📌 Summary of Export Share Changes
Export Destination | 2016 Share (Approx. %) | 2024 Share (Approx. %) | Key Change Factors |
---|---|---|---|
Greater China | 70% | 24% | Geopolitical risks, rise of local brands, need for channel diversification. |
United States | - | 18.7% | Expansion of digital distribution, ingredient-focused consumer culture, popularity of derma brands. |
Japan | - | 9.5% | Popularity of K-culture, expanding consumption among women in their 10s and 20s. |
Europe | - | - | Increasing demand for eco-friendly ingredients and sustainable packaging. |
Southeast Asia | - | - | Spread of Hallyu (Korean Wave) via K-pop/dramas, effectiveness of social media marketing. |
2024 data is based on annual export figures from the Korea Customs Service and the Ministry of Food and Drug Safety. |
🔬 From Brands to Technology: A Shift in Industry Leadership
K-beauty is transforming from an industry of ‘brands that make you look pretty’ to one centered on ’technological capabilities with scientifically proven efficacy.’ This phenomenon arises as consumer perceptions of beauty shift towards health and wellness. In response, both domestic and international companies are actively strengthening their research and development (R&D).
- APR (APR Corp): Pioneering the home beauty device market with its AGE-R device, APR is building a ‘device-cosmetic ecosystem’ by linking it with its Medicube cosmetics. Its customer lock-in strategy is outstanding, and it is rapidly expanding its market share in the US, Japan, and Singapore.
- Cosmax: Going beyond simple manufacturing, Cosmax is elevating the ODM industry by developing new technology-based ingredients, optimizing formulations with AI, and implementing a globally distributed production strategy. Active collaboration with indie brands, in particular, has created a foundation for more brands to enter the market quickly.
Furthermore, with the rapid rise of derma-cosmetic brands based on dermatology and the strengthening trend of purchasing based on specific ingredients like PDRN, microbiome, retinol, and peptides, the ‘function-centric skincare’ market is moving to the forefront. K-beauty is recognized as one of the sectors that best reflects this trend, instilling the perception of ‘science-based cosmetics’ in consumers worldwide.
📊 K-Beauty Companies from an Investor’s Perspective
While studying the industry, looking at related companies from an investment standpoint is also an interesting approach. The cosmetics industry was traditionally considered a cyclical consumer good, but it is recently being re-evaluated as an investment theme as it merges with device, bio, and healthcare elements.
📈 Key Company Comparison Summary
Company | Market Cap (Approx.) | 2024 Revenue Growth | Operating Profit Margin | Overseas Sales % | Features & Investment Points |
---|---|---|---|---|---|
Amorepacific | KRW 8.0 Trillion | +5.9% | 5.8% | 44% | Turnaround expectations, expanding North American sales, brand renewal in progress. |
APR Corp | KRW 5.9 Trillion | +38.0% | 17.0% | 55% | Device + cosmetics ecosystem, global expansion based on D2C model. |
LG H&H | KRW 5.0 Trillion | - | - | - | Luxury-focused, in the early stages of renewal, China risk remains. |
Cosmax | KRW 2.7 Trillion | +21.9% | 8.1% | 46% | Growth based on indie brands, leading the ODM ecosystem, expanding global factories. |
Data as of July 2025. Financials are based on FY2024 results. Market cap is subject to change. |
Notably, technology-focused companies like APR are maximizing customer lifetime value by adopting a hardware + consumables model, while Cosmax is being evaluated as playing a ‘TSMC-like role’ in the cosmetics industry. Meanwhile, although LG Household & Health Care and Amorepacific still have high exposure to China and duty-free channels, they are seeking new growth opportunities through restructuring.
🔭 Reasons to be Optimistic about K-Beauty’s Future
- Tangible diversification of export markets is becoming visible, with a rapid transition towards becoming global brands.
- The digital-centric distribution structure lowers entry barriers and provides an environment where brands can communicate directly with consumers to strengthen their identity.
- The R&D competitiveness of Korean companies in response to technology-driven trends is highly regarded in the global market, with the convergence of derma-cosmetics and beauty devices becoming a new standard.
- Increased investment in ESG, clean beauty, and sustainability will serve as a foundation for K-beauty to survive and grow in the global market in the mid- to long term.
From an investor’s perspective, the K-beauty industry is currently at the starting line for its second golden age, a time when the innovations in its industrial structure and the results of its global strategy are beginning to show in earnest. Closely observing the flow of this industry over the next 2-3 years will be a very meaningful experience, not only for industrial analysis but also for future career path setting and strategy development.
📚 References and Further Insights
For more vivid insights, consider the following content. You can hear the actual perspectives of beauty industry professionals and analysts, along with in-depth explanations of the industry structure.
뷰티 초고수가 들려주는 한국 화장품 산업 이야기 | 뷰티 1부
- This content easily explains the basic structure of the Korean cosmetics industry and the context of its export transition period.
브랜드가 강자가 아닌 이유? 뷰티 2부
- This delves deeply into why ODMs and distribution channels are more important than the brands themselves.
프랑스 명품도 눌러버린 한국 화장품, 폭발적으로 성장 중 | 슈퍼맨 이주호
- Analyzes how K-beauty has grown to a level where it competes with global luxury brands, using various indicators.
의외로 잘 모르는 한국 화장품의 글로벌 성공 비결 | 박종대 위원
- Explains the potential for the re-evaluation of the cosmetics industry and investment strategies from a securities analyst’s point of view.
중국이 K-뷰티 당장 쫓아오지 못하는 이유 | 시그나이트 파트너스 이새봄 수석
- Provides a detailed analysis of why K-beauty still leads in technology, manufacturing ecosystem, and global brand power, despite the rapid growth of China’s domestic brands.
TIGER Cosmetics ETF Analysis
- The TIGER Cosmetics ETF is an ETF that focuses on major domestic beauty-related companies. Its trend from 2023-2025 shows that investment sentiment is reacting ahead of performance, indicating that investment demand for the industry as a whole is reviving.
📊 TIGER Cosmetics ETF Holdings (As of July 2025)
Rank | Ticker | Weight |
---|---|---|
1 | APR | 10.56% |
2 | LG Household & Health Care | 10.40% |
3 | Amorepacific | 10.28% |
4 | d’Alba Global | 9.70% |
5 | Pharma Research | 9.60% |
6 | Kolmar Korea | 9.43% |
7 | Silicon2 | 9.43% |
8 | Cosmax | 9.41% |
9 | VT | 6.71% |
10 | Cosmecca Korea | 3.66% |
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
from curl_cffi import requests
import yfinance as yf
# —————————————————————————————————————————————
# 1. Fetch Global Index Data
# —————————————————————————————————————————————
def fetch_market_data(tickers, start_date, end_date, session):
"""
Downloads global index (closing price) data using yfinance.
:param tickers: List of symbols to fetch (e.g., ['^GSPC', '^KS11'])
:param start_date: Start date for data (YYYY-MM-DD)
:param end_date: End date for data (YYYY-MM-DD)
:param session: curl_cffi requests session
:return: DataFrame with date index (columns=['S&P500','KOSPI'])
"""
raw = yf.download(
tickers,
start=start_date,
end=end_date,
session=session,
repair=True
)['Close']
raw.columns = ['S&P500', 'KOSPI']
# Reset index and rename the date column
df = raw.reset_index().rename(columns={'index': 'Date'})
return df
# —————————————————————————————————————————————
# 2. Load and Preprocess Local Excel Data
# —————————————————————————————————————————————
def load_and_preprocess_excel(path, sheet, header_row=5):
"""
Reads the PRICE_DATA sheet from out.xlsx,
keeps necessary columns, and converts to date/numeric types.
:param path: Path to the Excel file
:param sheet: Sheet name
:param header_row: The actual row where the data header starts (0-based)
:return: Preprocessed DataFrame (columns=['Date','MarketPrice','BaseIndex'])
"""
df = pd.read_excel(path, sheet_name=sheet, header=header_row)
# Remove empty columns
df = df.dropna(axis=1, how='all')
# Select key columns
df = df[['구분', '시장가격', '기초지수(WISE 화장품)']]
# Convert types
df['구분'] = pd.to_datetime(df['구분'])
df['시장가격'] = pd.to_numeric(df['시장가격'], errors='coerce')
df['기초지수(WISE 화장품)'] = pd.to_numeric(df['기초지수(WISE 화장품)'], errors='coerce')
# Filter data from 2023-01-01 onwards
df = df[df['구분'] >= '2023-01-01'].copy()
# Rename columns for clarity
df.rename(columns={'구분': 'Date', '기초지수(WISE 화장품)': 'tiger_cosmetics'}, inplace=True)
# Set Date as index
df.set_index('Date', inplace=True)
return df
# —————————————————————————————————————————————
# 3. Merge Data and Handle Missing Values
# —————————————————————————————————————————————
def merge_and_fill(etf_df, market_df):
"""
Merges ETF and global index data by date,
then fills missing values using linear interpolation and forward/backward fill.
:param etf_df: ETF DataFrame (date index)
:param market_df: Index DataFrame (with Date, S&P500, KOSPI columns)
:return: Merged DataFrame with missing values handled
"""
market_df = market_df.copy()
market_df['Date'] = pd.to_datetime(market_df['Date'])
market_df.set_index('Date', inplace=True)
# Merge dataframes
df = etf_df.merge(
market_df[['S&P500', 'KOSPI']],
left_index=True, right_index=True,
how='left'
)
# 1) Linear interpolation
df[['S&P500','KOSPI']] = df[['S&P500','KOSPI']].interpolate(method='linear')
# 2) Supplement with forward/backward fill average
for col in ['S&P500','KOSPI']:
df[col] = df[col].fillna((df[col].ffill() + df[col].bfill())/2)
return df
# —————————————————————————————————————————————
# 4. Calculate Indicators (Relative Returns & Moving Averages)
# —————————————————————————————————————————————
def calculate_indicators(df):
"""
Calculates cumulative relative returns and 5-day moving averages.
:param df: Merged DataFrame
:return: DataFrame with new indicator columns
"""
# Cumulative return relative to the start date
df['tiger_cosmetics_relative'] = df['tiger_cosmetics'] / df['tiger_cosmetics'].iloc[0]
df['S&P500_relative'] = df['S&P500'] / df['S&P500'].iloc[0]
df['KOSPI_relative'] = df['KOSPI'] / df['KOSPI'].iloc[0]
# 5-day simple moving average
for col in ['tiger_cosmetics','S&P500','KOSPI']:
df[f'{col}_SMA'] = df[col].rolling(window=5).mean()
return df
# —————————————————————————————————————————————
# 5. Plot Chart and Save
# —————————————————————————————————————————————
def plot_and_save(df, output_path, font_path):
"""
Sets up Korean font, creates a two-panel chart (price trend and cumulative return),
and saves it as a PNG file.
:param df: DataFrame with indicators (date index)
:param output_path: File path to save the chart (e.g., 'tiger_kbeauty.png')
:param font_path: Path to a system font file for displaying Korean characters
"""
# Set up Korean font
prop = fm.FontProperties(fname=font_path)
plt.rcParams['font.family'] = prop.get_name()
plt.rcParams['axes.unicode_minus'] = False
fig, (ax1, ax2) = plt.subplots(
2, 1, figsize=(12, 8), sharex=True
)
# Top plot: Price Trend
ax1.plot(df.index, df['tiger_cosmetics'], label='TIGER K-Beauty ETF Close')
ax1.plot(df.index, df['S&P500'], label='S&P 500 Close')
ax1.plot(df.index, df['KOSPI'], label='KOSPI Close')
ax1.set_ylabel('Closing Price')
ax1.set_title('Index and ETF Closing Price Trends Since 2023')
ax1.legend()
ax1.grid(True)
# Bottom plot: Cumulative Returns
ax2.plot(df.index, df['tiger_cosmetics_relative'], label='ETF Cumulative Return')
ax2.plot(df.index, df['S&P500_relative'], label='S&P 500 Cumulative Return')
ax2.plot(df.index, df['KOSPI_relative'], label='KOSPI Cumulative Return')
ax2.set_ylabel('Cumulative Return')
ax2.set_title('Relative Cumulative Return Comparison Since 2023')
ax2.legend()
ax2.grid(True)
plt.xlabel('Date')
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig(output_path, dpi=400)
plt.close(fig)
# —————————————————————————————————————————————
# 6. Execution Block
# —————————————————————————————————————————————
def main():
# Set parameters
start_date = "2023-01-02"
end_date = "2025-07-20"
tickers = ['^GSPC', '^KS11']
excel_path = "out.xlsx"
sheet_name = 'PRICE_DATA'
font_path = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf' # To prevent garbled Korean text in matplotlib
output_png = 'tiger_kbeauty_comparison.png'
# Create session (to impersonate Chrome User-Agent and avoid 'too many requests' errors from yfinance)
session = requests.Session(impersonate="chrome")
# 1) Fetch global index data
market_df = fetch_market_data(tickers, start_date, end_date, session)
# 2) Load and preprocess local Excel data
# yfinance cannot fetch KRX:228790, data can be downloaded from https://www.tigeretf.com
etf_df = load_and_preprocess_excel(excel_path, sheet_name)
# 3) Merge data and handle missing values
merged_df = merge_and_fill(etf_df, market_df)
# 4) Calculate indicators
result_df = calculate_indicators(merged_df)
# 5) Plot chart and save
plot_and_save(result_df, output_png, font_path)
if __name__ == "__main__":
main()
Comments