Configuration Options¶
Comprehensive reference for all configuration parameters in the Systematic Investment Analysis Framework.
Configuration File Structure¶
All configurations use YAML format with these main sections:
name: "configuration_name"
description: "Configuration description"
universe: # Stock selection criteria
quality: # Financial strength parameters
value: # Valuation criteria
growth: # Growth requirements
risk: # Risk assessment parameters
valuation: # Valuation model settings
max_results: 50 # Output limits
sort_by: "composite_score" # Ranking criteria
Universe Configuration¶
Basic Parameters¶
universe:
region: "US" # Region selection
min_market_cap: 1000 # Minimum market cap ($M)
max_market_cap: 100000 # Maximum market cap ($M)
# Stock list options
custom_tickers: ["AAPL", "GOOGL"] # Specific stocks
pre_screening_universe: "sp500" # Predefined lists
top_n_by_market_cap: 100 # Top N by size
# Sector filtering
sectors: ["Technology", "Healthcare"] # Include sectors
exclude_sectors: ["Utilities"] # Exclude sectors
Region Options¶
Region | Description | Coverage |
---|---|---|
"US" |
United States | S&P 500, major exchanges |
"EU" |
Europe | Major European stocks |
"JP" |
Japan | Major Japanese stocks |
"ALL" |
Global | All available regions |
Predefined Universes¶
Universe | Stocks | Description |
---|---|---|
"sp500" |
~503 | S&P 500 constituents |
"sp100" |
~100 | S&P 100 large caps |
"nasdaq100" |
~100 | NASDAQ 100 tech focus |
Sector Classifications¶
Available sectors for filtering:
- Technology
- Healthcare
- Financial Services
- Consumer Cyclical
- Consumer Defensive
- Communication Services
- Industrials
- Energy
- Basic Materials
- Real Estate
- Utilities
Quality Configuration¶
Financial Strength Metrics¶
quality:
min_roic: 0.12 # Return on Invested Capital
min_roe: 0.15 # Return on Equity
min_current_ratio: 1.2 # Current assets / Current liabilities
max_debt_equity: 0.6 # Total debt / Total equity
min_interest_coverage: 5.0 # EBIT / Interest expense
Parameter Ranges¶
Parameter | Typical Range | Conservative | Aggressive |
---|---|---|---|
min_roic |
0.08 - 0.20 | 0.15+ | 0.08+ |
min_roe |
0.10 - 0.25 | 0.18+ | 0.10+ |
min_current_ratio |
1.0 - 2.0 | 1.5+ | 1.0+ |
max_debt_equity |
0.3 - 1.0 | 0.4 | 0.8 |
min_interest_coverage |
2.0 - 10.0 | 5.0+ | 2.0+ |
Sector Adjustments¶
Different sectors have different normal ranges:
Technology Sector¶
quality:
min_roic: 0.15 # Higher due to asset-light models
min_roe: 0.18 # Expect higher returns
max_debt_equity: 0.3 # Typically low debt
Utilities Sector¶
quality:
min_roic: 0.06 # Lower due to capital intensity
min_roe: 0.10 # Regulated returns
max_debt_equity: 1.2 # Infrastructure requires debt
Value Configuration¶
Valuation Metrics¶
value:
max_pe: 25 # Price / Earnings
max_pb: 3.5 # Price / Book
max_ev_ebitda: 15 # Enterprise Value / EBITDA
max_ev_ebit: 20 # Enterprise Value / EBIT
max_p_fcf: 30 # Price / Free Cash Flow
min_dividend_yield: 0.02 # Minimum dividend yield
Sector-Specific Valuations¶
High Growth Sectors (Technology)¶
value:
max_pe: 35 # Accept higher multiples
max_pb: 8.0 # Growth premium
max_ev_ebitda: 25 # SaaS/platform businesses
Stable Sectors (Utilities/Consumer Staples)¶
value:
max_pe: 20 # Lower multiples expected
max_pb: 2.5 # Asset-based valuation
max_ev_ebitda: 12 # Stable cash flows
Cyclical Sectors (Energy/Materials)¶
value:
max_pe: 15 # Use normalized earnings
max_pb: 1.5 # Book value important
max_ev_ebitda: 8 # Cycle-adjusted multiples
Growth Configuration¶
Growth Metrics¶
growth:
min_revenue_growth: 0.05 # Revenue growth rate
min_earnings_growth: 0.08 # Earnings growth rate
min_fcf_growth: 0.03 # Free cash flow growth
min_book_value_growth: 0.04 # Book value growth
# Advanced options
revenue_consistency: 0.8 # Growth consistency requirement
earnings_quality: 0.7 # Earnings quality threshold
Growth Expectations by Sector¶
High Growth Sectors¶
growth:
min_revenue_growth: 0.15 # 15%+ revenue growth
min_earnings_growth: 0.20 # 20%+ earnings growth
# Technology, Biotech, High-growth consumer
Stable Growth Sectors¶
growth:
min_revenue_growth: 0.03 # 3%+ revenue growth
min_earnings_growth: 0.05 # 5%+ earnings growth
# Utilities, Consumer staples, REITs
Cyclical Sectors¶
growth:
min_revenue_growth: -0.05 # Allow cyclical declines
min_earnings_growth: -0.10 # Volatile earnings acceptable
# Energy, Materials, Industrials
Risk Configuration¶
Risk Assessment Parameters¶
risk:
max_beta: 1.5 # Market risk (volatility)
min_liquidity_ratio: 1.0 # Liquidity requirements
max_concentration_risk: 0.3 # Customer/geographic concentration
cyclical_adjustment: true # Apply sector adjustments
# Advanced risk metrics
max_financial_leverage: 3.0 # Financial risk
min_altman_z_score: 2.5 # Bankruptcy risk
Risk Tolerance Levels¶
Conservative Risk Profile¶
risk:
max_beta: 1.0 # Low volatility
min_liquidity_ratio: 1.5 # Strong liquidity
max_concentration_risk: 0.2 # Diversified revenue
cyclical_adjustment: true # Sector-aware
Moderate Risk Profile¶
risk:
max_beta: 1.3 # Moderate volatility
min_liquidity_ratio: 1.2 # Adequate liquidity
max_concentration_risk: 0.3 # Some concentration OK
cyclical_adjustment: true # Sector-aware
Aggressive Risk Profile¶
risk:
max_beta: 2.0 # High volatility acceptable
min_liquidity_ratio: 1.0 # Basic liquidity only
max_concentration_risk: 0.5 # Higher concentration OK
cyclical_adjustment: false # Raw metrics
Valuation Configuration¶
Model Selection¶
valuation:
models: ["dcf", "rim"] # Valuation models to run
scenarios: ["bear", "base", "bull"] # Scenario analysis
# DCF Model parameters
dcf_years: 10 # Projection years
terminal_growth_rate: 0.025 # Terminal growth (2.5%)
risk_free_rate: 0.04 # Override risk-free rate
market_risk_premium: 0.06 # Equity risk premium
# RIM Model parameters
rim_years: 10 # Projection years
required_return: 0.10 # Required return rate
fade_period: 5 # ROE fade to industry average
Scenario Parameters¶
Conservative (Bear) Scenario¶
valuation:
terminal_growth_rate: 0.02 # 2% terminal growth
market_risk_premium: 0.08 # Higher risk premium
growth_rate_adjustment: 0.5 # 50% of projected growth
Base Scenario¶
valuation:
terminal_growth_rate: 0.025 # 2.5% terminal growth
market_risk_premium: 0.06 # Standard risk premium
growth_rate_adjustment: 1.0 # Full projected growth
Optimistic (Bull) Scenario¶
valuation:
terminal_growth_rate: 0.03 # 3% terminal growth
market_risk_premium: 0.05 # Lower risk premium
growth_rate_adjustment: 1.2 # 120% of projected growth
Output Configuration¶
Results Control¶
max_results: 50 # Maximum stocks in output
sort_by: "composite_score" # Primary sort criterion
generate_reports: true # Generate detailed reports
save_data: true # Save intermediate calculations
# Additional output options
include_failed_stocks: true # Include filtered-out stocks
detailed_scoring: true # Show sub-component scores
sector_analysis: true # Include sector benchmarking
Sort Options¶
Sort Criterion | Description |
---|---|
"composite_score" |
Overall weighted score |
"quality_score" |
Financial strength ranking |
"value_score" |
Valuation attractiveness |
"growth_score" |
Growth prospects |
"market_cap" |
Company size |
"risk_score" |
Risk level (ascending) |
Advanced Configuration¶
Custom Scoring Weights¶
scoring:
quality_weight: 0.30 # 30% of composite score
value_weight: 0.30 # 30% of composite score
growth_weight: 0.25 # 25% of composite score
risk_weight: 0.15 # 15% of composite score
Filtering Thresholds¶
filtering:
min_quality_score: 40 # Minimum quality threshold
min_value_score: 30 # Minimum value threshold
min_growth_score: 20 # Minimum growth threshold
max_risk_score: 80 # Maximum risk threshold
min_composite_score: 50 # Minimum overall threshold
Data Quality Controls¶
data_quality:
min_data_completeness: 0.8 # 80% of metrics must be available
max_data_age_days: 90 # Maximum data staleness
exclude_delisted: true # Remove delisted stocks
exclude_penny_stocks: true # Remove stocks under $5
Configuration Examples¶
Conservative Value Strategy¶
name: "conservative_value"
description: "High-quality companies at reasonable prices"
universe:
pre_screening_universe: "sp500"
min_market_cap: 5000 # Large caps only
quality:
min_roic: 0.15 # Strong returns
min_roe: 0.18
max_debt_equity: 0.4 # Conservative debt
value:
max_pe: 18 # Reasonable multiples
max_pb: 2.5
max_ev_ebitda: 12
growth:
min_revenue_growth: 0.03 # Steady growth
min_earnings_growth: 0.05
risk:
max_beta: 1.1 # Lower volatility
cyclical_adjustment: true
max_results: 25
Aggressive Growth Strategy¶
name: "aggressive_growth"
description: "High-growth companies with expansion potential"
universe:
sectors: ["Technology", "Healthcare", "Consumer Cyclical"]
min_market_cap: 1000
quality:
min_roic: 0.12 # Good returns
min_roe: 0.15
max_debt_equity: 0.8 # Allow more leverage
value:
max_pe: 40 # Accept growth premiums
max_pb: 8.0
max_ev_ebitda: 25
growth:
min_revenue_growth: 0.15 # Strong growth required
min_earnings_growth: 0.20
risk:
max_beta: 1.8 # Accept volatility
cyclical_adjustment: false
max_results: 30
Configuration Validation¶
The framework validates all parameters and provides helpful error messages:
# This will generate validation errors:
quality:
min_roe: 15.0 # ERROR: Should be 0.15 (decimal)
max_debt_equity: -0.5 # ERROR: Cannot be negative
value:
max_pe: 0 # ERROR: Must be positive
Best Practices¶
Parameter Selection¶
- Start with sector benchmarks - Research typical ranges for your target sectors
- Consider market conditions - Adjust for bull/bear markets
- Backtest configurations - Validate historical performance
- Document reasoning - Note why each threshold was chosen
Common Mistakes¶
❌ Using percentage format - Use 0.15 not 15 for 15%
❌ Ignoring sector differences - Tech vs utility expectations
❌ Over-optimization - Fitting criteria to desired results
❌ Static thresholds - Not adjusting for market cycles
Maintenance¶
- Review and update quarterly
- Adjust for changing market conditions
- Monitor results vs. expectations
- Consider sector rotation impacts
Next Steps¶
- Running Analysis - Execute your configuration
- Understanding Results - Interpret the output
- Tutorials - Step-by-step examples