3333MONTECARLO_DEFAULT_INITIAL_INVESTMENT = int (
3434 os .getenv ("MONTECARLO_DEFAULT_INITIAL_INVESTMENT" , 1000 )
3535)
36+ MONTECARLO_DEFAULT_MONTHLY_CONTRIBUTION = int (
37+ os .getenv ("MONTECARLO_DEFAULT_MONTHLY_CONTRIBUTION" , 100 )
38+ )
3639
3740# Configure logging
3841logging .basicConfig (
@@ -1020,7 +1023,10 @@ def _extract_financial_metrics(
10201023 try :
10211024 if profile is None :
10221025 logger .warning ("Profile is None, returning defaults" )
1023- return 5000 , 200
1026+ return (
1027+ MONTECARLO_DEFAULT_INITIAL_INVESTMENT ,
1028+ MONTECARLO_DEFAULT_MONTHLY_CONTRIBUTION ,
1029+ )
10241030
10251031 # Convert profile to dict for agent
10261032 profile_dict = (
@@ -1044,9 +1050,14 @@ def _extract_financial_metrics(
10441050 except Exception as e :
10451051 logger .error ("Error extracting PAC metrics: %s" , str (e ))
10461052 logger .warning (
1047- "PAC METRICS EXTRACTION FAILED - Returning defaults: Initial €5000, Monthly €200"
1053+ "PAC METRICS EXTRACTION FAILED - Returning defaults: Initial €%d, Monthly €%d" ,
1054+ MONTECARLO_DEFAULT_INITIAL_INVESTMENT ,
1055+ MONTECARLO_DEFAULT_MONTHLY_CONTRIBUTION ,
1056+ )
1057+ return (
1058+ MONTECARLO_DEFAULT_INITIAL_INVESTMENT ,
1059+ MONTECARLO_DEFAULT_MONTHLY_CONTRIBUTION ,
10481060 )
1049- return 5000 , 200 # Return defaults
10501061
10511062
10521063def _display_wealth_simulation (
@@ -1070,11 +1081,11 @@ def _display_wealth_simulation(
10701081
10711082 # Display explanation of Long-Term Wealth Projection
10721083 st .markdown (
1073- """
1084+ f """
10741085 **📊 Cos'è questa simulazione?**
10751086
1076- La simulazione utilizza il **Monte Carlo**, un metodo statistico che proietta 1.000 scenari di crescita del portafoglio
1077- su 20 anni, considerando volatilità storica e rendimenti medi. I tre scenari mostrati rappresentano:
1087+ La simulazione utilizza il **Monte Carlo**, un metodo statistico che proietta { MONTECARLO_SIMULATION_SCENARIOS } scenari di crescita del portafoglio
1088+ su { MONTECARLO_SIMULATION_YEARS } anni, considerando volatilità storica e rendimenti medi. I tre scenari mostrati rappresentano:
10781089 - **Pessimistico (10° percentile)**: Solo 1 scenario su 10 avrà risultati peggiori
10791090 - **Atteso (50° percentile)**: Il valore più probabile (mediana)
10801091 - **Ottimistico (75° percentile)**: 3 scenari su 4 rimangono sotto questo valore
@@ -1213,8 +1224,8 @@ def _display_wealth_simulation(
12131224 monthly_contribution ,
12141225 )
12151226 else :
1216- initial_investment = 5000
1217- monthly_contribution = 200
1227+ initial_investment = MONTECARLO_DEFAULT_INITIAL_INVESTMENT
1228+ monthly_contribution = MONTECARLO_DEFAULT_MONTHLY_CONTRIBUTION
12181229 logger .warning (
12191230 "PAC SECTION - Profile is NONE, using default PAC parameters: Initial €%d, Monthly €%d" ,
12201231 initial_investment ,
@@ -1292,7 +1303,7 @@ def _display_wealth_simulation(
12921303 )
12931304
12941305 fig_lump .update_layout (
1295- title = "Lump Sum Investment - 20 -Year Wealth Projection" ,
1306+ title = f "Lump Sum Investment - { MONTECARLO_SIMULATION_YEARS } -Year Wealth Projection" ,
12961307 xaxis_title = "Years" ,
12971308 yaxis_title = "Portfolio Value (€)" ,
12981309 hovermode = "x unified" ,
0 commit comments