Monte Carlo simulation engine skill for probabilistic modeling, risk quantification, and uncertainty propagation
The Monte Carlo Engine skill provides comprehensive probabilistic simulation capabilities for quantifying uncertainty, assessing risk, and propagating variability through complex models. It supports multiple sampling strategies, correlation handling, and statistical analysis of simulation outputs for data-driven decision support.
# Define input distributions
input_variables = {
"revenue": {
"distribution": "triangular",
"parameters": {"min": 800000, "mode": 1000000, "max": 1500000}
},
"cost": {
"distribution": "normal",
"parameters": {"mean": 600000, "std": 50000}
},
"market_share": {
"distribution": "PERT",
"parameters": {"min": 0.05, "mode": 0.10, "max": 0.20}
},
"unit_price": {
"distribution": "uniform",
"parameters": {"min": 45, "max": 55}
}
}
# Define correlations between variables
correlations = {
"variables": ["revenue", "cost", "market_share"],
"matrix": [
[1.0, 0.6, 0.3], # revenue correlations
[0.6, 1.0, 0.2], # cost correlations
[0.3, 0.2, 1.0] # market_share correlations
]
}
# Define the model to simulate
def profit_model(inputs):
revenue = inputs["revenue"]
cost = inputs["cost"]
profit = revenue - cost
return {"profit": profit, "margin": profit / revenue}
The skill monitors:
{
"input_variables": {
"variable_name": {
"distribution": "string",
"parameters": "object"
}
},
"correlations": {
"variables": ["string"],
"matrix": "2D array"
},
"model": "function or expression",
"simulation_options": {
"iterations": "number",
"sampling_method": "random|lhs|quasi_mc",
"random_seed": "number",
"parallel": "boolean",
"convergence_threshold": "number"
},
"output_options": {
"percentiles": ["number"],
"risk_metrics": ["VaR", "CVaR"],
"confidence_level": "number"
}
}
{
"summary_statistics": {
"output_variable": {
"mean": "number",
"std": "number",
"median": "number",
"min": "number",
"max": "number",
"percentiles": "object"
}
},
"risk_metrics": {
"VaR": "number",
"CVaR": "number",
"probability_of_loss": "number"
},
"convergence_info": {
"iterations_run": "number",
"converged": "boolean",
"stability_scores": "object"
},
"raw_results": "array (optional)",
"tornado_data": "object",
"visualization_paths": ["string"]
}