System Architecture
Constraint-Driven Portfolio Construction Engine
1 Raw Data & Preprocessing
Daily price data and financial statements preprocessed into adjusted price tables for downstream factor calculation.
KOSPI / KOSDAQ US equities KR/US ETFs Daily batch
adjusted prices
2 Factor Calculation Engine
Multi-factor scoring across filtered universe. ~150 different factor weight combinations produce diverse portfolio viewpoints.
Momentum
ROC, SMA, slope (12mo)
Low Volatility
3-month return std dev
Value
PBR / total capital
Quality
ROE
factor scores
3 Constrained Optimization
Tangency portfolio optimization via SciPy. Asset bucket bounds, position caps (max 20%), suitability gating, and fund composition rules — all configuration-driven.
SciPy optimize Tangency objective Config-driven constraints
~150 model portfolios
4 Feasibility Handling
Deterministic relaxation when strict constraints can't be met. Every MP is always valid.
Zero violations 12+ months
5 Rebalancing Triggers
Monthly scheduled (customer-specific day) + event-driven rebuilds on universe or risk grade changes.
validated portfolios
6 Customer Matching & Serving
MPs matched to retail banking customers by risk profile, holdings overlap, and theme preferences. Served via real-time API.
5 risk profiles Real-time serving Holdings overlap
sungjun han · 2025