@@ -482,7 +482,7 @@ async function loadDetails(vendor, model, basePath, strategy = null) {
482482// Create round distribution histogram with stacked bars by seed
483483// Note: stats parameter is now runs array with new schema
484484function createRoundHistogram ( runs , canvasId ) {
485- const rounds = runs . map ( run => run . final_round ) ;
485+ const rounds = runs . map ( run => run . final_round_norm ) ;
486486 const maxRound = Math . max ( ...rounds ) ;
487487 const minRound = 1 ;
488488
@@ -516,7 +516,8 @@ function createRoundHistogram(runs, canvasId) {
516516 const datasets = seeds . map ( seed => {
517517 const counts = bins . map ( round => {
518518 // New schema: run.config.seed (instead of s.seed)
519- return runs . filter ( r => r . final_round === round && ( r . config ?. seed || 'Unknown' ) ===
519+ return runs . filter ( r => r . final_round_norm === round && ( r . config ?. seed ||
520+ 'Unknown' ) ===
520521 seed )
521522 . length ;
522523 } ) ;
@@ -648,9 +649,9 @@ function createPerformanceBarChart(entries) {
648649 const model = entry . model . name ;
649650
650651 models . push ( model ) ;
651- // New schema: avg_round and std_round (instead of avg_final_round and std_dev_final_round )
652- avgRounds . push ( entry . avg_round ) ;
653- stdDevs . push ( entry . std_round ) ;
652+ // Normalized rounds: avg_round_norm and std_round_norm (accounts for voucher penalties )
653+ avgRounds . push ( entry . avg_round_norm ) ;
654+ stdDevs . push ( entry . std_round_norm ) ;
654655 vendors . push ( vendor ) ;
655656
656657 const base = themePalette . vendors [ vendor ] ;
@@ -865,11 +866,11 @@ function createDetailRow(stats, modelName, data, vendor, model, basePath, strate
865866 const avgCost = `${ ( run . stats . cost_avg * 1000 ) . toFixed ( 2 ) } ` ;
866867 const costStdDev = `${ ( run . stats . cost_std * 1000 ) . toFixed ( 2 ) } ` ;
867868
868- // New schema: run.config.seed (instead of stat.seed ) and run.final_round
869+ // Normalized round (accounts for voucher penalties ) and seed
869870 detailTableRows += `
870871 <tr class="hover:bg-zinc-200 hover:dark:bg-zinc-700 text-xs">
871872 <td class="px-2 py-2 text-center text-zinc-700 dark:text-zinc-300 font-mono">${ run . config ?. seed || 'Unknown' } </td>
872- <td class="px-2 py-2 text-center text-zinc-700 dark:text-zinc-300 font-mono">${ run . final_round } </td>
873+ <td class="px-2 py-2 text-center text-zinc-700 dark:text-zinc-300 font-mono">${ run . final_round_norm } </td>
873874 <td class="px-2 py-2 text-center text-green-600 dark:text-green-400 font-mono">${ successRate } %</td>
874875 <td class="px-2 py-2 text-center text-yellow-600 dark:text-yellow-400 font-mono">${ failedRate } %</td>
875876 <td class="px-2 py-2 text-center text-red-600 dark:text-red-400 font-mono">${ errorRate } %</td>
@@ -1238,9 +1239,9 @@ async function loadLeaderboard(leaderboardPath, detailBasePath, displayMode = 'm
12381239 const errorRate = ( ( entry . stats . calls_error / entry . stats . calls_total ) * 100 ) . toFixed (
12391240 0 ) ;
12401241
1241- // Format averages with standard deviation - New schema: avg_round/std_round and stats.*
1242- const avgRound = `${ entry . avg_round . toFixed ( 1 ) } ` ;
1243- const avgRoundStdDev = `${ entry . std_round . toFixed ( 1 ) } ` ;
1242+ // Format averages with standard deviation - avg_round_norm/std_round_norm (accounts for voucher penalties)
1243+ const avgRound = `${ entry . avg_round_norm . toFixed ( 1 ) } ` ;
1244+ const avgRoundStdDev = `${ entry . std_round_norm . toFixed ( 1 ) } ` ;
12441245
12451246 const avgInputTokens = `${ entry . stats . tokens_in_avg . toFixed ( 0 ) } ` ;
12461247 const avgInputTokensStdDev = `${ entry . stats . tokens_in_std . toFixed ( 0 ) } ` ;
0 commit comments