Where model capital is allocated across active weekly and monthly rounds.
CapitalBench Data API
AI model portfolios, active positioning, cumulative allocation behavior, benchmark scores, and proof metadata as structured data.
https://www.capitalbench.org/api GET /v1/positioning/active?track=all&group_by=asset
{
"as_of": "2026-07-17T00:01:23.217Z",
"scope": "active",
"track": "all",
"group_by": "asset",
"portfolio_count": 147,
"data": [
{
"key": "SEMICONDUCTORS",
"label": "Semiconductors",
"ticker": "SMH",
"category": "ai_and_technology",
"allocation_pct": 14.421768707482988,
"model_count": 8,
"round_count": 16,
"tracks": [
"monthly",
"weekly"
],
"models": [
{
"model_id": "openai-gpt-5-5",
"label": "GPT-5.5",
"allocation_pct": 3.5034013605442174
},
{
"model_id": "google-gemini-3-1-pro",
"label": "Gemini 3.1 Pro",
"allocation_pct": 2.891156462585034
}
]
}
]
} Cumulative allocation patterns, risk appetite, and model-level holdings.
Resolved returns, S&P 500 comparisons, max-possible context, and leaderboard history.
Round files, prompt hashes, universe versions, prices, and audit metadata.
Built For Model Positioning Data
Active Exposure
Track where current model portfolios are allocated before the round is scored.
Consensus Signals
See which assets, sectors, and themes multiple models are choosing at the same time.
Model Comparison
Compare model records, current holdings, historical behavior, and risk appetite.
Research Pipelines
Pull round data, proof metadata, and scored returns into internal dashboards or notebooks.
How The Data Is Organized
Only unresolved rounds. Use this for live model positioning.
All saved allocations or all available result history. Use this for model behavior and context.
A fixed model roster scored only on rounds every model in that roster completed.
The newest qualified comparison set for a track. Weekly qualifies at 6 shared rounds; monthly qualifies at 3.
Weekly and monthly rounds stay separate because they measure different horizons.
Portfolio weights aggregated by asset, category, model, or track.
Round files, hashes, timestamps, prompt inputs, prices, and portfolio records.
Model portfolio return minus the S&P 500 return, in percentage points.
Model return relative to the hindsight oracle; cumulative rows divide total model return by total oracle return.
A 0-100 allocation signal calculated from the newest live weekly and monthly AI model portfolios. It does not use prices or returns.
A deterministic model-level profile describing allocation style, concentration, turnover, peer similarity, pattern-report summaries, and resolved performance context.
A deterministic or LLM-assisted finding with source evidence, calculations, confidence, and audience tags.
Resolved rounds included in a comparison set because every set model has an official result.
Authentication And Versioning
Bearer API Keys
API requests use bearer tokens. Credentials are provisioned per organization, and keys can be scoped by use case, rate limit, and data access level.
curl "https://www.capitalbench.org/api/v1/positioning/active?track=all&group_by=asset" \
-H "Authorization: Bearer $CAPITALBENCH_API_KEY" All endpoints use /v1 so downstream pipelines can pin behavior.
Use model_id, round_id, and option_id instead of display names.
List endpoints return next_cursor when more records are available.
Available Resources
Metadata And Evidence
Generated-data coverage, benchmark evidence, and audit records.
/v1/metadata Generated read-model timestamp, source, dataset counts, and endpoint discovery.
/v1/benchmark-evidence Benchmark qualification thresholds, maturity, baselines, and score-scale caveats.
/v1/proof Official proof records across rounds, with hashes and public audit URLs.
Positioning
Where model capital is allocated now and how that has accumulated over time.
/v1/positioning/active Live exposure across unresolved weekly and monthly rounds.
/v1/risk-appetite Current and historical AI Risk Appetite, model agreement, regime mix, and outstanding live-book risk.
/v1/live/performance Live rounds marked to the latest available close; not official final scores.
/v1/live/performance/history Raw interim mark-to-market rows with round, model, published, and pricing filters.
/v1/positioning/cumulative Historical allocation behavior across all available rounds.
/v1/positioning/consensus Assets and categories where model allocations cluster.
/v1/positioning/by-model/{model_id} One model's active or cumulative allocation pattern.
/v1/positioning/by-asset/{option_id} Models allocating to a selected asset.
/v1/positioning/by-category Exposure grouped by sector, region, asset class, or theme.
/v1/positioning/changes Allocation changes between recent rounds.
/v1/allocations Raw official-run allocation rows with track, scope, round, model, and asset filters.
Insights
Readable signals generated from benchmark math, model behavior, positioning, and scored results.
/v1/insights Ranked insight feed with Featured, category, tier, confidence, track, and maturity filters.
/v1/insights/{insight_id} One insight with its supporting calculations and source evidence.
/v1/market-environments Weekly and monthly performance grouped by resolved S&P 500 environment.
/v1/models/{model_id}/market-environments One model's returns, scores, and sample maturity by market environment.
Rounds And Results
The published round record: timing, inputs, model portfolios, prices, max-possible context, and scores.
/v1/rounds Round index with track, status, dates, universe version, and audit links.
/v1/rounds/{round_id} One round's metadata and input hashes.
/v1/rounds/{round_id}/proof One round's official proof record, hashes, and audit URL.
/v1/rounds/{round_id}/portfolios Saved model allocations for a round.
/v1/rounds/{round_id}/concentration Run-level allocation consensus and concentration summary.
/v1/rounds/{round_id}/live-performance Interim mark-to-market rows for an unresolved round.
/v1/rounds/{round_id}/results Resolved portfolio returns, S&P 500 returns, Portfolio Minus S&P 500, regret, and max-possible context.
/v1/results All official scored model results with track, round, and model filters.
/v1/returns Raw official-run asset return rows, including benchmark and cash rows where available.
/v1/leaderboards/latest Most recent scored weekly or monthly leaderboard.
/v1/leaderboards/benchmark-sets Living equal-run comparison sets, including the current weekly and monthly benchmarks.
/v1/leaderboards/benchmark-sets/{set_id} One comparison set with model roster, included rounds, excluded rounds, and CapitalBench Scores.
/v1/leaderboards/cumulative All available resolved model history by track, with unequal histories marked where applicable.
Models And Assets
The entities behind the benchmark: models, holdings, style metrics, and asset metadata.
/v1/models Model list with provider metadata and active status.
/v1/models/{model_id} Model profile and audit links.
/v1/models/{model_id}/holdings Active and historical holdings for one model.
/v1/models/{model_id}/portfolios Portfolio-level model records with rationales, key risks, proof paths, and allocations.
/v1/models/{model_id}/live-performance One model's live return across live rounds.
/v1/models/{model_id}/style Risk appetite and allocation fingerprint metrics.
/v1/models/behavior Canonical model behavior profiles plus the dynamic pattern report, peer comparisons, turnover, concentration, and archetype labels.
/v1/models/patterns Direct access to the dynamic model behavior pattern report used by the comparison page.
/v1/models/{model_id}/behavior One model's behavior profile with methodology and peer-context fields.
/v1/universe/current Current list of valid model choices.
/v1/assets All generated asset metadata, optionally filtered to current or inactive assets.
/v1/assets/{option_id} Asset metadata and ticker mapping.
/v1/assets/{option_id}/model-holders Models holding a selected asset.
Common Queries
Active Allocation By Asset
GET /v1/positioning/active?track=all&group_by=asset
{
"as_of": "2026-07-17T00:01:23.217Z",
"scope": "active",
"track": "all",
"group_by": "asset",
"portfolio_count": 147,
"data": [
{
"key": "SEMICONDUCTORS",
"label": "Semiconductors",
"ticker": "SMH",
"category": "ai_and_technology",
"allocation_pct": 14.421768707482988,
"model_count": 8,
"round_count": 16,
"tracks": [
"monthly",
"weekly"
],
"models": [
{
"model_id": "openai-gpt-5-5",
"label": "GPT-5.5",
"allocation_pct": 3.5034013605442174
},
{
"model_id": "google-gemini-3-1-pro",
"label": "Gemini 3.1 Pro",
"allocation_pct": 2.891156462585034
}
]
}
]
} Which Models Hold An Asset
GET /v1/assets/SEMICONDUCTORS/model-holders?scope=active&track=weekly
{
"as_of": "2026-07-17T00:01:23.217Z",
"scope": "active",
"track": "weekly",
"group_by": "model",
"portfolio_count": 17,
"eligible_portfolio_count": 32,
"holder_portfolio_count": 17,
"holder_rate_pct": 53.125,
"average_holder_allocation_pct": 29.705882352941178,
"consensus_allocation_pct": 15.78125,
"data": [
{
"key": "openai-gpt-5-5",
"label": "GPT-5.5",
"ticker": null,
"category": "OpenAI",
"allocation_pct": 5.588235294117647,
"model_count": 1,
"round_count": 3,
"tracks": [
"weekly"
],
"models": [
{
"model_id": "openai-gpt-5-5",
"label": "GPT-5.5",
"allocation_pct": 5.588235294117647
}
]
}
]
} Live Mark-To-Market
GET /v1/live/performance?track=all
{
"status": "live_not_final",
"latest_price_date": "2026-07-15",
"round_count": 21,
"model_count": 8,
"benchmark": {
"label": "S&P 500",
"return_pct": 1.3036462136144922,
"round_count": 21
},
"data": [
{
"rank": 1,
"model_id": "openai-gpt-5-6-sol",
"label": "GPT-5.6 Sol",
"portfolio_return_pct": -0.6289009840032208,
"sp500_return_pct": 0.3768844867629924,
"alpha_pp": -1.005785470766213,
"live_round_count": 6,
"latest_price_date": "2026-07-15"
}
]
} Current AI Risk Appetite
GET /v1/risk-appetite
{
"methodology_version": "1.0",
"current_decision_pulse": {
"score": 67.3046875,
"label": "Risk-seeking",
"regime": "Inflation-sensitive risk taking",
"weekly": {
"round_id": "CB-2026-07-15-1W",
"decision_date": "2026-07-15",
"decision_deadline_utc": "2026-07-16T07:30:00Z",
"track": "weekly",
"score": 69.015625,
"label": "Risk-seeking",
"model_count": 8,
"portfolio_count": 8,
"models": [
{
"model_id": "openai-gpt-5-5",
"score": 73.625,
"risk_score_1_5": 4.7
},
{
"model_id": "openai-gpt-5-6-sol",
"score": 73.25,
"risk_score_1_5": 4.6
},
{
"model_id": "google-gemini-3-1-pro",
"score": 71.75,
"risk_score_1_5": 4.550000000000001
},
{
"model_id": "anthropic-claude-opus-4-8",
"score": 70.75,
"risk_score_1_5": 3.95
},
{
"model_id": "anthropic-claude-fable-5",
"score": 66.875,
"risk_score_1_5": 4
},
{
"model_id": "xai-grok-4-5",
"score": 66.5,
"risk_score_1_5": 4.3
},
{
"model_id": "xai-grok-4-3",
"score": 66.25,
"risk_score_1_5": 4.5
},
{
"model_id": "anthropic-claude-opus-4-7",
"score": 63.125,
"risk_score_1_5": 3.7
}
],
"regime_shares": {
"real_assets_inflation": 63.125,
"broad_cyclical_equity": 26.875,
"growth_technology": 8.125,
"liquidity_defensive": 1.875
},
"asset_shares": {
"ENERGY": 30,
"OIL": 30,
"FINANCIALS": 14.375,
"BROAD_COMMODITIES": 3.125,
"LARGE_VALUE": 1.875,
"CYBERSECURITY": 1.875,
"AEROSPACE_DEFENSE": 3.75,
"SHORT_TREASURY": 1.875,
"SP500": 4.375,
"REGIONAL_BANKS": 2.5,
"SEMICONDUCTORS": 6.25
}
},
"monthly": {
"round_id": "CB-2026-07-15-1M",
"decision_date": "2026-07-15",
"decision_deadline_utc": "2026-07-16T07:30:00Z",
"track": "monthly",
"score": 65.59375,
"label": "Risk-seeking",
"model_count": 8,
"portfolio_count": 8,
"models": [
{
"model_id": "openai-gpt-5-6-sol",
"score": 70.375,
"risk_score_1_5": 4.25
},
{
"model_id": "xai-grok-4-5",
"score": 70.125,
"risk_score_1_5": 4.25
},
{
"model_id": "xai-grok-4-3",
"score": 67.75,
"risk_score_1_5": 4.3
},
{
"model_id": "anthropic-claude-opus-4-8",
"score": 66.25,
"risk_score_1_5": 3.5
},
{
"model_id": "openai-gpt-5-5",
"score": 63.875,
"risk_score_1_5": 4.4
},
{
"model_id": "google-gemini-3-1-pro",
"score": 63,
"risk_score_1_5": 4.15
},
{
"model_id": "anthropic-claude-opus-4-7",
"score": 62.875,
"risk_score_1_5": 3.65
},
{
"model_id": "anthropic-claude-fable-5",
"score": 60.5,
"risk_score_1_5": 3.5500000000000003
}
],
"regime_shares": {
"real_assets_inflation": 56.875,
"broad_cyclical_equity": 33.125,
"liquidity_defensive": 3.75,
"growth_technology": 4.375,
"defensive_equity": 1.875
},
"asset_shares": {
"ENERGY": 31.875,
"FINANCIALS": 17.5,
"BROAD_COMMODITIES": 3.75,
"LARGE_VALUE": 9.375,
"SHORT_TREASURY": 3.125,
"BIOTECH": 3.125,
"EQUAL_WEIGHT_SP500": 1.875,
"HEALTHCARE": 1.875,
"OIL": 19.375,
"AEROSPACE_DEFENSE": 4.375,
"GOLD": 1.875,
"US_DOLLAR": 0.625,
"CYBERSECURITY": 1.25
}
},
"change_from_previous": -6.59375,
"agreement": {
"label": "Tight",
"standard_deviation": 2.659086261499192,
"range": {
"minimum": 63,
"maximum": 71.8125
}
},
"top_assets": [
{
"option_id": "ENERGY",
"label": "Energy Sector",
"ticker": "XLE",
"allocation_pct": 30.9375,
"risk_on_loading": 0.35,
"regime_group": "real_assets_inflation"
},
{
"option_id": "OIL",
"label": "Crude Oil",
"ticker": "USO",
"allocation_pct": 24.6875,
"risk_on_loading": 0.3,
"regime_group": "real_assets_inflation"
},
{
"option_id": "FINANCIALS",
"label": "Financials Sector",
"ticker": "XLF",
"allocation_pct": 15.9375,
"risk_on_loading": 0.45,
"regime_group": "broad_cyclical_equity"
}
]
},
"outstanding_live_book": {
"score": 73.54632675438597,
"label": "Risk-seeking",
"weekly": {
"track": "weekly",
"score": 72.50390625,
"label": "Risk-seeking",
"model_count": 8,
"portfolio_count": 32,
"round_count": 4,
"models": [
{
"model_id": "anthropic-claude-fable-5",
"score": 68.25,
"portfolio_count": 4
},
{
"model_id": "anthropic-claude-opus-4-7",
"score": 69.9375,
"portfolio_count": 4
},
{
"model_id": "anthropic-claude-opus-4-8",
"score": 69.1875,
"portfolio_count": 4
},
{
"model_id": "google-gemini-3-1-pro",
"score": 75.875,
"portfolio_count": 4
},
{
"model_id": "openai-gpt-5-5",
"score": 76.03125,
"portfolio_count": 4
},
{
"model_id": "openai-gpt-5-6-sol",
"score": 74.53125,
"portfolio_count": 4
},
{
"model_id": "xai-grok-4-3",
"score": 71.90625,
"portfolio_count": 4
},
{
"model_id": "xai-grok-4-5",
"score": 74.3125,
"portfolio_count": 4
}
]
},
"monthly": {
"track": "monthly",
"score": 74.58874725877195,
"label": "Risk-seeking",
"model_count": 8,
"portfolio_count": 115,
"round_count": 19,
"models": [
{
"model_id": "anthropic-claude-fable-5",
"score": 71.1875,
"portfolio_count": 10
},
{
"model_id": "anthropic-claude-opus-4-7",
"score": 70.4407894736842,
"portfolio_count": 19
},
{
"model_id": "anthropic-claude-opus-4-8",
"score": 69.98684210526316,
"portfolio_count": 19
},
{
"model_id": "google-gemini-3-1-pro",
"score": 71.21052631578948,
"portfolio_count": 19
},
{
"model_id": "openai-gpt-5-5",
"score": 83.6907894736842,
"portfolio_count": 19
},
{
"model_id": "openai-gpt-5-6-sol",
"score": 77.03125,
"portfolio_count": 4
},
{
"model_id": "xai-grok-4-3",
"score": 75.57894736842105,
"portfolio_count": 19
},
{
"model_id": "xai-grok-4-5",
"score": 77.58333333333333,
"portfolio_count": 6
}
]
},
"portfolio_count": 147,
"round_count": 23
},
"history": {
"decision_pulse": [
{
"date": "2026-07-14",
"combined_score": 73.8984375,
"label": "Risk-seeking",
"weekly_score": 73.21875,
"monthly_score": 74.578125,
"weekly_round_id": "CB-2026-07-14-1W",
"monthly_round_id": "CB-2026-07-14-1M",
"model_count": 8,
"agreement_label": "Tight",
"agreement_standard_deviation": 4.408901850500162,
"agreement_range": {
"minimum": 68.5625,
"maximum": 82.75
},
"top_regime": {
"key": "real_assets_inflation",
"label": "Real assets and inflation",
"allocation_pct": 41.875
},
"top_assets": [
{
"option_id": "ENERGY",
"label": "Energy Sector",
"ticker": "XLE",
"allocation_pct": 26.875,
"risk_on_loading": 0.35,
"regime_group": "real_assets_inflation"
},
{
"option_id": "FINANCIALS",
"label": "Financials Sector",
"ticker": "XLF",
"allocation_pct": 24.375,
"risk_on_loading": 0.45,
"regime_group": "broad_cyclical_equity"
},
{
"option_id": "SEMICONDUCTORS",
"label": "Semiconductors",
"ticker": "SMH",
"allocation_pct": 14.6875,
"risk_on_loading": 0.95,
"regime_group": "growth_technology"
},
{
"option_id": "OIL",
"label": "Crude Oil",
"ticker": "USO",
"allocation_pct": 14.0625,
"risk_on_loading": 0.3,
"regime_group": "real_assets_inflation"
},
{
"option_id": "CYBERSECURITY",
"label": "Cybersecurity",
"ticker": "CIBR",
"allocation_pct": 6.875,
"risk_on_loading": 0.75,
"regime_group": "growth_technology"
}
],
"regime_exposure": [
{
"key": "real_assets_inflation",
"label": "Real assets and inflation",
"allocation_pct": 41.875
},
{
"key": "broad_cyclical_equity",
"label": "Broad and cyclical equity",
"allocation_pct": 30.625
},
{
"key": "growth_technology",
"label": "Growth and technology",
"allocation_pct": 25.3125
},
{
"key": "liquidity_defensive",
"label": "Cash and defensive FX",
"allocation_pct": 1.5625
},
{
"key": "defensive_equity",
"label": "Defensive equity",
"allocation_pct": 0.625
}
]
},
{
"date": "2026-07-15",
"combined_score": 67.3046875,
"label": "Risk-seeking",
"weekly_score": 69.015625,
"monthly_score": 65.59375,
"weekly_round_id": "CB-2026-07-15-1W",
"monthly_round_id": "CB-2026-07-15-1M",
"model_count": 8,
"agreement_label": "Tight",
"agreement_standard_deviation": 2.659086261499192,
"agreement_range": {
"minimum": 63,
"maximum": 71.8125
},
"top_regime": {
"key": "real_assets_inflation",
"label": "Real assets and inflation",
"allocation_pct": 60
},
"top_assets": [
{
"option_id": "ENERGY",
"label": "Energy Sector",
"ticker": "XLE",
"allocation_pct": 30.9375,
"risk_on_loading": 0.35,
"regime_group": "real_assets_inflation"
},
{
"option_id": "OIL",
"label": "Crude Oil",
"ticker": "USO",
"allocation_pct": 24.6875,
"risk_on_loading": 0.3,
"regime_group": "real_assets_inflation"
},
{
"option_id": "FINANCIALS",
"label": "Financials Sector",
"ticker": "XLF",
"allocation_pct": 15.9375,
"risk_on_loading": 0.45,
"regime_group": "broad_cyclical_equity"
},
{
"option_id": "LARGE_VALUE",
"label": "US Large-Cap Value",
"ticker": "IWD",
"allocation_pct": 5.625,
"risk_on_loading": 0.3,
"regime_group": "broad_cyclical_equity"
},
{
"option_id": "AEROSPACE_DEFENSE",
"label": "Aerospace and Defense",
"ticker": "ITA",
"allocation_pct": 4.0625,
"risk_on_loading": 0.45,
"regime_group": "broad_cyclical_equity"
}
],
"regime_exposure": [
{
"key": "real_assets_inflation",
"label": "Real assets and inflation",
"allocation_pct": 60
},
{
"key": "broad_cyclical_equity",
"label": "Broad and cyclical equity",
"allocation_pct": 30
},
{
"key": "growth_technology",
"label": "Growth and technology",
"allocation_pct": 6.25
},
{
"key": "liquidity_defensive",
"label": "Cash and defensive FX",
"allocation_pct": 2.8125
},
{
"key": "defensive_equity",
"label": "Defensive equity",
"allocation_pct": 0.9375
}
]
}
],
"outstanding_live_book": [
{
"date": "2026-07-14",
"score": 74.65859375,
"label": "Risk-seeking",
"weekly_score": 73.10312499999999,
"monthly_score": 76.2140625,
"portfolio_count": 161,
"round_count": 26,
"weekly_portfolio_count": 44,
"monthly_portfolio_count": 117,
"weekly_round_count": 6,
"monthly_round_count": 20
},
{
"date": "2026-07-15",
"score": 74.4678199404762,
"label": "Risk-seeking",
"weekly_score": 73.66276041666667,
"monthly_score": 75.27287946428572,
"portfolio_count": 171,
"round_count": 27,
"weekly_portfolio_count": 46,
"monthly_portfolio_count": 125,
"weekly_round_count": 6,
"monthly_round_count": 21
}
]
}
} Insight Feed
GET /v1/insights?limit=3
{
"engine_version": "deterministic_insights_v3",
"generated_at": "2026-07-17T00:00:27Z",
"data_as_of": "2026-07-16",
"insight_count": 29,
"categories": [
"benchmark_difficulty",
"confidence_calibration",
"consensus_performance",
"current_positioning",
"horizon_agreement",
"live_performance",
"market_environment",
"model_behavior",
"model_similarity",
"oracle_comparison",
"performance_attribution",
"risk_regime"
],
"data": [
{
"id": "consensus-performance-CB-2026-07-09-1W",
"category": "consensus_performance",
"title": "AI consensus portfolio scored -39.4 versus the oracle",
"summary": "If the weekly model allocations were averaged into one consensus portfolio, it returned -3.72% versus -0.13% for the S&P 500 and +9.44% for the hindsight best asset.",
"why_it_matters": "The consensus portfolio tests whether the combined AI view is more useful than any single model's portfolio or the S&P 500 benchmark.",
"confidence": "high",
"source_type": "deterministic",
"importance_score": 92,
"evidence": [
{
"href": "/rounds/CB-2026-07-09-1W",
"label": "Weekly result",
"source": "rounds/CB-2026-07-09-1W/runs/official-20260709/results"
}
]
},
{
"id": "consensus-performance-CB-2026-06-16-1M",
"category": "consensus_performance",
"title": "AI consensus portfolio scored -58.0 versus the oracle",
"summary": "If the monthly model allocations were averaged into one consensus portfolio, it returned -7.20% versus +0.31% for the S&P 500 and +12.42% for the hindsight best asset.",
"why_it_matters": "The consensus portfolio tests whether the combined AI view is more useful than any single model's portfolio or the S&P 500 benchmark.",
"confidence": "high",
"source_type": "deterministic",
"importance_score": 92,
"evidence": [
{
"href": "/rounds/CB-2026-06-16-1M",
"label": "Monthly result",
"source": "rounds/CB-2026-06-16-1M/runs/official-20260616-no-fable/results"
}
]
},
{
"id": "benchmark-difficulty-CB-2026-07-09-1W",
"category": "benchmark_difficulty",
"title": "Weekly round had +21.02% asset dispersion",
"summary": "The best scored asset returned +9.44%, the worst returned -11.58%, and +44.29% of the universe was positive. The S&P 500 ranked 38 out of 70 options.",
"why_it_matters": "Benchmark difficulty matters because model scores should be interpreted against the opportunity set and the market window they faced.",
"confidence": "high",
"source_type": "deterministic",
"importance_score": 90,
"evidence": [
{
"href": "/rounds/CB-2026-07-09-1W",
"label": "Weekly result",
"source": "rounds/CB-2026-07-09-1W/runs/official-20260709/results/returns.csv"
}
]
}
]
} Model Behavior Profiles
GET /v1/models/behavior
{
"version": "model_behavior_v1",
"generated_at": "2026-07-17T00:01:23.186Z",
"data_as_of": "2026-07-15",
"summary": {
"model_count": 8,
"portfolio_count": 375,
"resolved_result_count": 228,
"highest_risk_model_id": "openai-gpt-5-5",
"most_concentrated_model_id": "xai-grok-4-3",
"most_defensive_model_id": "anthropic-claude-opus-4-7",
"most_consensus_aligned_model_id": "openai-gpt-5-6-sol",
"most_distinctive_model_id": "google-gemini-3-1-pro",
"lowest_turnover_model_id": "openai-gpt-5-5"
},
"profiles": [
{
"model_id": "anthropic-claude-fable-5",
"label": "Claude Fable 5",
"archetype": {
"label": "Balanced allocator",
"description": "Shows a mixed profile without one dominant allocation behavior standing out yet.",
"confidence": "medium"
},
"sample": {
"portfolio_count": 25,
"weekly_portfolio_count": 13,
"monthly_portfolio_count": 12,
"active_portfolio_count": 14,
"resolved_round_count": 11,
"first_round_id": "CB-2026-06-09-1M",
"latest_round_id": "CB-2026-07-15-1W"
},
"metrics": {
"average_risk_pulse": 70.495,
"average_top_allocation_pct": 28.2,
"defensive_pct": 9.4
},
"peer": {
"average_peer_similarity": 0.6139022546919229,
"similarity_observation_count": 145,
"outlier_round_count": 1,
"closest_peer": {
"peer_model_id": "openai-gpt-5-6-sol",
"average_similarity": 0.7136544976474106,
"shared_round_count": 8
}
},
"turnover": {
"average_turnover_pct": 58.26086956521739,
"weekly_turnover_pct": 60.833333333333336,
"monthly_turnover_pct": 55.45454545454545,
"turnover_observation_count": 23
}
}
],
"pattern_report": {
"version": "model_behavior_pattern_report_v1",
"data_as_of": "2026-07-15",
"data_fingerprint": "dfc247749d1a4f8038b066329b32e556e0041b21a4993d4fd1c462bd5363480b",
"llm_provenance": {
"status": "deterministic_source_of_truth",
"provider": "nvidia_nim",
"prompt_version": "capitalbench_model_patterns_prompt_v1",
"input_contract_version": "capitalbench_model_patterns_llm_input_v1",
"output_contract_version": "capitalbench_model_patterns_llm_output_v1",
"rule": "NVIDIA may rewrite summaries only from supplied metrics; deterministic rows remain the source of truth."
},
"rows": [
{
"model_id": "openai-gpt-5-5",
"label": "GPT-5.5",
"behavior_summary": "Most aggressive allocation profile. It averages 84.2 / 100 risk-taking, 92.3% high-risk exposure, and only 1.0% defensive ballast. Results have been fragile, with 18 last-place finishes.",
"traits": [
{
"key": "highest_risk",
"label": "Highest risk-taking",
"evidence": "84.2 / 100 average risk-taking score.",
"metric_keys": [
"risk_taking_score"
]
},
{
"key": "lowest_turnover",
"label": "Lowest turnover",
"evidence": "46.1% average turnover.",
"metric_keys": [
"average_turnover_pct"
]
},
{
"key": "technology_tilt",
"label": "Technology tilt",
"evidence": "45.1% average technology-linked allocation.",
"metric_keys": [
"tech_pct"
]
}
],
"key_numbers": {
"risk_taking_score": 84.24,
"average_holding_count": 4.85,
"average_top_allocation_pct": 36.72,
"high_risk_pct": 92.31,
"defensive_pct": 0.97,
"tech_pct": 45.07,
"cash_duration_pct": 1.04,
"international_pct": 14.25,
"real_assets_pct": 14.48,
"peer_similarity": 0.5706,
"outlier_round_count": 17,
"average_turnover_pct": 46.08,
"average_rank": 3.77,
"first_place_count": 6,
"last_place_count": 18,
"beat_sp500_count": 14,
"beat_sp500_rate_pct": 31.82,
"average_alpha_pp": -1.7946,
"average_capitalbench_score": -25.56,
"resolved_round_count": 44,
"portfolio_count": 67
},
"top_assets": [
{
"option_id": "SEMICONDUCTORS",
"label": "Semiconductors",
"ticker": "SMH",
"category": "ai_and_technology",
"average_allocation_pct": 25.223880597014926,
"frequency_pct": 77.61194029850746,
"display": "Semiconductors (SMH)"
},
{
"option_id": "BIOTECH",
"label": "Biotechnology",
"ticker": "XBI",
"category": "healthcare_and_biotech",
"average_allocation_pct": 9.17910447761194,
"frequency_pct": 46.26865671641791,
"display": "Biotechnology (XBI)"
},
{
"option_id": "OIL",
"label": "Crude Oil",
"ticker": "USO",
"category": "commodities",
"average_allocation_pct": 7.537313432835821,
"frequency_pct": 26.865671641791046,
"display": "Crude Oil (USO)"
}
]
}
]
}
} Latest Scored Test
GET /v1/leaderboards/latest?track=weekly
{
"track": "weekly",
"round_id": "CB-2026-07-09-1W",
"data": [
{
"rank": 1,
"model_id": "anthropic-claude-opus-4-8",
"label": "Claude Opus 4.8",
"portfolio_return_pct": -2.1363034299739168,
"benchmark_return_pct": -0.13170264380115704,
"alpha_pp": -2.0046007861727597,
"max_possible_return_pct": 9.439500963214375,
"capitalbench_score": -22.63152933930582
}
]
} Benchmark Comparison Sets
GET /v1/leaderboards/benchmark-sets?track=weekly
{
"policy": {
"version": "benchmark_sets_v1",
"qualification_thresholds": {
"weekly": 6,
"monthly": 3
}
},
"current": {
"weekly": "weekly-set-2026-06-09",
"monthly": "monthly-set-2026-05-28"
},
"sets": [
{
"set_id": "weekly-set-2026-07-10",
"label": "Weekly Set: Jul 10, 2026",
"track": "weekly",
"status": "waiting",
"is_current": false,
"is_qualified": false,
"qualification_threshold": 6,
"comparison": {
"mode": "comparison_set",
"completed_round_count": 0,
"completed_round_ids": [],
"comparison_round_count": 0,
"comparison_round_ids": [],
"comparison_model_count": 8,
"is_early_cohort": true,
"excluded_round_count": 0,
"excluded_round_ids": [],
"qualification_threshold": 6,
"is_qualified": false,
"is_current": false,
"status": "waiting"
},
"leader": null
}
]
} One Comparison Set
GET /v1/leaderboards/benchmark-sets/weekly-set-2026-07-10
{
"set_id": "weekly-set-2026-07-10",
"label": "Weekly Set: Jul 10, 2026",
"track": "weekly",
"model_ids": [
"anthropic-claude-fable-5",
"anthropic-claude-opus-4-7",
"anthropic-claude-opus-4-8",
"google-gemini-3-1-pro",
"openai-gpt-5-5",
"openai-gpt-5-6-sol",
"xai-grok-4-3",
"xai-grok-4-5"
],
"comparison": {
"mode": "comparison_set",
"completed_round_count": 0,
"completed_round_ids": [],
"comparison_round_count": 0,
"comparison_round_ids": [],
"comparison_model_count": 8,
"is_early_cohort": true,
"excluded_round_count": 0,
"excluded_round_ids": [],
"qualification_threshold": 6,
"is_qualified": false,
"is_current": false,
"status": "waiting"
},
"excluded_rounds": [],
"data": []
} Run Concentration
GET /v1/rounds/CB-2026-07-15-1W/concentration
{
"round_id": "CB-2026-07-15-1W",
"track": "weekly",
"model_count": 8,
"portfolio_count": 8,
"summary": {
"top_asset_share_pct": 30,
"top_three_share_pct": 74.375,
"effective_asset_count": 4.749536178107606
},
"assets": [
{
"option_id": "OIL",
"label": "Crude Oil",
"ticker": "USO",
"category": "commodities",
"allocation_pct": 30,
"model_count": 7,
"models": [
{
"model_id": "xai-grok-4-3",
"label": "Grok 4.3",
"provider": "xai",
"allocation_pct": 6.25
},
{
"model_id": "openai-gpt-5-5",
"label": "GPT-5.5",
"provider": "openai",
"allocation_pct": 5.625
}
]
}
]
} Important Fields
| Field | Meaning |
|---|---|
allocation_pct | Portfolio or aggregate weight, in percentage points. |
alpha_pp | Portfolio Minus S&P 500, in percentage points. |
capitalbench_score | Oracle-relative score where 100 matches the maximum possible return, 0 means no return, and negative values represent losses. |
comparison | Cumulative leaderboard metadata showing included resolved rounds, test counts, and aggregation mode. |
effective_asset_count | Concentration metric equal to one divided by summed squared asset shares. |
max_possible_return_pct | Highest realized return among scored options in the saved universe; cumulative rows report the average per-test oracle return as supporting context. |
importance_score | 0-100 editorial ranking used to order public insights by usefulness and urgency. |
average_peer_similarity | Average cosine similarity between one model's portfolio weights and peer portfolio weights in the same official rounds. |
average_turnover_pct | Average round-to-round portfolio change, calculated as one-half of summed absolute allocation changes. |
archetype | Rule-based model behavior label with a plain-English description and confidence level. |
model_id | Stable CapitalBench model identifier. |
next_cursor | Pagination cursor returned when more records are available. |
option_id | Stable asset identifier from the saved universe. |
pattern_report | Dynamic model behavior comparison report with one row per model, deterministic traits, key numbers, comparative findings, freshness metadata, and NVIDIA prompt provenance. |
portfolio_count | Number of model portfolios included in an aggregate calculation. |
eligible_portfolio_count | All portfolios considered before filtering to holders of a requested asset. |
holder_portfolio_count | Eligible portfolios with a non-zero allocation to a requested asset. |
holder_rate_pct | Share of eligible portfolios holding a requested asset. |
average_holder_allocation_pct | Average asset weight among portfolios that hold it. |
consensus_allocation_pct | Average asset weight across the full eligible cohort, with non-holders counted as zero. |
row_count | Total number of records matching a list endpoint before pagination. |
risk_on_loading | Versioned asset loading from -1 defensive to +1 risk seeking, used by AI Risk Appetite. |
risk_score_1_5 | Standalone asset-risk rating used by the existing historical model profile. |
round_id | Stable test identifier for one weekly or monthly round. |
scope | active or cumulative. |
top_asset_share_pct | Average share of the round allocated to the largest asset. |
track | weekly, monthly, or all. |
proof | Hashes and URLs for public verification artifacts. |
Status Codes
| Status | Meaning |
|---|---|
200 | Request succeeded. |
400 | Invalid parameter, invalid cursor, or malformed request. |
401 | Missing, expired, or invalid API key. |
403 | The API key is valid but lacks the required scope. |
404 | Requested model, round, or asset was not found. |
429 | Rate limit exceeded. |
500 | Temporary service error. |
Publication Rules
Active-position endpoints update when a new public weekly or monthly round is registered. Result endpoints update after the round closes, end prices are collected, and the scored output is published.
- Weekly and monthly tests remain separate in scoring and cumulative views.
- Completed rounds stop contributing to active exposure and remain in cumulative history.
- Audit links expose the saved files, hashes, universe version, model outputs, and price records.
Request API Access
API credentials are provisioned directly for research teams, funds, data partners, and builders using CapitalBench model-positioning data.