Data API

CapitalBench Data API

AI model portfolios, active positioning, cumulative allocation behavior, benchmark scores, and proof metadata as structured data.

Production endpoint 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
        }
      ]
    }
  ]
}
01 Live Positioning

Where model capital is allocated across active weekly and monthly rounds.

02 Model Behavior

Cumulative allocation patterns, risk appetite, and model-level holdings.

03 Scores

Resolved returns, S&P 500 comparisons, max-possible context, and leaderboard history.

04 Audit Data

Round files, prompt hashes, universe versions, prices, and audit metadata.

Interactive widget demo

See CapitalBench inside a market data platform

This is a real-data panel a financial website, brokerage dashboard, or data terminal could place beside an asset page. It focuses on which named AI models hold the asset, which models avoid it, and where allocation sizing disagrees.

View broader use cases
Market Data Platform SPY - S&P 500
8/9 models hold
CapitalBench data panel SPY active model holdings
Average active allocation 24.0%
Model holders 8/9
Grok 4.6 94.6%
Grok 4.3 68.3%
Claude Opus 4.8 55.6%
Gemini 3.1 Pro 53.8%

Source endpoint: /v1/positioning/by-asset/SP500?scope=active&track=all

Agreement High agreement
Most bullish model Grok 4.6 (xAI) 94.6%
Sizing spread 64.6 pp
Powered by CapitalBench API SPY AI model holdings
OpenAPI
SPY
S&P 500 US Broad Market - Equity
Avg active allocation 24.0%

Across official active portfolios

Model agreement High agreement

8/9 named models hold SPY

What this tells an investor Crowded AI-model position

SPY holders include Grok 4.6, Grok 4.3, and Claude Opus 4.8, while non-holders include GPT-5.5. That makes the signal useful as a model-disagreement read: the asset has active AI demand, but it is not a consensus position across the full model set.

Named model holders 8 models hold SPY
  • Grok 4.6 xAI - Heavy holder 94.6%
  • Grok 4.3 xAI - Heavy holder 68.3%
  • Claude Opus 4.8 Anthropic - Heavy holder 55.6%
  • Gemini 3.1 Pro Google - Heavy holder 53.8%
Agreement and disagreement
Most bullish Grok 4.6 (xAI) 94.6%
Smallest holder GPT-5.6 Sol (OpenAI) 30.0%
Sizing spread 64.6 pp - Split ownership, wide sizing
Non-holders GPT-5.5 do not hold SPY
Updated from generated read model: 177 active portfolios - 9 active models - research data, not investment advice
Use cases

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.

Core concepts

How The Data Is Organized

Active

Only unresolved rounds. Use this for live model positioning.

Cumulative

All saved allocations or all available result history. Use this for model behavior and context.

Comparison Set

A fixed model roster scored only on rounds every model in that roster completed.

Current Benchmark

The newest qualified comparison set for a track. Weekly qualifies at 6 shared rounds; monthly qualifies at 3.

Track

Weekly and monthly rounds stay separate because they measure different horizons.

Positioning

Portfolio weights aggregated by asset, category, model, or track.

Audit

Round files, hashes, timestamps, prompt inputs, prices, and portfolio records.

Portfolio Minus S&P 500

Model portfolio return minus the S&P 500 return, in percentage points.

CapitalBench Score

Model return relative to the hindsight oracle; cumulative rows divide total model return by total oracle return.

AI Risk Appetite

A 0-100 allocation signal calculated from the newest live weekly and monthly AI model portfolios. It does not use prices or returns.

Model Behavior

A deterministic model-level profile describing allocation style, Portfolio Difference, concentration, turnover, pattern-report summaries, and resolved performance context.

Portfolio Difference

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.

Recent-Winner Tilt

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.

Insight

A deterministic or LLM-assisted finding with source evidence, calculations, confidence, and audience tags.

Shared Rounds

Resolved rounds included in a comparison set because every set model has an official result.

Authentication

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"
Versioned paths

All endpoints use /v1 so downstream pipelines can pin behavior.

Stable identifiers

Use model_id, round_id, and option_id instead of display names.

Pagination

List endpoints return next_cursor when more records are available.

Endpoint map

