diff --git a/docs/tco-calculator.md b/docs/tco-calculator.md index 0d214f107..5abf89264 100644 --- a/docs/tco-calculator.md +++ b/docs/tco-calculator.md @@ -460,31 +460,11 @@ gigawatt-year buys for that SKU (`gw-year`). Both tabs offer the same model list. A model needs AgentX (`agentic_traces`) measurements with an interpolable operating point and a token price source. The page intersects its supported routes with live AgentX availability, so a -model without current trace data disappears from the selector. Muse Spark Open, -Qwen3.5, Qwen3.8 Flash Next, and MiniMax M3.1 Flash use OpenRouter pricing by -default; users can supply custom prices. GLM-5 currently has too little trace -data to interpolate a profit row. +model without current trace data disappears from the selector. The public profit view APIs accept any known model and may return empty rows; their `model` parameter is not restricted to the dashboard's list. -The four additions use model-specific default P90 interactivity targets. On -2026-10-24, a sweep of the public profit view API at every 5 tok/s/user from 5 -to 150 found these lowest targets that maximize priced official SKU rows in -that range (using custom token prices to keep price availability independent of -curve coverage): - -| Model | Rows at 45 | Default target (tok/s/user) | Rows at default | -| ------------------ | ---------: | --------------------------: | --------------: | -| Muse Spark Open | 1 | 85 | 7 | -| MiniMax M3.1 Flash | 2 | 125 | 7 | -| Qwen3.5 | 2 | 115 | 10 | -| Qwen3.8 Flash Next | 3 | 90 | 6 | - -Both per-chip-hour and per-GW-year views returned the same row counts at these -targets. New benchmark runs can change the coverage. The target remains an -editable operating-point assumption, not a hosted API speed claim. - -The five earlier models now follow the same rule. A 2026-10-25 public API sweep +Each model uses a default P90 interactivity target. A 2026-10-25 public API sweep at every 5 tok/s/user from 5 to 300 found these lowest targets that maximize priced official SKU rows in that range, again using custom token prices to isolate curve coverage: diff --git a/packages/app/cypress/e2e/profit-estimator.cy.ts b/packages/app/cypress/e2e/profit-estimator.cy.ts index e1779eed7..95103ec9d 100644 --- a/packages/app/cypress/e2e/profit-estimator.cy.ts +++ b/packages/app/cypress/e2e/profit-estimator.cy.ts @@ -13,10 +13,6 @@ import { const OPENROUTER_MODELS = { data: [ - { - id: 'meta/muse-spark-open', - pricing: { prompt: '0.00000125', completion: '0.00000425', input_cache_read: '0.00000015' }, - }, { id: 'moonshotai/kimi-k3', pricing: { prompt: '0.0000006', completion: '0.0000025', input_cache_read: '0.0000001' }, @@ -37,18 +33,6 @@ const OPENROUTER_MODELS = { id: 'deepseek/deepseek-v4.1-flash', pricing: { prompt: '0.00000015', completion: '0.0000006', input_cache_read: '0.000000003' }, }, - { - id: 'minimax/minimax-m3.1-flash', - pricing: { prompt: '0.00000015', completion: '0.0000006', input_cache_read: '0.00000003' }, - }, - { - id: 'qwen/qwen3.5-397b-a17b', - pricing: { prompt: '0.0000005', completion: '0.0000036', input_cache_read: '0.00000005' }, - }, - { - id: 'qwen/qwen3.8-flash', - pricing: { prompt: '0.00000015', completion: '0.00000047', input_cache_read: '0.00000002' }, - }, ], }; @@ -85,31 +69,6 @@ function coverageRows(dbKey: string, target: number) { }); } -describe('New agentic models on profit estimators', () => { - for (const [slug, label, dbKey, target] of [ - ['muse-spark-open', 'Muse Spark Open', 'musespark', 85], - ['minimax-m31-flash', 'MiniMax M3.1 Flash', 'minimaxm31flash', 125], - ['qwen-3-5', 'Qwen3.5', 'qwen3.5', 115], - ['qwen-3-8-flash-next', 'Qwen3.8 Flash Next', 'qwen3.8next', 90], - ] as const) { - for (const basis of ['profit-estimator', 'profit-estimator-per-gigawatt'] as const) { - it(`opens ${label} on ${basis} with more measured SKUs than target 45`, () => { - stubOpenRouter(); - cy.intercept('GET', '/api/v1/benchmarks*', { body: coverageRows(dbKey, target) }); - cy.visit(`/${basis}/${slug}`, { onBeforeLoad: suppressNudges }); - cy.location('pathname').should('eq', `/${basis}/${slug}`); - cy.get('[data-testid="profit-model-selector"]').should('contain.text', label); - cy.get('button#profit-price-source').should('contain.text', 'OpenRouter'); - cy.get('[data-testid="profit-target-input"]').should('have.value', String(target)); - chart().find('text.revenue-label').should('have.length', 4); - - cy.get('[data-testid="profit-target-input"]').clear().type('45').blur(); - chart().find('text.revenue-label').should('have.length', 1); - }); - } - } -}); - describe('Earlier agentic models on profit estimators', () => { for (const [slug, label, dbKey, previousTarget, target, previousBars] of [ ['kimi-k3', 'Kimi K3', 'kimik3', 45, 60, 1], @@ -639,16 +598,12 @@ describe('Profit Estimator per GW', () => { cy.get('[data-testid="profit-precision-selector"]').should('not.exist'); cy.get('[data-testid="profit-model-selector"]').should('contain.text', 'Kimi K3').click(); cy.get('[role="option"]') - .should('have.length', 9) - .and('contain.text', 'Muse Spark Open') + .should('have.length', 5) .and('contain.text', 'Kimi K3') .and('contain.text', 'GLM5.2/GLM5.3') .and('contain.text', 'MiniMax M3') .and('contain.text', 'DeepSeek V4 Pro') - .and('contain.text', 'DeepSeek V4.1 Flash') - .and('contain.text', 'MiniMax M3.1 Flash') - .and('contain.text', 'Qwen3.5') - .and('contain.text', 'Qwen3.8 Flash Next'); + .and('contain.text', 'DeepSeek V4.1 Flash'); cy.get('body').type('{esc}'); cy.get('button#profit-price-source').click(); cy.get('[role="option"]') @@ -1148,9 +1103,12 @@ describe('Profit Estimator per GW — per-model route', () => { cy.get('[data-testid="profit-scenario-selector"]').should('not.exist'); cy.get('[data-testid="profit-fixed-workload-note"]').should('not.exist'); }); - cy.request(`${prefix}/profit-estimator-per-gigawatt/qwen-3-5`) + cy.request({ + url: `${prefix}/profit-estimator-per-gigawatt/qwen-3-5`, + failOnStatusCode: false, + }) .its('status') - .should('eq', 200); + .should('eq', 404); }); } }); diff --git a/packages/app/cypress/support/profit-fixtures.ts b/packages/app/cypress/support/profit-fixtures.ts index 3045bfde4..3595bea8c 100644 --- a/packages/app/cypress/support/profit-fixtures.ts +++ b/packages/app/cypress/support/profit-fixtures.ts @@ -6,15 +6,11 @@ export const PROFIT_MINIMAX_DB_KEY = 'minimaxm3'; export const PROFIT_DEEPSEEK_DB_KEY = 'dsv4'; export const PROFIT_DEEPSEEK_FLASH_DB_KEY = 'dsv41flash'; const PROFIT_DB_KEY_BY_DISPLAY_MODEL: Record = { - 'Muse-Spark-Open': 'musespark', 'Kimi-K3': PROFIT_MODEL_DB_KEY, 'GLM-5.2': PROFIT_GLM_DB_KEY, 'MiniMax-M3': PROFIT_MINIMAX_DB_KEY, 'DeepSeek-V4-Pro': PROFIT_DEEPSEEK_DB_KEY, 'DeepSeek-V4.1-Flash': PROFIT_DEEPSEEK_FLASH_DB_KEY, - 'MiniMax-M3.1-Flash': 'minimaxm31flash', - 'Qwen-3.5-397B-A17B': 'qwen3.5', - 'Qwen3.8-Flash-Next': 'qwen3.8next', }; const PROFIT_DB_KEYS = Object.values(PROFIT_DB_KEY_BY_DISPLAY_MODEL); export const PROFIT_DATE = '2026-08-31'; diff --git a/packages/app/src/app/api/v1/views/extensions.test.ts b/packages/app/src/app/api/v1/views/extensions.test.ts index 8afe9fe7b..eecc59a2c 100644 --- a/packages/app/src/app/api/v1/views/extensions.test.ts +++ b/packages/app/src/app/api/v1/views/extensions.test.ts @@ -327,10 +327,6 @@ describe('new dashboard projections', () => { [Model.MiniMax_M3, 'minimaxm3', 115], [Model.DeepSeek_V4_Pro, 'dsv4', 170], [Model.DeepSeek_V4_1_Flash, 'dsv41flash', 150], - [Model.Muse_Spark_Open, 'musespark', 85], - [Model.MiniMax_M3_1_Flash, 'minimaxm31flash', 125], - [Model.Qwen3_5, 'qwen3.5', 115], - [Model.Qwen3_8_Flash_Next, 'qwen3.8next', 90], ] as const)( 'prices supported agentic model %s at its default through both public profit views', async (model, dbKey, target) => { diff --git a/packages/app/src/components/calculator/profit-estimator.test.ts b/packages/app/src/components/calculator/profit-estimator.test.ts index 2122a115e..5d1c8c515 100644 --- a/packages/app/src/components/calculator/profit-estimator.test.ts +++ b/packages/app/src/components/calculator/profit-estimator.test.ts @@ -333,19 +333,6 @@ describe('parseTokenPriceInput', () => { }); describe('profitModelDefaults', () => { - it.each([ - [Model.Muse_Spark_Open, 85], - [Model.MiniMax_M3_1_Flash, 125], - [Model.Qwen3_5, 115], - [Model.Qwen3_8_Flash_Next, 90], - ] as const)('opens %s at a 5-step target chosen for broader SKU coverage', (model, target) => { - const defaults = profitModelDefaults(model); - expect(defaults.interactivity).toBe(target); - expect(defaults.interactivity % 5).toBe(0); - expect(defaults.listPricing).toBeNull(); - expect(defaults.labCutPct).toBe(DEFAULT_LAB_CUT_PCT); - }); - it.each([ [Model.Kimi_K3, 60], [Model.GLM_5_2, 135], diff --git a/packages/app/src/components/calculator/profit-estimator.ts b/packages/app/src/components/calculator/profit-estimator.ts index 27450b374..61241f70b 100644 --- a/packages/app/src/components/calculator/profit-estimator.ts +++ b/packages/app/src/components/calculator/profit-estimator.ts @@ -61,10 +61,8 @@ export interface ProfitModelDefaults { } /** - * Per-model defaults. On 2026-10-24, the four newest models took the first - * 5-tok/s/user step that maximized priced AgentX SKU coverage in a 5–150 sweep: - * Muse Spark Open 85, MiniMax M3.1 Flash 125, Qwen3.5 115, Qwen3.8 Flash Next 90. - * On 2026-10-25, the same rule over 5–300 selected Kimi K3 60, GLM 5.2/5.3 + * Per-model defaults. On 2026-10-25, the first 5-tok/s/user step that + * maximized priced AgentX SKU coverage in a 5–300 sweep selected Kimi K3 60, GLM 5.2/5.3 * 135, MiniMax M3 115, DeepSeek V4 Pro 170, and DeepSeek V4.1 Flash 150. * These editable P90 targets show measured configurations; they are not claims * about hosted API speeds. Curves outside the target range stay unpriced. @@ -77,26 +75,6 @@ export interface ProfitModelDefaults { * list prices and a 0% fee because their weights ship under the MIT license. */ const PROFIT_MODEL_DEFAULTS: Partial> = { - [Model.Muse_Spark_Open]: { - interactivity: 85, - labCutPct: DEFAULT_LAB_CUT_PCT, - listPricing: null, - }, - [Model.MiniMax_M3_1_Flash]: { - interactivity: 125, - labCutPct: DEFAULT_LAB_CUT_PCT, - listPricing: null, - }, - [Model.Qwen3_5]: { - interactivity: 115, - labCutPct: DEFAULT_LAB_CUT_PCT, - listPricing: null, - }, - [Model.Qwen3_8_Flash_Next]: { - interactivity: 90, - labCutPct: DEFAULT_LAB_CUT_PCT, - listPricing: null, - }, [Model.DeepSeek_V4_Pro]: { interactivity: 170, labCutPct: 0, diff --git a/packages/app/src/lib/api/api-route-catalog.ts b/packages/app/src/lib/api/api-route-catalog.ts index 2f26033a8..96a7d18d8 100644 --- a/packages/app/src/lib/api/api-route-catalog.ts +++ b/packages/app/src/lib/api/api-route-catalog.ts @@ -1361,7 +1361,7 @@ export const apiContractSourceDigests = [ }, { source: 'src/components/calculator/profit-estimator.ts', - sourceSha256: '7ccc4a040faef875fef299bd4c29f33645a914efc69f9b73b53cda676d7b4aa7', + sourceSha256: '0eeaaed822068e9aa782e6b40ad1bb9ae31f70ef755f67622767f3b89ade4d1a', reviewArea: { en: 'Shared profit-estimator defaults and calculation parity, including model-specific target assumptions.', zh: '利润估算器的共享默认值与计算一致性,包括各模型的目标假设。', diff --git a/packages/app/src/lib/catalog/data-mappings.test.ts b/packages/app/src/lib/catalog/data-mappings.test.ts index 1599ab5dd..b61d7ad83 100644 --- a/packages/app/src/lib/catalog/data-mappings.test.ts +++ b/packages/app/src/lib/catalog/data-mappings.test.ts @@ -396,12 +396,15 @@ describe('getModelLabel', () => { }); describe('getOpenRouterModelId', () => { - it('maps catalog models to exact OpenRouter ids', () => { + it('maps catalog models to exact OpenRouter ids without inventing one for Muse', () => { for (const model of MODEL_OPTIONS) { + if (model === Model.Muse_Spark_Open) { + expect(getOpenRouterModelId(model)).toBeNull(); + continue; + } expect(getOpenRouterModelId(model), model).toMatch(/^[^/]+\/[^/]+$/u); } expect(getOpenRouterModelId(Model.DeepSeek_V4_Pro)).toBe('deepseek/deepseek-v4-pro-0813'); - expect(getOpenRouterModelId(Model.Muse_Spark_Open)).toBe('meta/muse-spark-open'); }); }); diff --git a/packages/app/src/lib/catalog/data-mappings.ts b/packages/app/src/lib/catalog/data-mappings.ts index f8f69131d..b7eee9bf1 100644 --- a/packages/app/src/lib/catalog/data-mappings.ts +++ b/packages/app/src/lib/catalog/data-mappings.ts @@ -74,7 +74,6 @@ const MODEL_CONFIG: Record = { label: 'Muse Spark Open 816B', prefix: 'musespark', category: 'default', - openRouterModelId: 'meta/muse-spark-open', logo: 'muse-mascot.webp', }, [Model.DeepSeek_V4_Pro]: { diff --git a/packages/app/src/lib/routing/model-routes.test.ts b/packages/app/src/lib/routing/model-routes.test.ts index 125c809db..c90128f87 100644 --- a/packages/app/src/lib/routing/model-routes.test.ts +++ b/packages/app/src/lib/routing/model-routes.test.ts @@ -175,23 +175,16 @@ describe('modelRoutePathnameRewrite', () => { }); describe('modelRoutesForTab', () => { - it('serves agentic models with priced interpolation on both profit estimators and every model elsewhere', () => { + it('serves Kimi K3, GLM 5.2/5.3, MiniMax M3, DeepSeek V4 Pro and DeepSeek V4.1 Flash on the profit estimators and every model elsewhere', () => { for (const tab of ['profit-estimator', 'profit-estimator-per-gigawatt'] as const) { expect(modelRoutesForTab(tab).map((route) => route.model)).toEqual([ - Model.Muse_Spark_Open, Model.DeepSeek_V4_Pro, Model.DeepSeek_V4_1_Flash, Model.Kimi_K3, Model.MiniMax_M3, - Model.MiniMax_M3_1_Flash, Model.GLM_5_2, - Model.Qwen3_5, - Model.Qwen3_8_Flash_Next, ]); - expect(modelRouteAvailableForTab(tab, Model.Qwen3_5)).toBe(true); - expect(modelRouteAvailableForTab(tab, Model.Qwen3_8_Flash_Next)).toBe(true); - expect(modelRouteAvailableForTab(tab, Model.MiniMax_M3_1_Flash)).toBe(true); - expect(modelRouteAvailableForTab(tab, Model.Muse_Spark_Open)).toBe(true); + expect(modelRouteAvailableForTab(tab, Model.Qwen3_5)).toBe(false); expect(modelRouteAvailableForTab(tab, Model.GLM_5_2)).toBe(true); expect(modelRouteAvailableForTab(tab, Model.MiniMax_M3)).toBe(true); expect(modelRoutesForTab(tab).find((route) => route.model === Model.MiniMax_M3)?.slug).toBe( diff --git a/packages/app/src/lib/routing/model-routes.ts b/packages/app/src/lib/routing/model-routes.ts index 96b69ac7d..52d9c12f2 100644 --- a/packages/app/src/lib/routing/model-routes.ts +++ b/packages/app/src/lib/routing/model-routes.ts @@ -34,15 +34,11 @@ export function defaultRouteModel(tab: ModelRouteTab): Model { } const PROFIT_ESTIMATOR_MODELS: readonly Model[] = [ - Model.Muse_Spark_Open, Model.Kimi_K3, Model.GLM_5_2, Model.MiniMax_M3, - Model.MiniMax_M3_1_Flash, Model.DeepSeek_V4_Pro, Model.DeepSeek_V4_1_Flash, - Model.Qwen3_5, - Model.Qwen3_8_Flash_Next, ]; const MODEL_ROUTE_TAB_MODELS: Partial> = { 'profit-estimator': PROFIT_ESTIMATOR_MODELS, diff --git a/packages/app/src/lib/views-api/docs/extensions.ts b/packages/app/src/lib/views-api/docs/extensions.ts index 42775c276..8866d32e6 100644 --- a/packages/app/src/lib/views-api/docs/extensions.ts +++ b/packages/app/src/lib/views-api/docs/extensions.ts @@ -72,8 +72,8 @@ const PARAMETER_NOTES: Record = { '比较范围结束日期 YYYY-MM-DD,不得早于 start。历史视图将其用作含终点的数据范围。', ], target: [ - 'Positive operating-point target, tok/s/user in interactivity-to-throughput mode. Both profit views use model-specific defaults: Kimi K3 60, GLM-5.2/5.3 135, MiniMax M3 115, DeepSeek V4 Pro 170, DeepSeek V4.1 Flash 150, Muse Spark Open 85, MiniMax M3.1 Flash 125, Qwen3.5 115, and Qwen3.8 Flash Next 90 tok/s/user. Dashboard links use //target/ route segments; this API continues to accept the target query parameter. These are editable SKU-coverage assumptions, not OpenRouter P90-equivalent measurements.', - '正数工作点目标;交互性转吞吐量模式下单位为 tok/s/user。两个利润视图按模型设置默认值:Kimi K3 为 60、GLM-5.2/5.3 为 135、MiniMax M3 为 115、DeepSeek V4 Pro 为 170、DeepSeek V4.1 Flash 为 150、Muse Spark Open 为 85、MiniMax M3.1 Flash 为 125、Qwen3.5 为 115、Qwen3.8 Flash Next 为 90 tok/s/user。仪表板链接通过 //target/ 路径片段传递目标值;本 API 仍使用 target 查询参数。这些默认值是用于扩大 SKU 覆盖范围的可修改假设,并非与 OpenRouter P90 等价的实测值。', + 'Positive operating-point target, tok/s/user in interactivity-to-throughput mode. Both profit views use model-specific defaults: Kimi K3 60, GLM-5.2/5.3 135, MiniMax M3 115, DeepSeek V4 Pro 170 and DeepSeek V4.1 Flash 150 tok/s/user. Dashboard links use //target/ route segments; this API continues to accept the target query parameter. These are editable SKU-coverage assumptions, not OpenRouter P90-equivalent measurements.', + '正数工作点目标;交互性转吞吐量模式下单位为 tok/s/user。两个利润视图按模型设置默认值:Kimi K3 为 60、GLM-5.2/5.3 为 135、MiniMax M3 为 115、DeepSeek V4 Pro 为 170、DeepSeek V4.1 Flash 为 150 tok/s/user。仪表板链接通过 //target/ 路径片段传递目标值;本 API 仍使用 target 查询参数。这些默认值是用于扩大 SKU 覆盖范围的可修改假设,并非与 OpenRouter P90 等价的实测值。', ], costProvider: [ 'costh = owning, costr = renting. Profit views additionally accept custom with customCosts. No costn provider.', diff --git a/packages/skills/skills/inferencex-api/integrity.json b/packages/skills/skills/inferencex-api/integrity.json index 7dd040c1c..8f9eddf82 100644 --- a/packages/skills/skills/inferencex-api/integrity.json +++ b/packages/skills/skills/inferencex-api/integrity.json @@ -9,7 +9,7 @@ "references/cli-contract.md": "4f070877eeefffad2860c58f79f68432fbe27aa21fc578a1c696f0309a3d7d7b", "references/cli.md": "11e1183f7ed70d669019e8435ac16a6a9f873de027507b8850a9943f6659bfd9", "references/collectivex.md": "f79cf8e2779a9289ab69f79f4a4b338e0b9a5f76a3750a3e969f33a744e726a1", - "references/dashboard-views.md": "333e4473a6027a45992a01bc2e908437dc6b5c43542dd481b0929ba95027f506", + "references/dashboard-views.md": "db9ba48896f75acf6531bd49d26062ee09307c6348f1e10b055cf62e093df85d", "references/offline-exports.md": "95aa565dcd4c9e592159baa560a9a58217bc61e395de1c6daf0576795c7f4ec9", "references/pareto.md": "1b4d2d163f982e3f2d97addce310789eae9c1e5badd82dd7501708c9e0385027", "references/powerx.md": "5af5527d54a7e6191a5769080c122638b333b1ceb59e19fdee7df662a5cd3c8f", diff --git a/packages/skills/skills/inferencex-api/references/dashboard-views.md b/packages/skills/skills/inferencex-api/references/dashboard-views.md index f2ad25963..6515340c6 100644 --- a/packages/skills/skills/inferencex-api/references/dashboard-views.md +++ b/packages/skills/skills/inferencex-api/references/dashboard-views.md @@ -95,21 +95,9 @@ unavailable. Pass `cacheHitMode=actual` for measured cache behavior; dashboard links preserve that choice as `/cache-hit-mode/actual`. Report the resolved `params.cacheHitMode` alongside the pricing assumptions. -The four newly supported models use separate defaults on both views. They are -the lowest multiples of 5 tok/s/user that reached each model's maximum priced -official SKU count in a 5–150 sweep of the public view API on 2026-10-24: - -| Model | Default `target` | Priced rows at 45 → default | -| ------------------ | ---------------: | --------------------------: | -| Muse Spark Open | 85 | 1 → 7 | -| MiniMax M3.1 Flash | 125 | 2 → 7 | -| Qwen3.5 | 115 | 2 → 10 | -| Qwen3.8 Flash Next | 90 | 3 → 6 | - -These are editable P90 operating-point assumptions. Always report the resolved -`params.target`; newly ingested runs can change SKU coverage. - -The other five models use the same rule in a 5–300 sweep on 2026-10-25: +Both views use model-specific defaults: the lowest multiples of 5 tok/s/user +that reached each model's maximum priced official SKU count in a 5–300 sweep +of the public view API on 2026-10-25: | Model | Previous `target` | Default `target` | Priced rows before → default | | ------------------- | ----------------: | ---------------: | ---------------------------: | @@ -192,7 +180,7 @@ which API selectors belong together. | `calculator` | Model/sequence/run/date, precisions/GPUs, percentile, target/mode, token type, owning/renting cost, TCO, power budget, cost cap, hide-above-limit and public unofficial runs. JSON or CSV. | | `first-token` | Benchmark selection plus 1–8 positive TTFT caps in seconds, minimum interactivity, cost provider and token type. Shared dashboard winner selection. | | `cache-reuse` | AgentX selection plus exact `config` from returned configurations and `recipe` from data.recipes. Cache-reuse curves retain official versus unofficial evidence. | -| `profit-estimator` | AgentX selection, comparison dates/runs, target, utilization, lab revenue share, list/OpenRouter/custom token prices, own/rent/custom chip costs, TCO, actual/theoretical cache-hit mode and provisioned/modeled/compare power. USD/chip-hour. The dashboard offers models with usable AgentX curves and a price source, including Muse Spark Open, Qwen3.5, Qwen3.8 Flash Next, and MiniMax M3.1 Flash; the API accepts other known models and may return empty rows. | +| `profit-estimator` | AgentX selection, comparison dates/runs, target, utilization, lab revenue share, list/OpenRouter/custom token prices, own/rent/custom chip costs, TCO, actual/theoretical cache-hit mode and provisioned/modeled/compare power. USD/chip-hour. | | `profit-estimator-per-gigawatt` | Same selectors; USD/GW-year basis and owning-cost default. | | `fleet` | Model/sequence/precision/GPUs, target/percentile, TCO/token type/cost provider, MW, input/output prices, ramp, cache discount, MTBI, recovery, horizon and metric. JSON or CSV. | | `evaluation` | Model, task, date, precision and GPU selection; public unofficial runs remain separately labeled and independent of the official date cutoff. JSON or CSV. |