{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "compensation-band-benchmarking",
  "title": "Compensation Band Benchmarking",
  "type": "registry:block",
  "files": [
    {
      "path": "packages/registry-react/blocks/compensation-band-benchmarking/CompensationBandBenchmarking.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport {\n  Award,\n  BadgeCheck,\n  Building2,\n  CheckCircle2,\n  Coins,\n  DollarSign,\n  Download,\n  Layers,\n  Scale,\n  ShieldCheck,\n  TrendingUp,\n  Users,\n} from 'lucide-react'\nimport { cn } from '@/lib/utils'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Progress } from '@/components/ui/progress'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'\nimport { Separator } from '@/components/ui/separator'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'\n\nexport interface CompensationBandBenchmarkingProps extends React.HTMLAttributes<HTMLDivElement> {\n  initialRole?: string\n}\n\ninterface LevelData {\n  id: string\n  code: string\n  title: string\n  roleTitle: string\n  experience: string\n  scope: string\n  headcount: number\n  p25Base: number\n  p50Base: number\n  p75Base: number\n  p90Base: number\n  equityMin: number\n  equityMax: number\n  equityP50: number\n  totalMin: number\n  totalMax: number\n  totalP50: number\n  compaRatio: number\n  marketP50Base: number\n  marketP50Equity: number\n  marketP50Total: number\n  equityPercent: number\n  badgeVariant: 'default' | 'secondary' | 'outline' | 'info'\n}\n\nconst levels: LevelData[] = [\n  {\n    id: 'ic3',\n    code: 'IC3',\n    title: 'Software Engineer',\n    roleTitle: 'Software Engineer (IC3)',\n    experience: '1–3 yrs experience',\n    scope: 'Feature delivery, component unit tests, and production code execution.',\n    headcount: 28,\n    p25Base: 135000,\n    p50Base: 150000,\n    p75Base: 168000,\n    p90Base: 185000,\n    equityMin: 35000,\n    equityMax: 60000,\n    equityP50: 45000,\n    totalMin: 170000,\n    totalMax: 245000,\n    totalP50: 195000,\n    compaRatio: 101.2,\n    marketP50Base: 148000,\n    marketP50Equity: 44000,\n    marketP50Total: 192000,\n    equityPercent: 23.1,\n    badgeVariant: 'outline',\n  },\n  {\n    id: 'ic4',\n    code: 'IC4',\n    title: 'Senior Engineer',\n    roleTitle: 'Senior Software Engineer (IC4)',\n    experience: '3–6 yrs experience',\n    scope: 'Autonomous service ownership, technical RFC design, and mentoring.',\n    headcount: 42,\n    p25Base: 170000,\n    p50Base: 190000,\n    p75Base: 210000,\n    p90Base: 230000,\n    equityMin: 70000,\n    equityMax: 110000,\n    equityP50: 90000,\n    totalMin: 240000,\n    totalMax: 340000,\n    totalP50: 280000,\n    compaRatio: 101.8,\n    marketP50Base: 187000,\n    marketP50Equity: 88000,\n    marketP50Total: 275000,\n    equityPercent: 32.1,\n    badgeVariant: 'secondary',\n  },\n  {\n    id: 'ic5',\n    code: 'IC5',\n    title: 'Staff Engineer',\n    roleTitle: 'Staff Software Engineer (IC5)',\n    experience: '6–10 yrs experience',\n    scope: 'Cross-team architecture, platform reliability, and engineering standards.',\n    headcount: 18,\n    p25Base: 205000,\n    p50Base: 225000,\n    p75Base: 250000,\n    p90Base: 275000,\n    equityMin: 120000,\n    equityMax: 180000,\n    equityP50: 140000,\n    totalMin: 325000,\n    totalMax: 455000,\n    totalP50: 365000,\n    compaRatio: 102.4,\n    marketP50Base: 220000,\n    marketP50Equity: 136000,\n    marketP50Total: 356000,\n    equityPercent: 38.4,\n    badgeVariant: 'default',\n  },\n  {\n    id: 'ic6',\n    code: 'IC6',\n    title: 'Senior Staff Engineer',\n    roleTitle: 'Senior Staff Software Engineer (IC6)',\n    experience: '10–14 yrs experience',\n    scope: 'Org-wide strategic tech vision, high-scale resilience, and executive partnership.',\n    headcount: 9,\n    p25Base: 240000,\n    p50Base: 265000,\n    p75Base: 295000,\n    p90Base: 330000,\n    equityMin: 180000,\n    equityMax: 280000,\n    equityP50: 225000,\n    totalMin: 420000,\n    totalMax: 610000,\n    totalP50: 490000,\n    compaRatio: 103.1,\n    marketP50Base: 258000,\n    marketP50Equity: 218000,\n    marketP50Total: 476000,\n    equityPercent: 45.9,\n    badgeVariant: 'info',\n  },\n  {\n    id: 'ic7',\n    code: 'IC7',\n    title: 'Principal Engineer',\n    roleTitle: 'Principal Software Engineer (IC7)',\n    experience: '14+ yrs experience',\n    scope: 'Company-level technology roadmap, deep R&D, and industry IP leadership.',\n    headcount: 4,\n    p25Base: 280000,\n    p50Base: 315000,\n    p75Base: 355000,\n    p90Base: 400000,\n    equityMin: 280000,\n    equityMax: 450000,\n    equityP50: 360000,\n    totalMin: 560000,\n    totalMax: 850000,\n    totalP50: 675000,\n    compaRatio: 104.0,\n    marketP50Base: 305000,\n    marketP50Equity: 345000,\n    marketP50Total: 650000,\n    equityPercent: 53.3,\n    badgeVariant: 'default',\n  },\n]\n\n// Scale configuration for multi-bar percentiles ($100k to $420k)\nconst SCALE_MIN = 100000\nconst SCALE_MAX = 420000\nconst SCALE_RANGE = SCALE_MAX - SCALE_MIN\n\nfunction getPercent(val: number): number {\n  return Math.max(0, Math.min(100, ((val - SCALE_MIN) / SCALE_RANGE) * 100))\n}\n\nfunction fmtCurrency(val: number): string {\n  return new Intl.NumberFormat('en-US', {\n    style: 'currency',\n    currency: 'USD',\n    maximumFractionDigits: 0,\n  }).format(val)\n}\n\nfunction fmtK(val: number): string {\n  return `$${Math.round(val / 1000)}k`\n}\n\nfunction exportCsv() {\n  const headers = [\n    'Level Code',\n    'Level Title',\n    'Experience Scope',\n    'Headcount',\n    'P25 Base Salary',\n    'P50 Base Salary (Median)',\n    'P75 Base Salary',\n    'P90 Base Salary',\n    'Equity Range Min',\n    'Equity Range Max',\n    'Median Annual Equity',\n    'Total Comp Min',\n    'Total Comp Max',\n    'Target Total Comp (P50)',\n    'Compa-Ratio (%)',\n  ]\n\n  const rows = levels.map((l) => [\n    l.code,\n    `\"${l.title}\"`,\n    `\"${l.experience}\"`,\n    l.headcount,\n    l.p25Base,\n    l.p50Base,\n    l.p75Base,\n    l.p90Base,\n    l.equityMin,\n    l.equityMax,\n    l.equityP50,\n    l.totalMin,\n    l.totalMax,\n    l.totalP50,\n    l.compaRatio,\n  ])\n\n  const csvContent = 'data:text/csv;charset=utf-8,' + [headers.join(','), ...rows.map((e) => e.join(','))].join('\\n')\n  const encodedUri = encodeURI(csvContent)\n  const link = document.createElement('a')\n  link.setAttribute('href', encodedUri)\n  link.setAttribute('download', 'engineering-compensation-bands-q3-2026.csv')\n  document.body.appendChild(link)\n  link.click()\n  document.body.removeChild(link)\n}\n\nexport function CompensationBandBenchmarking({\n  className,\n  initialRole = 'ic5',\n  ...props\n}: CompensationBandBenchmarkingProps) {\n  const [selectedRoleId, setSelectedRoleId] = React.useState<string>(initialRole)\n\n  const activeLevel = React.useMemo(() => {\n    return levels.find((l) => l.id === selectedRoleId) || levels[2]\n  }, [selectedRoleId])\n\n  return (\n    <div data-slot=\"compensation-band-benchmarking\" className={cn('w-full space-y-6', className)} {...props}>\n      {/* Main Header Card */}\n      <Card className=\"border-border bg-card shadow-xs\">\n        <CardContent className=\"p-6\">\n          <div className=\"flex flex-col gap-6 lg:flex-row lg:items-center lg:justify-between\">\n            {/* Title, Source Badge & Subtitle */}\n            <div className=\"space-y-1.5\">\n              <div className=\"flex flex-wrap items-center gap-2.5\">\n                <h2 className=\"text-foreground text-xl font-bold tracking-tight sm:text-2xl\">\n                  Engineering Compensation Bands & Market Benchmarks\n                </h2>\n                <Badge wrap variant=\"success\" className=\"gap-1 font-semibold shadow-xs\">\n                  <BadgeCheck className=\"text-success size-3.5\" />\n                  <span>Q3 2026 Live Bands</span>\n                </Badge>\n              </div>\n              <p className=\"text-muted-foreground text-sm\">\n                Pave Market Data · SF Bay Area Tier 1 · Q3 2026 (Refreshed Aug 2026 · Sample n = 42,400 Tech ICs)\n              </p>\n              <div className=\"flex flex-wrap items-center gap-3 pt-1\">\n                <Badge wrap variant=\"outline\" className=\"gap-1.5 text-xs font-normal\">\n                  <Building2 className=\"text-primary size-3.5\" />\n                  <span>Benchmark Market: San Francisco Bay Area (Tier 1)</span>\n                </Badge>\n                <Separator orientation=\"vertical\" className=\"hidden h-3.5 sm:block\" />\n                <span className=\"text-muted-foreground text-xs\">\n                  Currency: <strong className=\"text-foreground font-medium\">USD ($) · Annualized</strong>\n                </span>\n                <Separator orientation=\"vertical\" className=\"hidden h-3.5 sm:block\" />\n                <span className=\"text-muted-foreground text-xs\">\n                  Total Engineers Tracked:{' '}\n                  <strong className=\"text-foreground font-medium tabular-nums\">101 Headcount</strong>\n                </span>\n              </div>\n            </div>\n\n            {/* Controls: Role Selector & Export CSV Button */}\n            <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center\">\n              <div className=\"w-full sm:w-64\">\n                <label htmlFor=\"role-select\" className=\"text-muted-foreground mb-1 block text-xs font-medium\">\n                  Focus Benchmark Level:\n                </label>\n                <Select value={selectedRoleId} onValueChange={setSelectedRoleId}>\n                  <SelectTrigger id=\"role-select\" className=\"bg-background h-9 w-full text-xs font-medium\">\n                    <SelectValue placeholder=\"Select engineering role\" />\n                  </SelectTrigger>\n                  <SelectContent>\n                    {levels.map((lvl) => (\n                      <SelectItem key={lvl.id} value={lvl.id} className=\"text-xs\">\n                        {lvl.roleTitle}\n                      </SelectItem>\n                    ))}\n                  </SelectContent>\n                </Select>\n              </div>\n\n              <div className=\"sm:self-end\">\n                <Button\n                  aria-label=\"Download attachment\"\n                  variant=\"outline\"\n                  size=\"sm\"\n                  className=\"h-9 w-full gap-2 shadow-xs sm:w-auto\"\n                  onClick={exportCsv}\n                >\n                  <Download className=\"size-4\" />\n                  <span>Export Bands CSV</span>\n                </Button>\n              </div>\n            </div>\n          </div>\n        </CardContent>\n      </Card>\n\n      {/* 4 Compensation Summary Cards */}\n      <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n        {/* 1. Median Base Salary */}\n        <Card className=\"border-border bg-card flex flex-col justify-between shadow-xs\">\n          <CardHeader className=\"pb-2\">\n            <div className=\"flex flex-wrap items-center justify-between gap-2\">\n              <div className=\"flex min-w-0 items-center gap-2\">\n                <div\n                  className=\"bg-muted border-border flex size-8 shrink-0 items-center justify-center rounded-lg border shadow-xs\"\n                  aria-hidden=\"true\"\n                >\n                  <DollarSign className=\"text-primary size-4\" />\n                </div>\n                <CardTitle className=\"text-muted-foreground truncate text-xs font-medium\">Median Base Salary</CardTitle>\n              </div>\n              <Badge wrap variant=\"outline\" className=\"shrink-0 text-xs font-medium tabular-nums\">\n                {activeLevel.code} · P50 Market\n              </Badge>\n            </div>\n          </CardHeader>\n          <CardContent className=\"space-y-3 pt-1\">\n            <div>\n              <div className=\"mb-1 flex flex-wrap items-baseline justify-between gap-x-2 gap-y-0.5\">\n                <div className=\"flex items-baseline gap-1.5\">\n                  <span className=\"text-foreground text-2xl font-bold tracking-tight tabular-nums sm:text-3xl\">\n                    {fmtCurrency(activeLevel.p50Base)}\n                  </span>\n                  <span className=\"text-muted-foreground text-xs font-normal\">/ yr</span>\n                </div>\n                <div className=\"text-success flex items-center gap-1 text-xs font-medium\">\n                  <TrendingUp className=\"size-3\" />\n                  <span className=\"tabular-nums\">+2.3% Pave P50</span>\n                </div>\n              </div>\n              <Progress value={getPercent(activeLevel.p50Base)} className=\"h-1.5 w-full\" />\n            </div>\n\n            <div className=\"border-border/60 border-t pt-2.5 text-xs\">\n              <div className=\"text-muted-foreground flex items-center justify-between\">\n                <span>Band Range (P25–P90):</span>\n                <span className=\"text-foreground font-semibold tabular-nums\">\n                  {fmtK(activeLevel.p25Base)} – {fmtK(activeLevel.p90Base)}\n                </span>\n              </div>\n              <p className=\"text-muted-foreground mt-1 line-clamp-1 text-xs\">\n                Market baseline for {activeLevel.title} with {activeLevel.experience}.\n              </p>\n            </div>\n          </CardContent>\n        </Card>\n\n        {/* 2. Median Annual Equity / RSU */}\n        <Card className=\"border-border bg-card flex flex-col justify-between shadow-xs\">\n          <CardHeader className=\"pb-2\">\n            <div className=\"flex flex-wrap items-center justify-between gap-2\">\n              <div className=\"flex min-w-0 items-center gap-2\">\n                <div\n                  className=\"bg-muted border-border flex size-8 shrink-0 items-center justify-center rounded-lg border shadow-xs\"\n                  aria-hidden=\"true\"\n                >\n                  <Coins className=\"text-info size-4\" />\n                </div>\n                <CardTitle className=\"text-muted-foreground truncate text-xs font-medium\">\n                  Median Annual Equity / RSU\n                </CardTitle>\n              </div>\n              <Badge wrap variant=\"secondary\" className=\"shrink-0 text-xs font-medium tabular-nums\">\n                {activeLevel.equityPercent}% Total Comp\n              </Badge>\n            </div>\n          </CardHeader>\n          <CardContent className=\"space-y-3 pt-1\">\n            <div>\n              <div className=\"mb-1 flex flex-wrap items-baseline justify-between gap-x-2 gap-y-0.5\">\n                <div className=\"flex items-baseline gap-1.5\">\n                  <span className=\"text-foreground text-2xl font-bold tracking-tight tabular-nums sm:text-3xl\">\n                    {fmtCurrency(activeLevel.equityP50)}\n                  </span>\n                  <span className=\"text-muted-foreground text-xs font-normal\">/ yr</span>\n                </div>\n                <div className=\"text-muted-foreground flex items-center gap-1 text-xs font-medium\">\n                  <span className=\"tabular-nums\">4-Yr Vesting</span>\n                </div>\n              </div>\n              <Progress\n                value={activeLevel.equityPercent}\n                className=\"[&_[data-slot=progress-indicator]]:bg-info h-1.5 w-full\"\n              />\n            </div>\n\n            <div className=\"border-border/60 border-t pt-2.5 text-xs\">\n              <div className=\"text-muted-foreground flex items-center justify-between\">\n                <span>Annual Grant Band:</span>\n                <span className=\"text-foreground font-semibold tabular-nums\">\n                  {fmtK(activeLevel.equityMin)} – {fmtK(activeLevel.equityMax)} / yr\n                </span>\n              </div>\n              <p className=\"text-muted-foreground mt-1 line-clamp-1 text-xs\">\n                Liquid RSU allocation (4-year vest, 1-year standard cliff).\n              </p>\n            </div>\n          </CardContent>\n        </Card>\n\n        {/* 3. Target Total Compensation */}\n        <Card className=\"border-border bg-card flex flex-col justify-between shadow-xs\">\n          <CardHeader className=\"pb-2\">\n            <div className=\"flex flex-wrap items-center justify-between gap-2\">\n              <div className=\"flex min-w-0 items-center gap-2\">\n                <div\n                  className=\"bg-muted border-border flex size-8 shrink-0 items-center justify-center rounded-lg border shadow-xs\"\n                  aria-hidden=\"true\"\n                >\n                  <Award className=\"text-chart-1 size-4\" />\n                </div>\n                <CardTitle className=\"text-muted-foreground truncate text-xs font-medium\">\n                  Target Total Compensation\n                </CardTitle>\n              </div>\n              <Badge wrap variant=\"outline\" className=\"shrink-0 text-xs font-medium\">\n                Base + Equity\n              </Badge>\n            </div>\n          </CardHeader>\n          <CardContent className=\"space-y-3 pt-1\">\n            <div>\n              <div className=\"mb-1 flex flex-wrap items-baseline justify-between gap-x-2 gap-y-0.5\">\n                <div className=\"flex items-baseline gap-1.5\">\n                  <span className=\"text-foreground text-2xl font-bold tracking-tight tabular-nums sm:text-3xl\">\n                    {fmtCurrency(activeLevel.totalP50)}\n                  </span>\n                  <span className=\"text-muted-foreground text-xs font-normal\">/ yr</span>\n                </div>\n                <div className=\"text-success flex items-center gap-1 text-xs font-medium\">\n                  <TrendingUp className=\"size-3\" />\n                  <span className=\"tabular-nums\">+2.5% vs Mkt</span>\n                </div>\n              </div>\n              <Progress\n                value={getPercent(activeLevel.totalP50)}\n                className=\"[&_[data-slot=progress-indicator]]:bg-chart-1 h-1.5 w-full\"\n              />\n            </div>\n\n            <div className=\"border-border/60 border-t pt-2.5 text-xs\">\n              <div className=\"text-muted-foreground flex items-center justify-between\">\n                <span>Target Total Comp Range:</span>\n                <span className=\"text-foreground font-semibold tabular-nums\">\n                  {fmtK(activeLevel.totalMin)} – {fmtK(activeLevel.totalMax)}\n                </span>\n              </div>\n              <p className=\"text-muted-foreground mt-1 line-clamp-1 text-xs\">\n                Annualized total compensation at P50 target execution.\n              </p>\n            </div>\n          </CardContent>\n        </Card>\n\n        {/* 4. Internal Compa-Ratio */}\n        <Card className=\"border-border bg-card flex flex-col justify-between shadow-xs\">\n          <CardHeader className=\"pb-2\">\n            <div className=\"flex flex-wrap items-center justify-between gap-2\">\n              <div className=\"flex min-w-0 items-center gap-2\">\n                <div\n                  className=\"bg-muted border-border flex size-8 shrink-0 items-center justify-center rounded-lg border shadow-xs\"\n                  aria-hidden=\"true\"\n                >\n                  <Scale className=\"text-success size-4\" />\n                </div>\n                <CardTitle className=\"text-muted-foreground truncate text-xs font-medium\">\n                  Internal Compa-Ratio\n                </CardTitle>\n              </div>\n              <Badge wrap variant=\"success\" className=\"shrink-0 text-xs font-semibold\">\n                Market Competitive\n              </Badge>\n            </div>\n          </CardHeader>\n          <CardContent className=\"space-y-3 pt-1\">\n            <div>\n              <div className=\"mb-1 flex flex-wrap items-baseline justify-between gap-x-2 gap-y-0.5\">\n                <div className=\"flex items-baseline gap-1.5\">\n                  <span className=\"text-foreground text-2xl font-bold tracking-tight tabular-nums sm:text-3xl\">\n                    {activeLevel.compaRatio}%\n                  </span>\n                  <span className=\"text-muted-foreground text-xs font-normal\">Compa</span>\n                </div>\n                <div className=\"text-success flex items-center gap-1 text-xs font-medium\">\n                  <CheckCircle2 className=\"size-3.5\" />\n                  <span>Target Corridor</span>\n                </div>\n              </div>\n              <Progress\n                value={activeLevel.compaRatio - 50}\n                className=\"[&_[data-slot=progress-indicator]]:bg-success h-1.5 w-full\"\n              />\n            </div>\n\n            <div className=\"border-border/60 border-t pt-2.5 text-xs\">\n              <div className=\"text-muted-foreground flex items-center justify-between\">\n                <span>Target Standard:</span>\n                <span className=\"text-foreground font-semibold tabular-nums\">95.0% – 105.0%</span>\n              </div>\n              <p className=\"text-muted-foreground mt-1 line-clamp-1 text-xs\">\n                Pay positioning calibrated strictly inside safe competitive envelope.\n              </p>\n            </div>\n          </CardContent>\n        </Card>\n      </div>\n\n      {/* Level Progression Compensation Matrix (Multi-bar percentile chart / table) */}\n      <Card className=\"border-border bg-card shadow-xs\">\n        <CardHeader className=\"pb-4\">\n          <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between\">\n            <div>\n              <div className=\"flex items-center gap-2\">\n                <Layers className=\"text-primary size-5\" />\n                <CardTitle className=\"text-base font-semibold\">Level Progression Compensation Matrix</CardTitle>\n              </div>\n              <CardDescription className=\"text-xs\">\n                Multi-bar percentile bands (P25 → P50 → P75 → P90) and equity allocations across 5 engineering career\n                levels.\n              </CardDescription>\n            </div>\n            <div className=\"flex flex-wrap items-center gap-2\">\n              <Badge wrap variant=\"outline\" className=\"text-xs font-normal tabular-nums\">\n                Scale: $100k → $420k Base\n              </Badge>\n              <Badge wrap variant=\"secondary\" className=\"text-xs font-medium tabular-nums\">\n                5 Levels · 101 Engineers\n              </Badge>\n            </div>\n          </div>\n        </CardHeader>\n        <CardContent className=\"space-y-4\">\n          {/* Scale Ruler Legend for Base Salary Multi-bar */}\n          <div className=\"bg-muted/40 border-border/80 hidden rounded-lg border p-3 md:block\">\n            <div className=\"flex items-center justify-between text-xs font-medium\">\n              <span className=\"text-muted-foreground\">Base Salary Percentile Scale Guide:</span>\n              <div className=\"flex items-center gap-4 text-xs\">\n                <div className=\"flex items-center gap-1.5\">\n                  <span className=\"border-primary/40 bg-primary/20 size-2.5 rounded-sm border\" />\n                  <span className=\"text-muted-foreground\">P25–P90 Band Corridor</span>\n                </div>\n                <div className=\"flex items-center gap-1.5\">\n                  <span className=\"bg-success ring-success/50 size-2.5 rounded-full ring-1\" />\n                  <span className=\"text-foreground font-semibold\">P50 Median Market Point</span>\n                </div>\n              </div>\n            </div>\n            <div className=\"border-border/60 relative mt-2.5 h-4 border-t pt-1\">\n              <div className=\"text-muted-foreground flex justify-between text-xs tabular-nums\">\n                <span>$100k</span>\n                <span>$150k</span>\n                <span>$200k</span>\n                <span>$250k</span>\n                <span>$300k</span>\n                <span>$350k</span>\n                <span>$400k+</span>\n              </div>\n            </div>\n          </div>\n\n          {/* Table Container with Multi-Bar Visualizers */}\n          <div className=\"border-border overflow-hidden rounded-lg border\">\n            <div className=\"overflow-x-auto\">\n              <Table>\n                <TableHeader className=\"bg-muted/50\">\n                  <TableRow>\n                    <TableHead className=\"w-48 text-xs font-medium\">Level & Role Scope</TableHead>\n                    <TableHead className=\"min-w-[280px] text-xs font-medium\">\n                      Base Salary Band (P25 → P50 → P75 → P90)\n                    </TableHead>\n                    <TableHead className=\"w-40 text-xs font-medium\">Annual RSU Grant</TableHead>\n                    <TableHead className=\"w-44 text-xs font-medium\">Target Total Comp (TTC)</TableHead>\n                    <TableHead className=\"w-36 text-right text-xs font-medium\">Headcount & Compa</TableHead>\n                  </TableRow>\n                </TableHeader>\n                <TableBody>\n                  {levels.map((lvl) => (\n                    <TableRow\n                      key={lvl.id}\n                      className={cn(\n                        'cursor-pointer transition-colors',\n                        selectedRoleId === lvl.id && 'bg-primary/5 dark:bg-primary/10 font-medium',\n                      )}\n                      onClick={() => setSelectedRoleId(lvl.id)}\n                    >\n                      {/* Level Code & Title */}\n                      <TableCell className=\"py-4 align-top\">\n                        <div className=\"space-y-1\">\n                          <div className=\"flex items-center gap-2\">\n                            <Badge wrap variant={lvl.badgeVariant} className=\"font-bold tabular-nums\">\n                              {lvl.code}\n                            </Badge>\n                            <span className=\"text-foreground text-sm font-semibold\">{lvl.title}</span>\n                          </div>\n                          <p className=\"text-muted-foreground text-xs\">{lvl.experience}</p>\n                          <p className=\"text-muted-foreground line-clamp-1 text-xs\">{lvl.scope}</p>\n                        </div>\n                      </TableCell>\n\n                      {/* Base Salary Band Multi-Bar Percentile Visualizer */}\n                      <TableCell className=\"py-4 align-middle\">\n                        <div className=\"space-y-2 py-1\">\n                          {/* Visual Band Track */}\n                          <div className=\"bg-muted border-border/80 relative h-4 w-full overflow-hidden rounded-full border\">\n                            {/* P25 to P90 Range Shading */}\n                            <div\n                              className=\"bg-primary/25 border-primary/40 absolute inset-y-0 rounded-full border\"\n                              style={{\n                                left: `${getPercent(lvl.p25Base)}%`,\n                                width: `${getPercent(lvl.p90Base) - getPercent(lvl.p25Base)}%`,\n                              }}\n                            />\n\n                            {/* P50 to P75 Interquartile Core */}\n                            <div\n                              className=\"bg-primary/30 absolute inset-y-0\"\n                              style={{\n                                left: `${getPercent(lvl.p50Base)}%`,\n                                width: `${getPercent(lvl.p75Base) - getPercent(lvl.p50Base)}%`,\n                              }}\n                            />\n\n                            {/* P25 Marker Line */}\n                            <div\n                              className=\"bg-foreground/40 absolute top-0 bottom-0 w-0.5\"\n                              style={{ left: `${getPercent(lvl.p25Base)}%` }}\n                              title=\"P25 Percentile\"\n                            />\n\n                            {/* P50 Median Marker Dot */}\n                            <div\n                              className=\"border-background bg-success ring-success/40 absolute top-1/2 size-3 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 shadow-xs ring-2\"\n                              style={{ left: `${getPercent(lvl.p50Base)}%` }}\n                              title=\"P50 Median\"\n                            />\n\n                            {/* P75 Marker Line */}\n                            <div\n                              className=\"bg-foreground/40 absolute top-0 bottom-0 w-0.5\"\n                              style={{ left: `${getPercent(lvl.p75Base)}%` }}\n                              title=\"P75 Percentile\"\n                            />\n\n                            {/* P90 Marker Line */}\n                            <div\n                              className=\"bg-foreground/40 absolute top-0 bottom-0 w-0.5\"\n                              style={{ left: `${getPercent(lvl.p90Base)}%` }}\n                              title=\"P90 Percentile\"\n                            />\n                          </div>\n\n                          {/* Percentile Numeric Labels */}\n                          <div className=\"text-muted-foreground flex items-center justify-between text-xs tabular-nums\">\n                            <span>\n                              P25: <strong className=\"text-foreground\">{fmtK(lvl.p25Base)}</strong>\n                            </span>\n                            <span className=\"text-success font-bold\">P50: {fmtK(lvl.p50Base)}</span>\n                            <span>\n                              P75: <strong className=\"text-foreground\">{fmtK(lvl.p75Base)}</strong>\n                            </span>\n                            <span>\n                              P90: <strong className=\"text-foreground\">{fmtK(lvl.p90Base)}</strong>\n                            </span>\n                          </div>\n                        </div>\n                      </TableCell>\n\n                      {/* Annual Equity (RSU) */}\n                      <TableCell className=\"py-4 align-middle\">\n                        <div className=\"space-y-0.5\">\n                          <p className=\"text-foreground text-sm font-semibold tabular-nums\">\n                            {fmtK(lvl.equityMin)} – {fmtK(lvl.equityMax)}\n                          </p>\n                          <p className=\"text-muted-foreground text-xs tabular-nums\">\n                            P50: {fmtCurrency(lvl.equityP50)} / yr\n                          </p>\n                        </div>\n                      </TableCell>\n\n                      {/* Target Total Comp (TTC) */}\n                      <TableCell className=\"py-4 align-middle\">\n                        <div className=\"space-y-0.5\">\n                          <p className=\"text-foreground text-sm font-semibold tabular-nums\">\n                            {fmtK(lvl.totalMin)} – {fmtK(lvl.totalMax)}\n                          </p>\n                          <p className=\"text-success text-success text-xs font-medium tabular-nums\">\n                            Target P50: {fmtCurrency(lvl.totalP50)}\n                          </p>\n                        </div>\n                      </TableCell>\n\n                      {/* Headcount & Compa-Ratio */}\n                      <TableCell className=\"py-4 text-right align-middle\">\n                        <div className=\"flex flex-col items-end gap-1\">\n                          <div className=\"flex items-center gap-1.5 text-xs\">\n                            <Users className=\"text-muted-foreground size-3.5\" />\n                            <span className=\"text-foreground font-medium tabular-nums\">{lvl.headcount} engineers</span>\n                          </div>\n                          <Badge wrap variant=\"success\" className=\"text-xs font-semibold tabular-nums\">\n                            {lvl.compaRatio}% Compa\n                          </Badge>\n                        </div>\n                      </TableCell>\n                    </TableRow>\n                  ))}\n                </TableBody>\n              </Table>\n            </div>\n          </div>\n        </CardContent>\n      </Card>\n\n      {/* Pay Equity & Fair Pay Audit Card */}\n      <Card className=\"border-border bg-card shadow-xs\">\n        <CardHeader className=\"pb-4\">\n          <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between\">\n            <div className=\"space-y-1\">\n              <div className=\"flex items-center gap-2\">\n                <ShieldCheck className=\"text-success size-5\" />\n                <CardTitle className=\"text-base font-semibold\">Pay Equity & Fair Pay Audit Certification</CardTitle>\n              </div>\n              <CardDescription className=\"text-xs\">\n                Independent statistical regression analysis evaluating compensation equity across gender, demographics,\n                and level cohorts.\n              </CardDescription>\n            </div>\n            <Badge wrap variant=\"success\" className=\"gap-1.5 px-3 py-1 text-xs font-semibold shadow-xs\">\n              <Award className=\"text-success size-3.5\" />\n              <span>99.8% Parity Ratio · Certified Fair Pay</span>\n            </Badge>\n          </div>\n        </CardHeader>\n        <CardContent className=\"space-y-6\">\n          {/* 4 Audit Sub-Metrics */}\n          <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n            <div className=\"bg-muted/40 border-border/80 space-y-1 rounded-lg border p-3.5\">\n              <div className=\"text-muted-foreground flex items-center justify-between text-xs\">\n                <span className=\"font-medium\">Gender Pay Parity</span>\n                <Badge wrap variant=\"outline\" className=\"text-success text-xs font-semibold\">\n                  100% Target\n                </Badge>\n              </div>\n              <p className=\"text-foreground text-2xl font-bold tracking-tight tabular-nums\">99.8%</p>\n              <p className=\"text-muted-foreground text-xs\">\n                Female-to-male comp ratio for equal job level and role scope.\n              </p>\n            </div>\n\n            <div className=\"bg-muted/40 border-border/80 space-y-1 rounded-lg border p-3.5\">\n              <div className=\"text-muted-foreground flex items-center justify-between text-xs\">\n                <span className=\"font-medium\">Demographic & URG Parity</span>\n                <Badge wrap variant=\"outline\" className=\"text-success text-xs font-semibold\">\n                  Parity Achieved\n                </Badge>\n              </div>\n              <p className=\"text-foreground text-2xl font-bold tracking-tight tabular-nums\">100.1%</p>\n              <p className=\"text-muted-foreground text-xs\">\n                Statistical comp ratio for underrepresented group cohorts.\n              </p>\n            </div>\n\n            <div className=\"bg-muted/40 border-border/80 space-y-1 rounded-lg border p-3.5\">\n              <div className=\"text-muted-foreground flex items-center justify-between text-xs\">\n                <span className=\"font-medium\">In-Band Compliance</span>\n                <Badge wrap variant=\"outline\" className=\"text-success text-xs font-semibold\">\n                  High Precision\n                </Badge>\n              </div>\n              <p className=\"text-foreground text-2xl font-bold tracking-tight tabular-nums\">97.2%</p>\n              <p className=\"text-muted-foreground text-xs\">\n                Employees placed strictly between approved P25 and P90 boundaries.\n              </p>\n            </div>\n\n            <div className=\"bg-muted/40 border-border/80 space-y-1 rounded-lg border p-3.5\">\n              <div className=\"text-muted-foreground flex items-center justify-between text-xs\">\n                <span className=\"font-medium\">Compression Gini Index</span>\n                <Badge wrap variant=\"outline\" className=\"text-success text-xs font-semibold\">\n                  Low Risk\n                </Badge>\n              </div>\n              <p className=\"text-foreground text-2xl font-bold tracking-tight tabular-nums\">0.11</p>\n              <p className=\"text-muted-foreground text-xs\">\n                Healthy inter-level step progression with zero pay overlap anomalies.\n              </p>\n            </div>\n          </div>\n\n          {/* Parity Safe-Harbor Distribution Meter */}\n          <div className=\"bg-muted/30 border-border space-y-3 rounded-lg border p-4\">\n            <div className=\"flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between\">\n              <span className=\"text-foreground text-xs font-semibold\">\n                Equal Pay Compliance Corridor (95.0% – 105.0%)\n              </span>\n              <span className=\"text-muted-foreground text-xs\">\n                Audit Status:{' '}\n                <strong className=\"text-success font-semibold\">Certified Safe Harbor (0.2% Variance)</strong>\n              </span>\n            </div>\n\n            {/* Visual Corridor Meter */}\n            <div className=\"bg-muted border-border/80 relative h-3.5 w-full overflow-hidden rounded-full border\">\n              {/* Disparity left zone (95-98%) */}\n              <div className=\"bg-warning/20 absolute inset-y-0 left-0 w-[30%]\" />\n              {/* Certified Equal Pay Zone (98-102%) */}\n              <div className=\"bg-success/30 absolute inset-y-0 left-[30%] w-[40%]\" />\n              {/* Premium right zone (102-105%) */}\n              <div className=\"bg-warning/20 absolute inset-y-0 right-0 w-[30%]\" />\n              {/* Exact Company Parity Pin (99.8% -> 48% of bar) */}\n              <div\n                className=\"border-background bg-success ring-success/50 absolute top-1/2 size-3.5 -translate-y-1/2 rounded-full border-2 shadow-xs ring-2\"\n                style={{ left: '48%' }}\n                title=\"Current Company Parity: 99.8%\"\n              />\n            </div>\n\n            <div className=\"text-muted-foreground flex items-center justify-between text-xs tabular-nums\">\n              <span>95.0% (Underpaid Threshold)</span>\n              <span className=\"text-success font-bold\">99.8% (Current Company Parity)</span>\n              <span>100.0% (True Parity)</span>\n              <span>105.0% (Overpaid Threshold)</span>\n            </div>\n          </div>\n\n          {/* Certification Footer Note */}\n          <div className=\"border-border/60 flex flex-col gap-3 border-t pt-4 text-xs sm:flex-row sm:items-center sm:justify-between\">\n            <div className=\"text-muted-foreground flex items-center gap-2\">\n              <CheckCircle2 className=\"text-success size-4 shrink-0\" />\n              <span>\n                Certified by Independent PayParity Institute · Audit ID:{' '}\n                <strong className=\"text-foreground font-mono font-medium\">#EQ-2026-SF-8841</strong>\n              </span>\n            </div>\n            <span className=\"text-muted-foreground\">\n              Next Audit Recertification Scheduled: <strong className=\"text-foreground\">July 2027</strong>\n            </span>\n          </div>\n        </CardContent>\n      </Card>\n    </div>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/CompensationBandBenchmarking.tsx"
    }
  ],
  "dependencies": [
    "lucide-react"
  ],
  "devDependencies": [],
  "registryDependencies": [
    "https://uipkge.dev/r/react/badge.json",
    "https://uipkge.dev/r/react/button.json",
    "https://uipkge.dev/r/react/card.json",
    "https://uipkge.dev/r/react/progress.json",
    "https://uipkge.dev/r/react/select.json",
    "https://uipkge.dev/r/react/separator.json",
    "https://uipkge.dev/r/react/table.json"
  ],
  "description": "Pave/Levels.fyi style engineering salary and equity compensation band visualizer with P25, P50, P75, P90 percentile ranges, level progression matrix, compa-ratio diagnostics, and certified pay equity audit.",
  "categories": [
    "hr",
    "dashboard",
    "analytics",
    "app"
  ]
}