Available Resources

Metadata And Evidence

Generated-data coverage, benchmark evidence, and audit records.

GET /v1/metadata

Generated read-model timestamp, source, dataset counts, and endpoint discovery.

GET /v1/benchmark-evidence

Benchmark qualification thresholds, maturity, baselines, and score-scale caveats.

GET /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.

GET /v1/positioning/active

Live exposure across unresolved weekly and monthly rounds.

GET /v1/risk-appetite

Current and historical AI Risk Appetite, model agreement, regime mix, and outstanding live-book risk.

GET /v1/live/performance

Live rounds marked to the latest available close; not official final scores.

GET /v1/live/performance/history

Raw interim mark-to-market rows with round, model, published, and pricing filters.

GET /v1/positioning/cumulative

Historical allocation behavior across all available rounds.

GET /v1/positioning/consensus

Assets and categories where model allocations cluster.

GET /v1/positioning/by-model/{model_id}

One model's active or cumulative allocation pattern.

GET /v1/positioning/by-asset/{option_id}

Models allocating to a selected asset.

GET /v1/positioning/by-category

Exposure grouped by sector, region, asset class, or theme.

GET /v1/positioning/changes

Allocation changes between recent rounds.

GET /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.

GET /v1/insights

Ranked insight feed with Featured, category, tier, confidence, track, and maturity filters.

GET /v1/insights/{insight_id}

One insight with its supporting calculations and source evidence.

GET /v1/market-environments

Weekly and monthly performance grouped by resolved S&P 500 environment.

GET /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.

GET /v1/rounds

Round index with track, status, dates, universe version, and audit links.

GET /v1/rounds/{round_id}

One round's metadata and input hashes.

GET /v1/rounds/{round_id}/proof

One round's official proof record, hashes, and audit URL.

GET /v1/rounds/{round_id}/portfolios

Saved model allocations for a round.

GET /v1/rounds/{round_id}/concentration

Run-level allocation consensus and concentration summary.

GET /v1/rounds/{round_id}/live-performance

Interim mark-to-market rows for an unresolved round.

GET /v1/rounds/{round_id}/results

Resolved portfolio returns, S&P 500 returns, Portfolio Minus S&P 500, regret, and max-possible context.

GET /v1/results

All official scored model results with track, round, and model filters.

GET /v1/returns

Raw official-run asset return rows, including benchmark and cash rows where available.

GET /v1/leaderboards/latest

Most recent scored weekly or monthly leaderboard.

GET /v1/leaderboards/benchmark-sets

Living equal-run comparison sets, including the current weekly and monthly benchmarks.

GET /v1/leaderboards/benchmark-sets/{set_id}

One comparison set with model roster, included rounds, excluded rounds, and CapitalBench Scores.

GET /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.

GET /v1/models

Model list with provider metadata and active status.

GET /v1/models/{model_id}

Model profile and audit links.

GET /v1/models/{model_id}/holdings

Active and historical holdings for one model.

GET /v1/models/{model_id}/portfolios

Portfolio-level model records with rationales, key risks, proof paths, and allocations.

GET /v1/models/{model_id}/live-performance

One model's live return across live rounds.

GET /v1/models/{model_id}/style

Risk appetite and allocation fingerprint metrics.

GET /v1/models/behavior

Canonical model behavior profiles plus Portfolio Difference, recent-winner tilt, turnover, concentration, and archetype labels.

GET /v1/models/patterns

Direct access to the dynamic model behavior pattern report used by the comparison page.

GET /v1/models/{model_id}/behavior

One model's behavior profile with Portfolio Difference, recent-winner tilt, methodology, and peer-context fields.

GET /v1/universe/current

Current list of valid model choices.

GET /v1/assets

All generated asset metadata, optionally filtered to current or inactive assets.

GET /v1/assets/{option_id}

Asset metadata and ticker mapping.

GET /v1/assets/{option_id}/model-holders

Models holding a selected asset.

Examples

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
        }
      ]
    }
  ]
}
Schema

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.
Errors

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.
Freshness and proof

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.
Access

Request API Access

API credentials are provisioned directly for research teams, funds, data partners, and builders using CapitalBench model-positioning data.