{
  "asOf": "2026-10-29",
  "windowDays": 7,
  "window": {
    "from": "2026-10-23",
    "to": "2026-10-29"
  },
  "priorWindow": {
    "from": "2026-10-16",
    "to": "2026-10-22"
  },
  "overall": {
    "score": 47,
    "scoreDisplay": 47,
    "band": "Stable",
    "demand": 62,
    "supply": 50,
    "culture": 50,
    "confidence": 1,
    "asOf": "2026-10-29"
  },
  "rolesMeasured": 6,
  "roleAverage": 47.5,
  "roleAverageDisplay": 48,
  "note": "Per-role demand index (0-100) from Adzuna + DataForSEO Google Jobs over a trailing 7-day window, in the context of the overall weekly FWI. Form D filings provide financing context; their relationship to future fractional demand has not been validated.",
  "method": "For each role, each demand source is averaged across the trailing 7 days, then the sources are averaged together. change7d compares that window to the 7 days before it. Supply is not published per role because the supply sources are not role-differentiated once normalized.",
  "display": "Levels (demand, roleAverage, overall.score) carry full precision here; the *Display fields are the whole numbers every human surface shows, and band is computed from the display value so a label can never contradict the number beside it. Changes (change7d, vsRoleAverage) keep one decimal.",
  "roles": [
    {
      "role": "cfo",
      "label": "Fractional CFO",
      "slug": "fractional-cfo",
      "demand": 72.5,
      "demandDisplay": 73,
      "band": "Growing",
      "prevDemand": 72.5,
      "change7d": 0,
      "direction": "flat",
      "sources": [
        "adzuna",
        "serpapi_jobs"
      ],
      "observations": 12,
      "postings": [
        {
          "source": "adzuna",
          "count": 262,
          "date": "2026-10-29"
        },
        {
          "source": "serpapi_jobs",
          "count": 10,
          "date": "2026-10-29"
        }
      ],
      "rank": 1,
      "vsRoleAverage": 25
    },
    {
      "role": "cmo",
      "label": "Fractional CMO",
      "slug": "fractional-cmo",
      "demand": 50.5,
      "demandDisplay": 51,
      "band": "Stable",
      "prevDemand": 47.3,
      "change7d": 3.2,
      "direction": "rising",
      "sources": [
        "adzuna",
        "serpapi_jobs"
      ],
      "observations": 13,
      "postings": [
        {
          "source": "adzuna",
          "count": 23,
          "date": "2026-10-29"
        },
        {
          "source": "serpapi_jobs",
          "count": 10,
          "date": "2026-10-29"
        }
      ],
      "rank": 2,
      "vsRoleAverage": 3
    },
    {
      "role": "cto",
      "label": "Fractional CTO",
      "slug": "fractional-cto",
      "demand": 45.5,
      "demandDisplay": 46,
      "band": "Stable",
      "prevDemand": 45.3,
      "change7d": 0.2,
      "direction": "flat",
      "sources": [
        "adzuna",
        "serpapi_jobs"
      ],
      "observations": 9,
      "postings": [
        {
          "source": "serpapi_jobs",
          "count": 10,
          "date": "2026-10-29"
        },
        {
          "source": "adzuna",
          "count": 10,
          "date": "2026-10-24"
        }
      ],
      "rank": 3,
      "vsRoleAverage": -2
    },
    {
      "role": "coo",
      "label": "Fractional COO",
      "slug": "fractional-coo",
      "demand": 41.6,
      "demandDisplay": 42,
      "band": "Cooling",
      "prevDemand": 40.5,
      "change7d": 1.1,
      "direction": "rising",
      "sources": [
        "adzuna",
        "serpapi_jobs"
      ],
      "observations": 13,
      "postings": [
        {
          "source": "serpapi_jobs",
          "count": 10,
          "date": "2026-10-29"
        },
        {
          "source": "adzuna",
          "count": 7,
          "date": "2026-10-28"
        }
      ],
      "rank": 4,
      "vsRoleAverage": -5.9
    },
    {
      "role": "cro",
      "label": "Fractional CRO",
      "slug": "fractional-cro",
      "demand": 40.5,
      "demandDisplay": 41,
      "band": "Cooling",
      "prevDemand": 40.1,
      "change7d": 0.4,
      "direction": "flat",
      "sources": [
        "adzuna",
        "serpapi_jobs"
      ],
      "observations": 10,
      "postings": [
        {
          "source": "adzuna",
          "count": 8,
          "date": "2026-10-29"
        },
        {
          "source": "serpapi_jobs",
          "count": 6,
          "date": "2026-10-29"
        }
      ],
      "rank": 5,
      "vsRoleAverage": -7
    },
    {
      "role": "ceo",
      "label": "Interim CEO",
      "slug": "fractional-ceo",
      "demand": 34.5,
      "demandDisplay": 35,
      "band": "Cooling",
      "prevDemand": 29.6,
      "change7d": 4.9,
      "direction": "rising",
      "sources": [
        "adzuna",
        "serpapi_jobs"
      ],
      "observations": 12,
      "postings": [
        {
          "source": "adzuna",
          "count": 6,
          "date": "2026-10-29"
        },
        {
          "source": "serpapi_jobs",
          "count": 5,
          "date": "2026-10-29"
        }
      ],
      "rank": 6,
      "vsRoleAverage": -13
    }
  ]
}