{
  "id": "frost-index-analyst",
  "name": "Analyst Page",
  "theme": "frost-index",
  "category": "Profile & Social",
  "description": "A contributor page where the credibility is a hit rate on published forecasts, shown as a plain table of calls and outcomes rather than as a star rating.",
  "layout": "A 200px identity column pinned left with a fixed-width accuracy figure beneath it, and a scoring table on the right that runs to the page edge with no container.",
  "modules": [
    {
      "key": "who",
      "name": "Identity",
      "html": "\n<aside class=\"wh\"><figure><img src=\"{{ART steel}}\" alt=\"{{ARTALT steel}}\"></figure>\n<h1>R. Vandermeer-Osei</h1><span class=\"m\">Senior economist · joined 2019</span>\n<div class=\"acc\"><b>71<i>%</i></b><span class=\"k\">direction correct</span></div>\n<dl><div><dt>Calls</dt><dd>184</dd></div><div><dt>Median error</dt><dd>0.28pp</dd></div><div><dt>Series</dt><dd>CPI, GDP</dd></div></dl></aside>"
    },
    {
      "key": "calls",
      "name": "Call record",
      "html": "\n<section class=\"cl\"><h2 class=\"k\">Published calls, last twelve</h2>\n<table>\n  <thead><tr><th>Date</th><th>Series</th><th>Period</th><th>Called</th><th>Actual</th><th>Error</th><th>Direction</th></tr></thead>\n  <tbody>\n    <tr><td class=\"n\">2026-08-28</td><td>GB CPI</td><td>2026-08</td><td class=\"n\">3.5</td><td class=\"n\">3.4</td><td class=\"n\">0.10</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-08-14</td><td>GB GDP</td><td>2026-Q2</td><td class=\"n\">0.5</td><td class=\"n\">0.6</td><td class=\"n\">0.10</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-07-30</td><td>GB CPI</td><td>2026-07</td><td class=\"n\">3.9</td><td class=\"n\">3.6</td><td class=\"n\">0.30</td><td class=\"no\">Wrong</td></tr>\n    <tr><td class=\"n\">2026-07-16</td><td>EA CPI</td><td>2026-07</td><td class=\"n\">2.2</td><td class=\"n\">2.3</td><td class=\"n\">0.10</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-06-27</td><td>GB CPI</td><td>2026-06</td><td class=\"n\">3.4</td><td class=\"n\">3.5</td><td class=\"n\">0.10</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-06-12</td><td>GB GDP</td><td>2026-Q1</td><td class=\"n\">0.2</td><td class=\"n\">0.4</td><td class=\"n\">0.20</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-05-29</td><td>GB CPI</td><td>2026-05</td><td class=\"n\">4.0</td><td class=\"n\">3.9</td><td class=\"n\">0.10</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-05-15</td><td>EA CPI</td><td>2026-05</td><td class=\"n\">2.7</td><td class=\"n\">2.4</td><td class=\"n\">0.30</td><td class=\"no\">Wrong</td></tr>\n  </tbody>\n</table></section>"
    },
    {
      "key": "note",
      "name": "Method note",
      "html": "\n<footer class=\"nt\"><span class=\"k\">How this is scored</span><p>A call is correct when it lands on the right side of the previous print and within 0.25pp of the first release. Revisions are ignored, because the call was made against the number that existed at the time. Nobody's score is hidden, including ours.</p></footer>"
    }
  ],
  "moduleCount": 3,
  "reorderable": false,
  "meta": {
    "id": "frost-index-analyst",
    "model": "Claude Opus 5",
    "author": "Claude Code",
    "createdAt": "2026-09-01T19:53:43+09:00",
    "updatedAt": "2026-09-01T19:53:43+09:00",
    "version": "1.0.0",
    "isNew": false
  },
  "link": "/api/v1/designs/frost-index-analyst.json",
  "structure": "A 200px identity column pinned left with a fixed-width accuracy figure beneath it, and a scoring table on the right that runs to the page edge with no container.",
  "html": "<div class=\"dz dz-frost-index-analyst\" data-design=\"frost-index-analyst\" data-theme=\"frost-index\">\n<section class=\"dz-mod\" data-mod=\"who\" aria-label=\"Identity\">\n<aside class=\"wh\"><figure><img src=\"https://designlookbook.dev/assets/img/frost-index-steel.webp\" alt=\"Brushed steel with a cold blue reflection\"></figure>\n<h1>R. Vandermeer-Osei</h1><span class=\"m\">Senior economist · joined 2019</span>\n<div class=\"acc\"><b>71<i>%</i></b><span class=\"k\">direction correct</span></div>\n<dl><div><dt>Calls</dt><dd>184</dd></div><div><dt>Median error</dt><dd>0.28pp</dd></div><div><dt>Series</dt><dd>CPI, GDP</dd></div></dl></aside></section><section class=\"dz-mod\" data-mod=\"calls\" aria-label=\"Call record\">\n<section class=\"cl\"><h2 class=\"k\">Published calls, last twelve</h2>\n<table>\n  <thead><tr><th>Date</th><th>Series</th><th>Period</th><th>Called</th><th>Actual</th><th>Error</th><th>Direction</th></tr></thead>\n  <tbody>\n    <tr><td class=\"n\">2026-08-28</td><td>GB CPI</td><td>2026-08</td><td class=\"n\">3.5</td><td class=\"n\">3.4</td><td class=\"n\">0.10</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-08-14</td><td>GB GDP</td><td>2026-Q2</td><td class=\"n\">0.5</td><td class=\"n\">0.6</td><td class=\"n\">0.10</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-07-30</td><td>GB CPI</td><td>2026-07</td><td class=\"n\">3.9</td><td class=\"n\">3.6</td><td class=\"n\">0.30</td><td class=\"no\">Wrong</td></tr>\n    <tr><td class=\"n\">2026-07-16</td><td>EA CPI</td><td>2026-07</td><td class=\"n\">2.2</td><td class=\"n\">2.3</td><td class=\"n\">0.10</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-06-27</td><td>GB CPI</td><td>2026-06</td><td class=\"n\">3.4</td><td class=\"n\">3.5</td><td class=\"n\">0.10</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-06-12</td><td>GB GDP</td><td>2026-Q1</td><td class=\"n\">0.2</td><td class=\"n\">0.4</td><td class=\"n\">0.20</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-05-29</td><td>GB CPI</td><td>2026-05</td><td class=\"n\">4.0</td><td class=\"n\">3.9</td><td class=\"n\">0.10</td><td class=\"ok\">Correct</td></tr>\n    <tr><td class=\"n\">2026-05-15</td><td>EA CPI</td><td>2026-05</td><td class=\"n\">2.7</td><td class=\"n\">2.4</td><td class=\"n\">0.30</td><td class=\"no\">Wrong</td></tr>\n  </tbody>\n</table></section></section><section class=\"dz-mod\" data-mod=\"note\" aria-label=\"Method note\">\n<footer class=\"nt\"><span class=\"k\">How this is scored</span><p>A call is correct when it lands on the right side of the previous print and within 0.25pp of the first release. Revisions are ignored, because the call was made against the number that existed at the time. Nobody's score is hidden, including ours.</p></footer></section>\n</div>",
  "css": "\n.dz-frost-index-analyst { background: var(--background); color: var(--foreground); font-family: var(--pv-body); display: grid; grid-template-columns: 200px minmax(0, 1fr); column-gap: 30px; padding: 22px 22px 26px; align-content: start; }\n.dz-frost-index-analyst .wh figure { margin: 0 0 12px; }\n.dz-frost-index-analyst .wh img { width: 88px; height: 88px; object-fit: cover; display: block; border-radius: var(--pv-radius-sm); filter: var(--img-filter); }\n.dz-frost-index-analyst .wh h1 { font-family: var(--pv-display); font-size: 20px; font-weight: 600; margin: 0 0 4px; }\n.dz-frost-index-analyst .m { font-size: 11.5px; color: var(--muted-foreground); }\n.dz-frost-index-analyst .k { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-foreground); display: block; }\n.dz-frost-index-analyst .acc { padding: 16px 0; margin: 16px 0; border-top: var(--pv-bw) solid var(--border); border-bottom: var(--pv-bw) solid var(--border); }\n.dz-frost-index-analyst .acc b { font-family: var(--pv-mono); font-size: 44px; font-weight: 600; letter-spacing: -.03em; color: var(--primary); display: block; }\n.dz-frost-index-analyst .acc i { font-size: 20px; font-style: normal; }\n.dz-frost-index-analyst .wh dl { margin: 0; }\n.dz-frost-index-analyst .wh dl div { display: flex; justify-content: space-between; align-items: baseline; height: 28px; border-bottom: var(--pv-bw) solid var(--border); }\n.dz-frost-index-analyst .wh dt { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-foreground); }\n.dz-frost-index-analyst .wh dd { margin: 0; font-family: var(--pv-mono); font-feature-settings: \"tnum\" 1, \"zero\" 1; text-align: right; font-size: 12.5px; }\n.dz-frost-index-analyst .cl h2 { margin: 0 0 10px; }\n.dz-frost-index-analyst table { width: 100%; border-collapse: collapse; }\n.dz-frost-index-analyst th { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-foreground); text-align: right; padding: 9px 12px; border-bottom: var(--pv-bw) solid var(--border); border-top: var(--pv-bw) solid var(--border); }\n.dz-frost-index-analyst th:first-child, .dz-frost-index-analyst th:nth-child(2), .dz-frost-index-analyst th:nth-child(3), .dz-frost-index-analyst th:last-child { text-align: left; }\n.dz-frost-index-analyst td { padding: 0 12px; height: 32px; font-size: 13px; border-bottom: var(--pv-bw) solid var(--border); }\n.dz-frost-index-analyst .n { font-family: var(--pv-mono); font-feature-settings: \"tnum\" 1, \"zero\" 1; text-align: right; font-size: 12.5px; }\n.dz-frost-index-analyst td:first-child.n, .dz-frost-index-analyst td:nth-child(3) { text-align: left; }\n.dz-frost-index-analyst .ok { color: var(--primary); } .dz-frost-index-analyst .no { color: var(--destructive); }\n.dz-frost-index-analyst tbody tr:hover td { background: color-mix(in srgb, var(--primary) 8%, var(--background)); }\n.dz-frost-index-analyst .nt { grid-column: 2 / 3; padding-top: 20px; }\n.dz-frost-index-analyst .nt p { font-size: 13px; line-height: 1.6; color: var(--muted-foreground); margin: 8px 0 0; max-width: 72ch; }\n@media (prefers-reduced-motion: reduce) { .dz-frost-index-analyst *, .dz-frost-index-analyst *::before, .dz-frost-index-analyst *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }",
  "requiredTheme": "/api/v1/themes/frost-index.json",
  "googleFontsHref": "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap"
}