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-08-30T22:52:53.207Z",
"scope": "active",
"track": "all",
"group_by": "asset",
"portfolio_count": 177,
"data": [
{
"key": "SP500",
"label": "S&P 500",
"ticker": "SPY",
"category": "us_broad_market",
"allocation_pct": 24.039548022598858,
"model_count": 8,
"round_count": 23,
"tracks": [
"monthly",
"weekly"
],
"models": [
{
"model_id": "xai-grok-4-6",
"label": "Grok 4.6",
"allocation_pct": 6.94915254237288
},
{
"model_id": "xai-grok-4-3",
"label": "Grok 4.3",
"allocation_pct": 5.7909604519774005
}
]
}
]
} 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, Portfolio Difference, concentration, turnover, pattern-report summaries, and resolved performance context.
A 0-100 score showing how much allocation would need to change to match the average portfolio selected by the other models in the same rounds.
A 0-100 behavior score showing how much portfolio weight went to assets that had already outperformed before the decision cutoff. The combined value gives monthly and weekly behavior equal weight and does not use future returns.
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 Portfolio Difference, recent-winner tilt, 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 Portfolio Difference, recent-winner tilt, 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-08-30T22:52:53.207Z",
"scope": "active",
"track": "all",
"group_by": "asset",
"portfolio_count": 177,
"data": [
{
"key": "SP500",
"label": "S&P 500",
"ticker": "SPY",
"category": "us_broad_market",
"allocation_pct": 24.039548022598858,
"model_count": 8,
"round_count": 23,
"tracks": [
"monthly",
"weekly"
],
"models": [
{
"model_id": "xai-grok-4-6",
"label": "Grok 4.6",
"allocation_pct": 6.94915254237288
},
{
"model_id": "xai-grok-4-3",
"label": "Grok 4.3",
"allocation_pct": 5.7909604519774005
}
]
}
]
} Which Models Hold An Asset
GET /v1/assets/SEMICONDUCTORS/model-holders?scope=active&track=weekly
{
"as_of": "2026-08-30T22:52:53.207Z",
"scope": "active",
"track": "weekly",
"group_by": "model",
"portfolio_count": 7,
"eligible_portfolio_count": 42,
"holder_portfolio_count": 7,
"holder_rate_pct": 16.666666666666664,
"average_holder_allocation_pct": 34.285714285714285,
"consensus_allocation_pct": 5.714285714285714,
"data": [
{
"key": "anthropic-claude-fable-5",
"label": "Claude Fable 5",
"ticker": null,
"category": "Anthropic",
"allocation_pct": 10,
"model_count": 1,
"round_count": 2,
"tracks": [
"weekly"
],
"models": [
{
"model_id": "anthropic-claude-fable-5",
"label": "Claude Fable 5",
"allocation_pct": 10
}
]
}
]
} Live Mark-To-Market
GET /v1/live/performance?track=all
{
"status": "live_not_final",
"latest_price_date": "2026-08-28",
"round_count": 20,
"model_count": 9,
"benchmark": {
"label": "S&P 500",
"return_pct": 0.22459417570850518,
"round_count": 20
},
"data": [
{
"rank": 1,
"model_id": "openai-gpt-5-5",
"label": "GPT-5.5",
"portfolio_return_pct": 0.999737303929479,
"sp500_return_pct": 0.2558731341089156,
"alpha_pp": 0.7438641698205634,
"live_round_count": 6,
"latest_price_date": "2026-08-28"
}
]
} Current AI Risk Appetite
GET /v1/risk-appetite
{
"methodology_version": "1.0",
"current_decision_pulse": {
"score": 68.5,
"label": "Risk-seeking",
"regime": "Selective risk taking",
"weekly": {
"round_id": "CB-2026-08-30-1W",
"decision_date": "2026-08-30",
"decision_deadline_utc": "2026-08-31T13:25:00Z",
"track": "weekly",
"score": 57.535714285714285,
"label": "Balanced",
"model_count": 7,
"portfolio_count": 7,
"models": [
{
"model_id": "xai-grok-4-3",
"score": 67.5,
"risk_score_1_5": 3
},
{
"model_id": "xai-grok-4-6",
"score": 67.5,
"risk_score_1_5": 3
},
{
"model_id": "openai-gpt-5-6-sol",
"score": 64,
"risk_score_1_5": 4.05
},
{
"model_id": "anthropic-claude-fable-5",
"score": 57.75,
"risk_score_1_5": 3.9499999999999997
},
{
"model_id": "google-gemini-3-1-pro",
"score": 52.375,
"risk_score_1_5": 4.05
},
{
"model_id": "xai-grok-4-5",
"score": 47.125,
"risk_score_1_5": 3.3499999999999996
},
{
"model_id": "anthropic-claude-opus-5",
"score": 46.5,
"risk_score_1_5": 3.3499999999999996
}
],
"regime_shares": {
"real_assets_inflation": 48.57142857142857,
"international_equity": 9.285714285714285,
"defensive_equity": 13.571428571428571,
"broad_cyclical_equity": 28.571428571428573
},
"asset_shares": {
"SILVER": 25,
"GOLD": 18.57142857142857,
"SOUTH_AFRICA": 9.285714285714285,
"HEALTHCARE": 13.571428571428571,
"OIL": 5,
"SP500": 28.571428571428573
}
},
"monthly": {
"round_id": "CB-2026-08-30-1M",
"decision_date": "2026-08-30",
"decision_deadline_utc": "2026-08-31T13:25:00Z",
"track": "monthly",
"score": 79.46428571428571,
"label": "Risk-seeking",
"model_count": 7,
"portfolio_count": 7,
"models": [
{
"model_id": "anthropic-claude-fable-5",
"score": 90.375,
"risk_score_1_5": 4.7
},
{
"model_id": "openai-gpt-5-6-sol",
"score": 90.375,
"risk_score_1_5": 4.7
},
{
"model_id": "xai-grok-4-5",
"score": 82.125,
"risk_score_1_5": 4.35
},
{
"model_id": "anthropic-claude-opus-5",
"score": 80.625,
"risk_score_1_5": 4.05
},
{
"model_id": "xai-grok-4-3",
"score": 75.375,
"risk_score_1_5": 3.7
},
{
"model_id": "google-gemini-3-1-pro",
"score": 69.875,
"risk_score_1_5": 4
},
{
"model_id": "xai-grok-4-6",
"score": 67.5,
"risk_score_1_5": 3
}
],
"regime_shares": {
"broad_cyclical_equity": 80.00000000000001,
"growth_technology": 10,
"defensive_equity": 5,
"international_equity": 5
},
"asset_shares": {
"REGIONAL_BANKS": 25,
"SEMICONDUCTORS": 10,
"SMALL_VALUE": 18.57142857142857,
"SP500": 27.85714285714286,
"UTILITIES": 5,
"BRAZIL": 5,
"AEROSPACE_DEFENSE": 4.285714285714286,
"REAL_ESTATE": 4.285714285714286
}
},
"change_from_previous": -0.6607142857142776,
"agreement": {
"label": "Mixed",
"standard_deviation": 5.474983692082692,
"range": {
"minimum": 61.125,
"maximum": 77.1875
}
},
"top_assets": [
{
"option_id": "SP500",
"label": "S&P 500",
"ticker": "SPY",
"allocation_pct": 28.214285714285715,
"risk_on_loading": 0.35,
"regime_group": "broad_cyclical_equity"
},
{
"option_id": "REGIONAL_BANKS",
"label": "Regional Banks",
"ticker": "KRE",
"allocation_pct": 12.5,
"risk_on_loading": 0.8,
"regime_group": "broad_cyclical_equity"
},
{
"option_id": "SILVER",
"label": "Silver",
"ticker": "SLV",
"allocation_pct": 12.5,
"risk_on_loading": 0.05,
"regime_group": "real_assets_inflation"
}
]
},
"outstanding_live_book": {
"score": 75.02050264550265,
"label": "Risk-seeking",
"weekly": {
"track": "weekly",
"score": 76.80952380952381,
"label": "Risk-seeking",
"model_count": 7,
"portfolio_count": 42,
"round_count": 6,
"models": [
{
"model_id": "anthropic-claude-fable-5",
"score": 78.1875,
"portfolio_count": 6
},
{
"model_id": "anthropic-claude-opus-5",
"score": 76.91666666666667,
"portfolio_count": 6
},
{
"model_id": "google-gemini-3-1-pro",
"score": 79.41666666666667,
"portfolio_count": 6
},
{
"model_id": "openai-gpt-5-6-sol",
"score": 80.5625,
"portfolio_count": 6
},
{
"model_id": "xai-grok-4-3",
"score": 74.64583333333333,
"portfolio_count": 6
},
{
"model_id": "xai-grok-4-5",
"score": 76.39583333333333,
"portfolio_count": 6
},
{
"model_id": "xai-grok-4-6",
"score": 71.54166666666667,
"portfolio_count": 6
}
]
},
"monthly": {
"track": "monthly",
"score": 73.23148148148148,
"label": "Risk-seeking",
"model_count": 9,
"portfolio_count": 135,
"round_count": 18,
"models": [
{
"model_id": "anthropic-claude-fable-5",
"score": 77.5,
"portfolio_count": 18
},
{
"model_id": "anthropic-claude-opus-5",
"score": 74.96527777777777,
"portfolio_count": 18
},
{
"model_id": "google-gemini-3-1-pro",
"score": 66.88888888888889,
"portfolio_count": 18
},
{
"model_id": "openai-gpt-5-6-sol",
"score": 76.72222222222223,
"portfolio_count": 18
},
{
"model_id": "xai-grok-4-3",
"score": 65.45833333333333,
"portfolio_count": 18
},
{
"model_id": "xai-grok-4-5",
"score": 74.77083333333333,
"portfolio_count": 18
},
{
"model_id": "xai-grok-4-6",
"score": 68.72916666666667,
"portfolio_count": 12
},
{
"model_id": "anthropic-claude-opus-4-8",
"score": 68.77777777777777,
"portfolio_count": 9
},
{
"model_id": "openai-gpt-5-5",
"score": 85.27083333333333,
"portfolio_count": 6
}
]
},
"portfolio_count": 177,
"round_count": 24
},
"history": {
"decision_pulse": [
{
"date": "2026-08-27",
"combined_score": 69.16071428571428,
"label": "Risk-seeking",
"weekly_score": 69.10714285714286,
"monthly_score": 69.21428571428571,
"weekly_round_id": "CB-2026-08-27-1W",
"monthly_round_id": "CB-2026-08-27-1M",
"model_count": 7,
"agreement_label": "Tight",
"agreement_standard_deviation": 4.175937814749288,
"agreement_range": {
"minimum": 62.3125,
"maximum": 77.5625
},
"top_regime": {
"key": "broad_cyclical_equity",
"label": "Broad and cyclical equity",
"allocation_pct": 71.07142857142857
},
"top_assets": [
{
"option_id": "SP500",
"label": "S&P 500",
"ticker": "SPY",
"allocation_pct": 39.642857142857146,
"risk_on_loading": 0.35,
"regime_group": "broad_cyclical_equity"
},
{
"option_id": "REAL_ESTATE",
"label": "Real Estate Sector",
"ticker": "XLRE",
"allocation_pct": 12.142857142857142,
"risk_on_loading": 0.45,
"regime_group": "broad_cyclical_equity"
},
{
"option_id": "ENERGY",
"label": "Energy Sector",
"ticker": "XLE",
"allocation_pct": 10,
"risk_on_loading": 0.35,
"regime_group": "real_assets_inflation"
},
{
"option_id": "REGIONAL_BANKS",
"label": "Regional Banks",
"ticker": "KRE",
"allocation_pct": 9.642857142857142,
"risk_on_loading": 0.8,
"regime_group": "broad_cyclical_equity"
},
{
"option_id": "CONSUMER_DISCRETIONARY",
"label": "Consumer Discretionary Sector",
"ticker": "XLY",
"allocation_pct": 7.142857142857142,
"risk_on_loading": 0.55,
"regime_group": "broad_cyclical_equity"
}
],
"regime_exposure": [
{
"key": "broad_cyclical_equity",
"label": "Broad and cyclical equity",
"allocation_pct": 71.07142857142857
},
{
"key": "real_assets_inflation",
"label": "Real assets and inflation",
"allocation_pct": 17.142857142857142
},
{
"key": "defensive_equity",
"label": "Defensive equity",
"allocation_pct": 9.285714285714285
},
{
"key": "international_equity",
"label": "International equity",
"allocation_pct": 2.5
}
]
},
{
"date": "2026-08-30",
"combined_score": 68.5,
"label": "Risk-seeking",
"weekly_score": 57.535714285714285,
"monthly_score": 79.46428571428571,
"weekly_round_id": "CB-2026-08-30-1W",
"monthly_round_id": "CB-2026-08-30-1M",
"model_count": 7,
"agreement_label": "Mixed",
"agreement_standard_deviation": 5.474983692082692,
"agreement_range": {
"minimum": 61.125,
"maximum": 77.1875
},
"top_regime": {
"key": "broad_cyclical_equity",
"label": "Broad and cyclical equity",
"allocation_pct": 54.28571428571429
},
"top_assets": [
{
"option_id": "SP500",
"label": "S&P 500",
"ticker": "SPY",
"allocation_pct": 28.214285714285715,
"risk_on_loading": 0.35,
"regime_group": "broad_cyclical_equity"
},
{
"option_id": "REGIONAL_BANKS",
"label": "Regional Banks",
"ticker": "KRE",
"allocation_pct": 12.5,
"risk_on_loading": 0.8,
"regime_group": "broad_cyclical_equity"
},
{
"option_id": "SILVER",
"label": "Silver",
"ticker": "SLV",
"allocation_pct": 12.5,
"risk_on_loading": 0.05,
"regime_group": "real_assets_inflation"
},
{
"option_id": "GOLD",
"label": "Gold",
"ticker": "IAU",
"allocation_pct": 9.285714285714285,
"risk_on_loading": -0.25,
"regime_group": "real_assets_inflation"
},
{
"option_id": "SMALL_VALUE",
"label": "US Small-Cap Value",
"ticker": "IWN",
"allocation_pct": 9.285714285714285,
"risk_on_loading": 0.65,
"regime_group": "broad_cyclical_equity"
}
],
"regime_exposure": [
{
"key": "broad_cyclical_equity",
"label": "Broad and cyclical equity",
"allocation_pct": 54.28571428571429
},
{
"key": "real_assets_inflation",
"label": "Real assets and inflation",
"allocation_pct": 24.285714285714285
},
{
"key": "defensive_equity",
"label": "Defensive equity",
"allocation_pct": 9.285714285714285
},
{
"key": "international_equity",
"label": "International equity",
"allocation_pct": 7.142857142857142
},
{
"key": "growth_technology",
"label": "Growth and technology",
"allocation_pct": 5
}
]
}
],
"outstanding_live_book": [
{
"date": "2026-08-27",
"score": 75.88255355755356,
"label": "Risk-seeking",
"weekly_score": 81.07142857142857,
"monthly_score": 70.69367854367856,
"portfolio_count": 209,
"round_count": 28,
"weekly_portfolio_count": 49,
"monthly_portfolio_count": 160,
"weekly_round_count": 7,
"monthly_round_count": 21
},
{
"date": "2026-08-30",
"score": 75.02050264550265,
"label": "Risk-seeking",
"weekly_score": 76.80952380952381,
"monthly_score": 73.23148148148148,
"portfolio_count": 177,
"round_count": 24,
"weekly_portfolio_count": 42,
"monthly_portfolio_count": 135,
"weekly_round_count": 6,
"monthly_round_count": 18
}
]
}
} Insight Feed
GET /v1/insights?limit=3
{
"engine_version": "deterministic_insights_v4",
"generated_at": "2026-08-30T22:47:38Z",
"data_as_of": "2026-08-30",
"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": "confidence-calibration-2026-08-30",
"category": "confidence_calibration",
"title": "High-confidence model calls have underperformed lower-confidence calls",
"summary": "Across resolved official results, submissions at or above the median confidence of 0.58 averaged +0.03%, while lower-confidence submissions averaged +0.49%.",
"why_it_matters": "Confidence calibration helps readers judge whether model self-reported confidence carries useful information about realized benchmark performance.",
"confidence": "high",
"source_type": "deterministic",
"importance_score": 85,
"evidence": [
{
"href": "/leaderboards/latest",
"label": "Results",
"source": "resolved official leaderboard rows"
}
]
},
{
"id": "model-behavior-profiles-2026-08-30",
"category": "model_behavior",
"title": "Model allocation styles are separating into clear behavior profiles",
"summary": "GPT-5.5 has the highest average risk-taking score at 79.7/100. Grok 4.6 has the largest average top holding at +69.79%. Claude Opus 4.8 has the lowest measured turnover at +43.35%.",
"why_it_matters": "Behavior profiles help readers separate model style from short-term score noise: some models seek more risk, some concentrate harder, and some change portfolios less between rounds.",
"confidence": "high",
"source_type": "deterministic",
"importance_score": 83,
"evidence": [
{
"href": "/models/patterns",
"label": "Model behavior patterns",
"source": "official parsed submissions"
},
{
"href": "/models/patterns/#methodology",
"label": "Behavior methodology",
"source": "asset risk model and behavior formulas"
}
]
},
{
"id": "recent-winner-tilt-CB-2026-08-30-1M",
"category": "model_behavior",
"title": "Grok 4.6 has the strongest current monthly recent-winner tilt",
"summary": "Its score is 50.0 out of 100, with 0.0% in the top recent-return quintile. Gemini 3.1 Pro is lowest at 1.9.",
"why_it_matters": "This compares how strongly current model portfolios favor assets that had already outperformed. It describes the allocation and does not infer why the model chose it.",
"confidence": "high",
"source_type": "deterministic",
"importance_score": 78,
"evidence": [
{
"href": "/rounds/CB-2026-08-30-1M",
"label": "Monthly round",
"source": "rounds/CB-2026-08-30-1M/market_data/universe_decision_context.json"
}
]
}
]
} Model Behavior Profiles
GET /v1/models/behavior
{
"version": "model_behavior_v2",
"generated_at": "2026-08-30T22:52:53.150Z",
"data_as_of": "2026-08-31",
"summary": {
"model_count": 10,
"active_model_count": 7,
"historical_model_count": 3,
"comparison_cohort": "active_models",
"portfolio_count": 791,
"resolved_result_count": 614,
"highest_risk_model_id": "openai-gpt-5-6-sol",
"most_concentrated_model_id": "xai-grok-4-6",
"most_defensive_model_id": "google-gemini-3-1-pro",
"most_like_group_model_id": "anthropic-claude-opus-5",
"most_different_model_id": "xai-grok-4-6",
"most_consensus_aligned_model_id": "anthropic-claude-opus-5",
"most_distinctive_model_id": "xai-grok-4-6",
"lowest_turnover_model_id": "xai-grok-4-6",
"highest_recent_winner_tilt_model_id": "xai-grok-4-6",
"lowest_recent_winner_tilt_model_id": "google-gemini-3-1-pro"
},
"profiles": [
{
"model_id": "anthropic-claude-fable-5",
"label": "Claude Fable 5",
"archetype": {
"label": "Peer-balanced allocator",
"description": "No exposure or risk dimension is persistently far from same-round peer norms. Portfolios averaged 4.3 holdings, a 31.1% largest position, and 58.8% turnover.",
"confidence": "medium",
"confidence_label": "Moderate evidence",
"confidence_reason": "41 independent decision dates support comparison, but the leading signal is not yet established."
},
"sample": {
"portfolio_count": 80,
"weekly_portfolio_count": 41,
"monthly_portfolio_count": 39,
"active_portfolio_count": 24,
"resolved_round_count": 56,
"first_round_id": "CB-2026-06-09-1M",
"latest_round_id": "CB-2026-08-30-1W"
},
"metrics": {
"average_risk_pulse": 71.0171875,
"average_top_allocation_pct": 31.0625,
"defensive_pct": 11.875,
"portfolio_difference_score": 52.58,
"recent_winner_tilt_score": 17.65,
"recent_winner_top_quintile_pct": 2.73
},
"peer": {
"average_peer_similarity": 0.5188291123379003,
"similarity_observation_count": 506,
"outlier_round_count": 4,
"closest_peer": {
"peer_model_id": "anthropic-claude-opus-4-7",
"average_similarity": 0.6147079539574215,
"shared_round_count": 28
}
},
"turnover": {
"average_turnover_pct": 58.84615384615385,
"weekly_turnover_pct": 62.375,
"monthly_turnover_pct": 55.13157894736842,
"turnover_observation_count": 78
},
"portfolio_difference": {
"version": "capitalbench_portfolio_difference_v1",
"current_methodology_version": "portfolio-v3.0",
"current_methodology": {
"observation_count": 22,
"decision_date_count": 11,
"track_count": 2,
"combined_available": true,
"weighting": "50% monthly + 50% weekly",
"monthly_weight_pct": 50,
"weekly_weight_pct": 50,
"availability_note": null,
"average_difference_score": 52.58,
"average_shared_allocation_pct": 47.42,
"average_peer_count": 6.2,
"combined": {
"observation_count": 22,
"decision_date_count": 11,
"track_count": 2,
"combined_available": true,
"weighting": "50% monthly + 50% weekly",
"monthly_weight_pct": 50,
"weekly_weight_pct": 50,
"availability_note": null,
"average_difference_score": 52.58,
"average_shared_allocation_pct": 47.42,
"average_peer_count": 6.2
},
"evidence": {
"status": "established",
"label": "Established sample",
"established": true
},
"tracks": {
"weekly": {
"observation_count": 11,
"decision_date_count": 11,
"average_difference_score": 45.52,
"average_shared_allocation_pct": 54.48,
"average_peer_count": 6.2
},
"monthly": {
"observation_count": 11,
"decision_date_count": 11,
"average_difference_score": 59.64,
"average_shared_allocation_pct": 40.36,
"average_peer_count": 6.2
}
}
},
"all_history": {
"observation_count": 80,
"decision_date_count": 41,
"track_count": 2,
"combined_available": true,
"weighting": "50% monthly + 50% weekly",
"monthly_weight_pct": 50,
"weekly_weight_pct": 50,
"availability_note": null,
"average_difference_score": 47.7,
"average_shared_allocation_pct": 52.3,
"average_peer_count": 6.3,
"combined": {
"observation_count": 80,
"decision_date_count": 41,
"track_count": 2,
"combined_available": true,
"weighting": "50% monthly + 50% weekly",
"monthly_weight_pct": 50,
"weekly_weight_pct": 50,
"availability_note": null,
"average_difference_score": 47.7,
"average_shared_allocation_pct": 52.3,
"average_peer_count": 6.3
},
"evidence": {
"status": "established",
"label": "Established sample",
"established": true
},
"tracks": {
"weekly": {
"observation_count": 41,
"decision_date_count": 41,
"average_difference_score": 45.85,
"average_shared_allocation_pct": 54.15,
"average_peer_count": 6.3
},
"monthly": {
"observation_count": 39,
"decision_date_count": 39,
"average_difference_score": 49.56,
"average_shared_allocation_pct": 50.44,
"average_peer_count": 6.3
}
}
},
"methodology": {
"score_definition": "one-half of the absolute allocation difference from the leave-one-model-out same-round average portfolio",
"plain_english": "the percentage of allocation that would need to change to match the other models' average portfolio",
"range": "0 means the same as the group; 100 means completely different",
"combined_formula": "50% monthly score + 50% weekly score",
"combined_availability": "both monthly and weekly observations are required",
"peer_policy": "the measured model is excluded from its comparison portfolio",
"round_weighting": "each eligible model-round observation receives equal weight",
"minimum_round_roster": 3,
"interpretation_limit": "the score measures portfolio difference, not copying, influence, or intent"
}
},
"recent_winner": {
"version": "capitalbench_recent_winner_tilt_v1",
"current_methodology_version": "portfolio-v3.0",
"current_methodology": {
"observation_count": 22,
"decision_date_count": 11,
"track_count": 2,
"combined_available": true,
"weighting": "50% monthly + 50% weekly",
"monthly_weight_pct": 50,
"weekly_weight_pct": 50,
"availability_note": null,
"average_tilt_score": 17.65,
"average_top_quintile_allocation_pct": 2.73,
"average_context_coverage_pct": 100,
"median_peer_tilt_score": 12.39,
"median_peer_delta_points": 2.29,
"above_peer_rate_pct": 68.19,
"below_peer_rate_pct": 31.81,
"combined": {
"observation_count": 22,
"decision_date_count": 11,
"track_count": 2,
"combined_available": true,
"weighting": "50% monthly + 50% weekly",
"monthly_weight_pct": 50,
"weekly_weight_pct": 50,
"availability_note": null,
"average_tilt_score": 17.65,
"average_top_quintile_allocation_pct": 2.73,
"average_context_coverage_pct": 100,
"median_peer_tilt_score": 12.39,
"median_peer_delta_points": 2.29,
"above_peer_rate_pct": 68.19,
"below_peer_rate_pct": 31.81
},
"evidence": {
"status": "near_peers",
"label": "Leans toward recent laggards",
"peer_label": "Near the peer pattern",
"established": false
},
"tracks": {
"weekly": {
"observation_count": 11,
"decision_date_count": 11,
"average_tilt_score": 12.49,
"average_top_quintile_allocation_pct": 2.73,
"average_context_coverage_pct": 100,
"median_peer_tilt_score": 5.15,
"median_peer_delta_points": 1.87,
"above_peer_rate_pct": 72.73,
"below_peer_rate_pct": 27.27
},
"monthly": {
"observation_count": 11,
"decision_date_count": 11,
"average_tilt_score": 22.81,
"average_top_quintile_allocation_pct": 2.73,
"average_context_coverage_pct": 100,
"median_peer_tilt_score": 19.63,
"median_peer_delta_points": 2.72,
"above_peer_rate_pct": 63.64,
"below_peer_rate_pct": 36.36
}
}
},
"all_history": {
"observation_count": 80,
"decision_date_count": 41,
"track_count": 2,
"combined_available": true,
"weighting": "50% monthly + 50% weekly",
"monthly_weight_pct": 50,
"weekly_weight_pct": 50,
"availability_note": null,
"average_tilt_score": 56.32,
"average_top_quintile_allocation_pct": 39.7,
"average_context_coverage_pct": 100,
"median_peer_tilt_score": 68.19,
"median_peer_delta_points": -0.37,
"above_peer_rate_pct": 47.28,
"below_peer_rate_pct": 52.72,
"combined": {
"observation_count": 80,
"decision_date_count": 41,
"track_count": 2,
"combined_available": true,
"weighting": "50% monthly + 50% weekly",
"monthly_weight_pct": 50,
"weekly_weight_pct": 50,
"availability_note": null,
"average_tilt_score": 56.32,
"average_top_quintile_allocation_pct": 39.7,
"average_context_coverage_pct": 100,
"median_peer_tilt_score": 68.19,
"median_peer_delta_points": -0.37,
"above_peer_rate_pct": 47.28,
"below_peer_rate_pct": 52.72
},
"evidence": {
"status": "near_peers",
"label": "Mixed recent-performance exposure",
"peer_label": "Near the peer pattern",
"established": false
},
"tracks": {
"weekly": {
"observation_count": 41,
"decision_date_count": 41,
"average_tilt_score": 56.45,
"average_top_quintile_allocation_pct": 39.39,
"average_context_coverage_pct": 100,
"median_peer_tilt_score": 65.34,
"median_peer_delta_points": 0.75,
"above_peer_rate_pct": 56.1,
"below_peer_rate_pct": 43.9
},
"monthly": {
"observation_count": 39,
"decision_date_count": 39,
"average_tilt_score": 56.19,
"average_top_quintile_allocation_pct": 40,
"average_context_coverage_pct": 100,
"median_peer_tilt_score": 71.04,
"median_peer_delta_points": -1.49,
"above_peer_rate_pct": 38.46,
"below_peer_rate_pct": 61.54
}
}
},
"latest_context_source": "universe_decision_context",
"latest_window_label": "5 trading sessions relative to SPY",
"methodology": {
"score_definition": "allocation-weighted percentile rank of pre-decision recent returns",
"combined_formula": "50% monthly tilt + 50% weekly tilt",
"combined_availability": "both monthly and weekly observations are required",
"neutral_assets": [
"SP500",
"CASH"
],
"neutral_asset_score": 50,
"weekly_current_window": "5 trading sessions relative to SPY",
"monthly_current_window": "21 trading sessions relative to SPY",
"peer_baseline": "leave-one-model-out same-round peer median",
"outcome_policy": "future returns and resolved outcomes are excluded"
}
}
}
],
"pattern_report": {
"version": "model_behavior_pattern_report_v2",
"data_as_of": "2026-08-31",
"data_fingerprint": "0b6569cfe45ff930311d380efc8e153793cc8f44b31c116ad90723d1b54c8cb4",
"llm_provenance": {
"status": "deterministic_source_of_truth",
"provider": "nvidia_nim",
"prompt_version": "capitalbench_model_patterns_prompt_v2",
"input_contract_version": "capitalbench_model_patterns_llm_input_v2",
"output_contract_version": "capitalbench_model_patterns_llm_output_v2",
"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": "Risk taking averaged 79.7/100, with a median 7.0 points above same-round peers; the difference had the same direction in 83% of 98 matched portfolios. Portfolios averaged 4.8 holdings, a 34.1% largest position, and 49.1% turnover.",
"traits": [
{
"key": "risk_taking",
"label": "High-risk signature",
"evidence": "Risk taking averaged 79.7/100, with a median 7.0 points above same-round peers; the difference had the same direction in 83% of 98 matched portfolios.",
"metric_keys": [
"risk_taking_score"
],
"scope": "typical_peer_normalized"
},
{
"key": "low_turnover",
"label": "Steady allocator",
"evidence": "49.1% average turnover across 96 consecutive same-track comparisons places the model in the lower-turnover tail of the comparison cohort.",
"metric_keys": [
"average_turnover_pct"
],
"scope": "typical_peer_normalized"
},
{
"key": "confidence",
"label": "Established pattern",
"evidence": "51 independent decision dates and 83% directional persistence support the primary signal.",
"metric_keys": [
"portfolio_count"
],
"scope": "sample"
}
],
"key_numbers": {
"risk_taking_score": 79.67,
"average_holding_count": 4.82,
"average_top_allocation_pct": 34.13,
"high_risk_pct": 85.31,
"defensive_pct": 3.83,
"tech_pct": 35.92,
"cash_duration_pct": 1.07,
"international_pct": 12.5,
"real_assets_pct": 19.08,
"benchmark_pct": 0,
"portfolio_difference": 55.91,
"peer_similarity": 0.508,
"outlier_round_count": 21,
"average_turnover_pct": 49.06,
"recent_winner_tilt_score": 63.47,
"recent_winner_top_quintile_pct": 49.64,
"recent_winner_peer_delta_points": 0,
"average_rank": 4.25,
"first_place_count": 9,
"last_place_count": 31,
"beat_sp500_count": 31,
"beat_sp500_rate_pct": 33.7,
"average_alpha_pp": -1.735,
"average_capitalbench_score": -12.3,
"resolved_round_count": 92,
"portfolio_count": 98
},
"top_assets": [
{
"option_id": "SEMICONDUCTORS",
"label": "Semiconductors",
"ticker": "SMH",
"category": "ai_and_technology",
"average_allocation_pct": 19.081632653061224,
"frequency_pct": 59.183673469387756,
"display": "Semiconductors (SMH)"
},
{
"option_id": "OIL",
"label": "Crude Oil",
"ticker": "USO",
"category": "commodities",
"average_allocation_pct": 8.26530612244898,
"frequency_pct": 31.63265306122449,
"display": "Crude Oil (USO)"
},
{
"option_id": "BIOTECH",
"label": "Biotechnology",
"ticker": "XBI",
"category": "healthcare_and_biotech",
"average_allocation_pct": 7.346938775510204,
"frequency_pct": 36.734693877551024,
"display": "Biotechnology (XBI)"
}
]
}
]
}
} Latest Scored Test
GET /v1/leaderboards/latest?track=weekly
{
"track": "weekly",
"round_id": "CB-2026-08-21-1W",
"data": [
{
"rank": 1,
"model_id": "anthropic-claude-fable-5",
"label": "Claude Fable 5",
"portfolio_return_pct": 2.8732253138698787,
"benchmark_return_pct": 0.4740674705848047,
"alpha_pp": 2.399157843285074,
"max_possible_return_pct": 5.93015100178147,
"capitalbench_score": 48.45113240804048
}
]
} 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-07-24",
"monthly": "monthly-set-2026-07-24"
},
"sets": [
{
"set_id": "weekly-set-2026-08-19",
"label": "Weekly Set: Aug 19, 2026",
"track": "weekly",
"status": "forming",
"is_current": false,
"is_qualified": false,
"qualification_threshold": 6,
"comparison": {
"mode": "comparison_set",
"completed_round_count": 3,
"completed_round_ids": [
"CB-2026-08-19-1W",
"CB-2026-08-20-1W",
"CB-2026-08-21-1W"
],
"comparison_round_count": 3,
"comparison_round_ids": [
"CB-2026-08-19-1W",
"CB-2026-08-20-1W",
"CB-2026-08-21-1W"
],
"comparison_model_count": 7,
"is_early_cohort": true,
"excluded_round_count": 0,
"excluded_round_ids": [],
"qualification_threshold": 6,
"is_qualified": false,
"is_current": false,
"status": "forming"
},
"leader": {
"model_id": "anthropic-claude-fable-5",
"label": "Claude Fable 5",
"capitalbench_score": 28.208812227453787
}
}
]
} One Comparison Set
GET /v1/leaderboards/benchmark-sets/weekly-set-2026-08-19
{
"set_id": "weekly-set-2026-08-19",
"label": "Weekly Set: Aug 19, 2026",
"track": "weekly",
"model_ids": [
"anthropic-claude-fable-5",
"anthropic-claude-opus-5",
"google-gemini-3-1-pro",
"openai-gpt-5-6-sol",
"xai-grok-4-3",
"xai-grok-4-5",
"xai-grok-4-6"
],
"comparison": {
"mode": "comparison_set",
"completed_round_count": 3,
"completed_round_ids": [
"CB-2026-08-19-1W",
"CB-2026-08-20-1W",
"CB-2026-08-21-1W"
],
"comparison_round_count": 3,
"comparison_round_ids": [
"CB-2026-08-19-1W",
"CB-2026-08-20-1W",
"CB-2026-08-21-1W"
],
"comparison_model_count": 7,
"is_early_cohort": true,
"excluded_round_count": 0,
"excluded_round_ids": [],
"qualification_threshold": 6,
"is_qualified": false,
"is_current": false,
"status": "forming"
},
"excluded_rounds": [],
"data": [
{
"rank": 1,
"model_id": "anthropic-claude-fable-5",
"label": "Claude Fable 5",
"provider": "anthropic",
"provider_label": "Anthropic",
"logo_src": "/labs/icons/claude-icon.svg",
"portfolio_return_pct": 3.131240237770196,
"benchmark_return_pct": 0.40039612990310225,
"alpha_pp": 2.7308441078670938,
"max_possible_return_pct": 11.100220074926675,
"total_portfolio_return_pct": 9.393720713310588,
"total_max_possible_return_pct": 33.300660224780025,
"capitalbench_score": 28.208812227453787,
"round_count": 3,
"tests_required": 3,
"tests_included": 3,
"is_rank_eligible": true,
"sample_status": "eligible",
"wins": 2,
"win_rate_pct": 66.66666666666666,
"positive_alpha_rate_pct": 100,
"included_round_ids": [
"CB-2026-08-19-1W",
"CB-2026-08-20-1W",
"CB-2026-08-21-1W"
]
},
{
"rank": 2,
"model_id": "anthropic-claude-opus-5",
"label": "Claude Opus 5",
"provider": "anthropic",
"provider_label": "Anthropic",
"logo_src": "/labs/icons/claude-icon.svg",
"portfolio_return_pct": 2.5326141725944855,
"benchmark_return_pct": 0.40039612990310225,
"alpha_pp": 2.1322180426913833,
"max_possible_return_pct": 11.100220074926675,
"total_portfolio_return_pct": 7.597842517783457,
"total_max_possible_return_pct": 33.300660224780025,
"capitalbench_score": 22.815891536377627,
"round_count": 3,
"tests_required": 3,
"tests_included": 3,
"is_rank_eligible": true,
"sample_status": "eligible",
"wins": 1,
"win_rate_pct": 33.33333333333333,
"positive_alpha_rate_pct": 100,
"included_round_ids": [
"CB-2026-08-19-1W",
"CB-2026-08-20-1W",
"CB-2026-08-21-1W"
]
}
]
} Run Concentration
GET /v1/rounds/CB-2026-08-30-1W/concentration
{
"round_id": "CB-2026-08-30-1W",
"track": "weekly",
"model_count": 7,
"portfolio_count": 7,
"summary": {
"top_asset_share_pct": 28.571428571428573,
"top_three_share_pct": 72.14285714285714,
"effective_asset_count": 4.803921568627451
},
"assets": [
{
"option_id": "SP500",
"label": "S&P 500",
"ticker": "SPY",
"category": "us_broad_market",
"allocation_pct": 28.571428571428573,
"model_count": 2,
"models": [
{
"model_id": "xai-grok-4-3",
"label": "Grok 4.3",
"provider": "xai",
"allocation_pct": 14.285714285714286
},
{
"model_id": "xai-grok-4-6",
"label": "Grok 4.6",
"provider": "xai",
"allocation_pct": 14.285714285714286
}
]
}
]
} 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 | Legacy compatibility field: average cosine similarity between one model's portfolio weights and peer portfolio weights in the same official rounds. |
portfolio_difference_score | 0-100 score equal to the percentage of allocation that would need to change to match the leave-one-model-out average portfolio in the same rounds. |
average_turnover_pct | Average round-to-round portfolio change, calculated as one-half of summed absolute allocation changes. |
recent_winner_tilt_score | Combined allocation-weighted percentile rank of cutoff-safe recent asset returns: 50% monthly plus 50% weekly. 50 is neutral; higher values mean more weight in recent winners. |
recent_winner_top_quintile_pct | Portfolio allocation to assets in the top 20% of the applicable pre-decision recent-return window. |
recent_winner_peer_delta_points | Model recent-winner tilt minus the leave-one-model-out median for other models in the same rounds, in score points. |
archetype | Peer-normalized, evidence-gated model behavior label with a model-specific 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, fixed-role pills, evidence signals, key numbers, methodology metadata, freshness, and rewrite 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.