diff --git a/packages/stats/app/src/routes/[lab]/[model].tsx b/packages/stats/app/src/routes/[lab]/[model].tsx index 2accce529..746d81ec2 100644 --- a/packages/stats/app/src/routes/[lab]/[model].tsx +++ b/packages/stats/app/src/routes/[lab]/[model].tsx @@ -123,8 +123,8 @@ export default function StatsModel() { const modelTitle = createMemo(() => `${modelName()} Data`) const modelDescription = createMemo(() => stats() - ? `${modelName()} usage, rank, token mix, cost, geo breakdown, and peer data across OpenCode.` - : `${modelName()} model facts, limits, and OpenCode usage availability.`, + ? `${modelName()} usage, rank, token mix, cost, geo breakdown, and peer data across OpenCode Go.` + : `${modelName()} model facts, limits, and OpenCode Go usage availability.`, ) const modelUrl = createMemo(() => new URL( @@ -257,7 +257,7 @@ function ModelHero(props: { data: StatsModelData | null; catalog: ModelCatalogEn Model facts from the shared model index. OpenCode usage appears once this model has activity.

+

Model facts from the shared model index. OpenCode Go usage appears once this model has activity.

} > {(data) => ( @@ -298,7 +298,7 @@ function ModelCatalogCallout(props: { catalog: ModelCatalogEntry | null }) {
Model Profile {props.catalog?.releaseDate ? formatCatalogDate(props.catalog.releaseDate) : "Listed"} -

No OpenCode usage in the current data window.

+

No OpenCode Go usage in the current data window.

) } @@ -329,10 +329,10 @@ function CatalogDatum(props: { label: string; value: string }) { function ModelOverview(props: { data: StatsModelData | null }) { return (
- + } + fallback={} > {(data) => (
@@ -367,7 +367,7 @@ function ModelUsageSection(props: { data: ModelUsagePoint[] }) { return (
- + item.tokens > 0)} fallback={} @@ -461,7 +461,7 @@ function ModelUsageSection(props: { data: ModelUsagePoint[] }) { function ModelEfficiencySection(props: { data: StatsModelData | null; catalog: ModelCatalogEntry | null }) { return (
- + - + 0} - fallback={} + fallback={} >
@@ -684,7 +684,7 @@ function GeoCountryList(props: { function ModelPeersSection(props: { data: StatsModelData | null }) { return (
- + } diff --git a/packages/stats/core/src/domain/home.ts b/packages/stats/core/src/domain/home.ts index ffc1b8bf5..727ac6986 100644 --- a/packages/stats/core/src/domain/home.ts +++ b/packages/stats/core/src/domain/home.ts @@ -23,7 +23,6 @@ export type SessionCostEntry = { model: string; cost: number; tokens: number } export type CountryEntry = { country: string; continent: string; tokens: number; share: number; rank: number } export type ModelUsagePoint = { date: string; tokens: number; sessions: number; cost: number } export type ModelMixEntry = { label: string; tokens: number; share: number } -export type ModelProductEntry = { product: string; tokens: number; sessions: number; share: number } export type ModelPeerEntry = { model: string provider: string @@ -63,7 +62,6 @@ export type StatsModelData = { } usage: ModelUsagePoint[] tokenMix: ModelMixEntry[] - productMix: ModelProductEntry[] country: Record peers: ModelPeerEntry[] } @@ -286,7 +284,6 @@ function buildStatsModelData( }, usage: buildModelUsage(currentRows, window, "2M"), tokenMix: buildModelTokenMix(current), - productMix: buildModelProductMix(modelScopedRows, window, current), country: createRangeRecord((range) => buildCountryStats(geo, getWindow(range, earliest, latest))), peers: buildModelPeers(peers, peerRank, totalTokens), } @@ -523,26 +520,6 @@ function buildModelTokenMix(aggregate: ModelAggregate): ModelMixEntry[] { return items.map((item) => ({ ...item, share: round((item.tokens / total) * 100, 1) })) } -function buildModelProductMix( - rows: StatMetricRow[], - window: DateWindow, - fallback: ModelAggregate, -): ModelProductEntry[] { - const products = ["Go", "Zen", "Enterprise"] as const - const items = products.flatMap((product) => { - const aggregate = combineRowsForModel( - fallback.model, - rows.filter((row) => row.tier === product && row.periodStart >= window.start && row.periodStart < window.end), - ) - if (aggregate.totalTokens === 0) return [] - return [{ product, tokens: aggregate.totalTokens, sessions: aggregate.sessions }] - }) - const total = items.reduce((sum, item) => sum + item.tokens, 0) - if (total > 0) return items.map((item) => ({ ...item, share: round((item.tokens / total) * 100, 1) })) - if (fallback.totalTokens === 0) return [] - return [{ product: "All Users", tokens: fallback.totalTokens, sessions: fallback.sessions, share: 100 }] -} - function buildModelPeers(peers: ModelAggregate[], rank: number, totalTokens: number): ModelPeerEntry[] { const start = Math.max(0, Math.min(rank - 4, Math.max(peers.length - 7, 0))) return peers.slice(start, start + 7).map((item, index) => ({