diff --git a/benchmarks/perp-fees.yml b/benchmarks/perp-fees.yml
index 18e00cbd..c212e0f6 100644
--- a/benchmarks/perp-fees.yml
+++ b/benchmarks/perp-fees.yml
@@ -249,6 +249,7 @@ providers:
# paneled (it duplicates the headline) and $10k reads within noise of
# $1k on every venue, so the panels show the two sizes where the story
# changes: $100k and $1M.
+panel_main_label: All-in at $1k
metric_panels:
- id: all_in_100k
label: All-in at $100k
diff --git a/public/logos/monad.png b/public/logos/monad.png
index 32bc56e6..5262dff4 100644
Binary files a/public/logos/monad.png and b/public/logos/monad.png differ
diff --git a/public/logos/paradex.svg b/public/logos/paradex.svg
deleted file mode 100644
index 4b4e0218..00000000
--- a/public/logos/paradex.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
\ No newline at end of file
diff --git a/src/components/benchmark-body.tsx b/src/components/benchmark-body.tsx
index 57029a6b..560b0877 100644
--- a/src/components/benchmark-body.tsx
+++ b/src/components/benchmark-body.tsx
@@ -720,7 +720,7 @@ export function BenchmarkBody({
return tabPanels.length > 0 ? (
@@ -767,7 +767,7 @@ export function BenchmarkBody({
return tabPanels.length > 0 ? (
diff --git a/src/lib/logo-manifest.ts b/src/lib/logo-manifest.ts
index d580c026..6d3d7c3d 100644
--- a/src/lib/logo-manifest.ts
+++ b/src/lib/logo-manifest.ts
@@ -210,7 +210,7 @@ const RAW: Record = {
// ─── Perp funding venues (bench № 036) ───
bybit: "/logos/bybit.jpg",
okx: "/logos/okx.jpg",
- paradex: "/logos/paradex.svg",
+ paradex: "/logos/paradex.jpg",
aster: "/logos/aster.svg",
// ─── Perp funding stability cohort additions (bench № 043) ───
diff --git a/src/lib/materialize/load.ts b/src/lib/materialize/load.ts
index e03887e0..17fc8633 100644
--- a/src/lib/materialize/load.ts
+++ b/src/lib/materialize/load.ts
@@ -135,6 +135,7 @@ export function buildEditorial(
status: spec.status,
editorialStatus: spec.status,
metric: spec.metric,
+ panelMainLabel: spec.panel_main_label,
unit: spec.unit,
higherIsBetter: spec.higher_is_better,
abstract: spec.abstract,
diff --git a/src/lib/spec-schema.ts b/src/lib/spec-schema.ts
index 9f73f760..423f7236 100644
--- a/src/lib/spec-schema.ts
+++ b/src/lib/spec-schema.ts
@@ -382,6 +382,10 @@ export const SpecSchema = z
* frontends bench to surface execution quality, outage signal, taker
* share, etc. without changing the main p50 headline.
*/
+ /* Label for the headline tab of the metric panel switcher. Defaults
+ * to `metric`; set it when the panels are size/window variants and
+ * the headline needs its variant spelled out (e.g. "All-in at $1k"). */
+ panel_main_label: z.string().min(1).max(80).optional(),
metric_panels: z
.array(
z.object({
diff --git a/src/types/benchmark.ts b/src/types/benchmark.ts
index 5cff01e3..aa616968 100644
--- a/src/types/benchmark.ts
+++ b/src/types/benchmark.ts
@@ -254,6 +254,7 @@ export type Benchmark = {
* below the main table. Populated by the spec loader from
* `metric_panels` in the YAML. */
metricPanels?: MetricPanel[];
+ panelMainLabel?: string;
/** Optional per-bench relabeling of the ledger's aggregate columns.
* Declared by benches whose unit has no percentile semantics (the
* p50/p90/p99/mean slots are repurposed, e.g. USD revenue leaderboards)