205 lines
5.5 KiB
JSON
205 lines
5.5 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "SimulationScorecard",
|
|
"description": "Output contract for sim runs. See docs/12-sim-scorecard.md.",
|
|
"type": "object",
|
|
"required": [
|
|
"scenario",
|
|
"capture_mean",
|
|
"churn_mean",
|
|
"intervention_cost_total",
|
|
"peak_deviation_bps"
|
|
],
|
|
"properties": {
|
|
"scenario": {
|
|
"type": "string"
|
|
},
|
|
"runId": {
|
|
"type": "string"
|
|
},
|
|
"capture_mean": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"capture_p95": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"churn_mean": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"churn_p95": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"churn_max": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"intervention_cost_total": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"intervention_cost_per_1M_volume": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"peak_deviation_bps": {
|
|
"type": "number"
|
|
},
|
|
"reflexive_route_count": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"drain_half_life_epochs": {
|
|
"type": "object",
|
|
"description": "Per (token, chain): epochs until PMM inventory halves under routing pressure",
|
|
"additionalProperties": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
}
|
|
},
|
|
"path_concentration_index": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1,
|
|
"description": "HHI on path shares; high = flow concentrated, low = diversified"
|
|
},
|
|
"arb_volume_total": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Total volume traded by arb step"
|
|
},
|
|
"arb_profit_total": {
|
|
"type": "number",
|
|
"description": "Total approximate arb profit after fees/gas"
|
|
},
|
|
"peak_deviation_bps_pre_arb": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Max pool deviation before arb"
|
|
},
|
|
"peak_deviation_bps_post_arb": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Max pool deviation after arb"
|
|
},
|
|
"peak_deviation_bps_post_bot": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Max pool deviation after bot"
|
|
},
|
|
"intervention_cost_inject_total": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"intervention_cost_withdraw_total": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"intervention_cost_by_chain": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"inject": {
|
|
"type": "number"
|
|
},
|
|
"withdraw": {
|
|
"type": "number"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"micro_trade_count": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"description": "Count of support-lane micro-trades executed during the run"
|
|
},
|
|
"micro_trade_buy_count": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"micro_trade_sell_count": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"micro_trade_volume_total": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Base-token units traded through the support lane"
|
|
},
|
|
"micro_trade_gas_cost_total": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Abstract gas budget consumed by support trades"
|
|
},
|
|
"worst_pool_diagnostic": {
|
|
"type": "object",
|
|
"description": "Last-epoch worst pool at pre_arb, post_arb, post_bot",
|
|
"properties": {
|
|
"pre_arb": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {},
|
|
"deviation_bps": {},
|
|
"I_T_ratio": {},
|
|
"D_effective": {}
|
|
}
|
|
},
|
|
"post_arb": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {},
|
|
"deviation_bps": {},
|
|
"I_T_ratio": {},
|
|
"D_effective": {}
|
|
}
|
|
},
|
|
"post_bot": {
|
|
"type": "object",
|
|
"properties": {
|
|
"key": {},
|
|
"deviation_bps": {},
|
|
"I_T_ratio": {},
|
|
"D_effective": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"capital_efficiency_enabled": {
|
|
"type": "boolean",
|
|
"description": "True when the simulation-only capital efficiency Monte Carlo overlay was run"
|
|
},
|
|
"capital_efficiency_paths": { "type": "integer", "minimum": 1 },
|
|
"capital_efficiency_epochs": { "type": "integer", "minimum": 1 },
|
|
"initial_capital": { "type": "number", "minimum": 0 },
|
|
"alpha": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"leverage": { "type": "number", "minimum": 1 },
|
|
"spread_bps": { "type": "number", "minimum": 0 },
|
|
"volume_efficiency": { "type": "number", "minimum": 0 },
|
|
"pmm_k": { "type": "number", "minimum": 0 },
|
|
"liquidity_target_units": { "type": "number", "minimum": 0 },
|
|
"roi_mean": { "type": "number" },
|
|
"roi_p05": { "type": "number" },
|
|
"roi_p95": { "type": "number" },
|
|
"pnl_distribution": {
|
|
"type": "object",
|
|
"properties": {
|
|
"p05": { "type": "number" },
|
|
"p50": { "type": "number" },
|
|
"p95": { "type": "number" }
|
|
}
|
|
},
|
|
"max_drawdown_p95": { "type": "number", "minimum": 0 },
|
|
"liquidation_probability": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"peg_deviation_frequency": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"external_liquidity_floor_violations": { "type": "integer", "minimum": 0 },
|
|
"volatility_throttle_events": { "type": "integer", "minimum": 0 },
|
|
"spread_adjustment_events": { "type": "integer", "minimum": 0 }
|
|
}
|
|
}
|