CoolFace
Apppublic

Anushka-stack-queues/FinBench

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
scenarios.py328 linesDownload Raw Back to data
1"""2Pre-defined client scenarios for reproducible evaluation.3Each scenario is designed to stress-test specific advisor capabilities.4"""5 6from ..models import ClientProfile, MarketConditions7 8 9# ── Market Conditions (shared baseline) ───────────────────────────────────────10BASELINE_MARKET = MarketConditions(11    equity_expected_return=0.08,12    bond_expected_return=0.04,13    inflation_rate=0.03,14    interest_rate=0.05,15    market_volatility="medium",16)17 18BEAR_MARKET = MarketConditions(19    equity_expected_return=0.04,20    bond_expected_return=0.035,21    inflation_rate=0.05,22    interest_rate=0.065,23    market_volatility="high",24)25 26# ── Task 1 Scenarios: Portfolio Allocation ────────────────────────────────────27 28TASK1_SCENARIOS = [29    ClientProfile(30        client_id="T1-C01",31        age=62,32        annual_income=85_000,33        net_worth=450_000,34        monthly_expenses=3_500,35        dependents=0,36        risk_tolerance="conservative",37        investment_horizon_years=10,38        existing_portfolio={"equities": 70, "bonds": 20, "cash": 10},39        goals=["preserve capital", "steady retirement income"],40        tax_bracket=0.22,41        has_emergency_fund=True,42        has_insurance=True,43        debt_to_income_ratio=0.10,44    ),45    ClientProfile(46        client_id="T1-C02",47        age=38,48        annual_income=120_000,49        net_worth=200_000,50        monthly_expenses=5_500,51        dependents=2,52        risk_tolerance="moderate",53        investment_horizon_years=25,54        existing_portfolio={"equities": 80, "bonds": 15, "cash": 5},55        goals=["buy second home", "college fund", "retirement"],56        tax_bracket=0.28,57        has_emergency_fund=False,58        has_insurance=True,59        debt_to_income_ratio=0.30,60    ),61    ClientProfile(62        client_id="T1-C03",63        age=27,64        annual_income=75_000,65        net_worth=30_000,66        monthly_expenses=3_800,67        dependents=0,68        risk_tolerance="aggressive",69        investment_horizon_years=35,70        existing_portfolio={},71        goals=["early retirement", "startup investment"],72        tax_bracket=0.22,73        has_emergency_fund=False,74        has_insurance=False,75        debt_to_income_ratio=0.45,76    ),77    ClientProfile(78        client_id="T1-C04",79        age=70,80        annual_income=45_000,81        net_worth=620_000,82        monthly_expenses=4_200,83        dependents=0,84        risk_tolerance="conservative",85        investment_horizon_years=5,86        existing_portfolio={"equities": 85, "bonds": 10, "cash": 5},87        goals=["capital preservation", "income generation"],88        tax_bracket=0.12,89        has_emergency_fund=True,90        has_insurance=True,91        debt_to_income_ratio=0.05,92    ),93    ClientProfile(94        client_id="T1-C05",95        age=50,96        annual_income=200_000,97        net_worth=750_000,98        monthly_expenses=9_000,99        dependents=2,100        risk_tolerance="moderate",101        investment_horizon_years=15,102        existing_portfolio={"equities": 60, "bonds": 25, "real_estate": 15},103        goals=["retirement at 65", "kids college"],104        tax_bracket=0.35,105        has_emergency_fund=False,106        has_insurance=True,107        debt_to_income_ratio=0.22,108    ),109    ClientProfile(110        client_id="T1-C06",111        age=31,112        annual_income=160_000,113        net_worth=90_000,114        monthly_expenses=6_000,115        dependents=0,116        risk_tolerance="aggressive",117        investment_horizon_years=30,118        existing_portfolio={"equities": 100},119        goals=["financial independence", "real estate portfolio"],120        tax_bracket=0.32,121        has_emergency_fund=True,122        has_insurance=False,123        debt_to_income_ratio=0.20,124    ),125]126 127# ── Task 2 Scenarios: Risk Assessment ─────────────────────────────────────────128 129TASK2_SCENARIOS = [130    ClientProfile(131        client_id="T2-C01",132        age=45,133        annual_income=180_000,134        net_worth=800_000,135        monthly_expenses=7_000,136        dependents=2,137        risk_tolerance="moderate",138        investment_horizon_years=20,139        existing_portfolio={"equities": 55, "bonds": 30, "cash": 10, "real_estate": 5},140        goals=["retirement", "education fund"],141        tax_bracket=0.32,142        has_emergency_fund=True,143        has_insurance=True,144        debt_to_income_ratio=0.20,145    ),146    ClientProfile(147        client_id="T2-C02",148        age=55,149        annual_income=95_000,150        net_worth=120_000,151        monthly_expenses=6_800,152        dependents=3,153        risk_tolerance="aggressive",154        investment_horizon_years=10,155        existing_portfolio={"equities": 90, "bonds": 5, "cash": 5},156        goals=["retirement in 10 years"],157        tax_bracket=0.24,158        has_emergency_fund=False,159        has_insurance=False,160        debt_to_income_ratio=0.50,161    ),162    ClientProfile(163        client_id="T2-C03",164        age=32,165        annual_income=52_000,166        net_worth=-15_000,167        monthly_expenses=4_600,168        dependents=1,169        risk_tolerance="aggressive",170        investment_horizon_years=30,171        existing_portfolio={"equities": 100},172        goals=["buy home", "pay off debt"],173        tax_bracket=0.22,174        has_emergency_fund=False,175        has_insurance=False,176        debt_to_income_ratio=0.65,177    ),178    ClientProfile(179        client_id="T2-C04",180        age=29,181        annual_income=82_000,182        net_worth=18_000,183        monthly_expenses=5_900,184        dependents=0,185        risk_tolerance="moderate",186        investment_horizon_years=35,187        existing_portfolio={"equities": 70, "cash": 30},188        goals=["buy first home", "retirement"],189        tax_bracket=0.22,190        has_emergency_fund=False,191        has_insurance=False,192        debt_to_income_ratio=0.42,193    ),194    ClientProfile(195        client_id="T2-C05",196        age=44,197        annual_income=145_000,198        net_worth=480_000,199        monthly_expenses=8_500,200        dependents=2,201        risk_tolerance="moderate",202        investment_horizon_years=21,203        existing_portfolio={"equities": 85, "cash": 15},204        goals=["retirement", "vacation property"],205        tax_bracket=0.32,206        has_emergency_fund=True,207        has_insurance=True,208        debt_to_income_ratio=0.18,209    ),210    ClientProfile(211        client_id="T2-C06",212        age=60,213        annual_income=72_000,214        net_worth=210_000,215        monthly_expenses=6_100,216        dependents=1,217        risk_tolerance="aggressive",218        investment_horizon_years=5,219        existing_portfolio={"equities": 95, "cash": 5},220        goals=["retire at 65"],221        tax_bracket=0.22,222        has_emergency_fund=False,223        has_insurance=False,224        debt_to_income_ratio=0.38,225    ),226]227 228# ── Task 3 Scenarios: Full Financial Plan ─────────────────────────────────────229 230TASK3_SCENARIOS = [231    ClientProfile(232        client_id="T3-C01",233        age=35,234        annual_income=110_000,235        net_worth=150_000,236        monthly_expenses=5_000,237        dependents=1,238        risk_tolerance="moderate",239        investment_horizon_years=30,240        existing_portfolio={"equities": 60, "bonds": 30, "cash": 10},241        goals=["retirement", "child education", "home purchase"],242        tax_bracket=0.28,243        has_emergency_fund=False,244        has_insurance=False,245        debt_to_income_ratio=0.30,246    ),247    ClientProfile(248        client_id="T3-C02",249        age=50,250        annual_income=180_000,251        net_worth=600_000,252        monthly_expenses=9_000,253        dependents=2,254        risk_tolerance="moderate",255        investment_horizon_years=15,256        existing_portfolio={"equities": 70, "bonds": 20, "cash": 10},257        goals=["retirement at 65", "college tuition", "second home"],258        tax_bracket=0.35,259        has_emergency_fund=True,260        has_insurance=True,261        debt_to_income_ratio=0.25,262    ),263    ClientProfile(264        client_id="T3-C03",265        age=28,266        annual_income=78_000,267        net_worth=20_000,268        monthly_expenses=4_200,269        dependents=0,270        risk_tolerance="aggressive",271        investment_horizon_years=35,272        existing_portfolio={"cash": 100},273        goals=["financial independence", "travel", "home purchase"],274        tax_bracket=0.22,275        has_emergency_fund=False,276        has_insurance=False,277        debt_to_income_ratio=0.40,278    ),279    ClientProfile(280        client_id="T3-C04",281        age=42,282        annual_income=135_000,283        net_worth=320_000,284        monthly_expenses=7_500,285        dependents=2,286        risk_tolerance="moderate",287        investment_horizon_years=20,288        existing_portfolio={"equities": 65, "bonds": 20, "cash": 15},289        goals=["retirement", "kids college", "bigger home"],290        tax_bracket=0.24,291        has_emergency_fund=True,292        has_insurance=False,293        debt_to_income_ratio=0.34,294    ),295    ClientProfile(296        client_id="T3-C05",297        age=57,298        annual_income=210_000,299        net_worth=980_000,300        monthly_expenses=11_000,301        dependents=1,302        risk_tolerance="conservative",303        investment_horizon_years=8,304        existing_portfolio={"equities": 55, "bonds": 35, "cash": 10},305        goals=["retire at 65", "healthcare reserve", "legacy planning"],306        tax_bracket=0.35,307        has_emergency_fund=True,308        has_insurance=True,309        debt_to_income_ratio=0.12,310    ),311    ClientProfile(312        client_id="T3-C06",313        age=39,314        annual_income=95_000,315        net_worth=85_000,316        monthly_expenses=6_700,317        dependents=3,318        risk_tolerance="moderate",319        investment_horizon_years=22,320        existing_portfolio={"equities": 50, "cash": 50},321        goals=["retirement", "emergency security", "children education"],322        tax_bracket=0.22,323        has_emergency_fund=False,324        has_insurance=False,325        debt_to_income_ratio=0.48,326    ),327]328