{
  "dataset": "role-family-snapshot",
  "title": "Open postings by role family",
  "description": "A point-in-time count of open postings in each role family, with the observed population it came from and how much of that population could be placed into a family at all.",
  "release": "2026-11-05.1",
  "generatedAt": "2026-11-05T09:20:20.818Z",
  "license": "CC-BY-4.0",
  "attribution": "Analytics Engineering Observatory",
  "notes": [
    "Figures describe an observed sample of open postings, not the whole job market.",
    "Permitted claim class for this release: SNAPSHOT_ONLY."
  ],
  "rowCount": 9,
  "columns": [
    "role_family",
    "open_postings",
    "total_open_postings",
    "classified_postings",
    "pct_of_observed_postings",
    "classification_coverage_pct",
    "postings_with_salary",
    "salary_disclosure_pct",
    "postings_with_location",
    "postings_remote",
    "postings_hybrid",
    "postings_onsite",
    "postings_remote_unknown",
    "supports_comparison",
    "small_sample_caveat",
    "computed_at"
  ],
  "rows": [
    {
      "role_family": "ANALYTICS_ENGINEER",
      "open_postings": 13,
      "total_open_postings": 6335,
      "classified_postings": 252,
      "pct_of_observed_postings": 0.2,
      "classification_coverage_pct": 4,
      "postings_with_salary": 8,
      "salary_disclosure_pct": null,
      "postings_with_location": 12,
      "postings_remote": 8,
      "postings_hybrid": 0,
      "postings_onsite": 0,
      "postings_remote_unknown": 5,
      "supports_comparison": false,
      "small_sample_caveat": "Counted in full, but below 30 postings — too small to compare against another family or to read as a trend.",
      "computed_at": "2026-11-05T09:20:11.926Z"
    },
    {
      "role_family": "BI_DEVELOPER",
      "open_postings": 1,
      "total_open_postings": 6335,
      "classified_postings": 252,
      "pct_of_observed_postings": 0,
      "classification_coverage_pct": 4,
      "postings_with_salary": 0,
      "salary_disclosure_pct": null,
      "postings_with_location": 1,
      "postings_remote": 0,
      "postings_hybrid": 0,
      "postings_onsite": 0,
      "postings_remote_unknown": 1,
      "supports_comparison": false,
      "small_sample_caveat": "Counted in full, but below 30 postings — too small to compare against another family or to read as a trend.",
      "computed_at": "2026-11-05T09:20:11.926Z"
    },
    {
      "role_family": "DATA_ANALYST",
      "open_postings": 25,
      "total_open_postings": 6335,
      "classified_postings": 252,
      "pct_of_observed_postings": 0.4,
      "classification_coverage_pct": 4,
      "postings_with_salary": 6,
      "salary_disclosure_pct": null,
      "postings_with_location": 22,
      "postings_remote": 6,
      "postings_hybrid": 2,
      "postings_onsite": 0,
      "postings_remote_unknown": 17,
      "supports_comparison": false,
      "small_sample_caveat": "Counted in full, but below 30 postings — too small to compare against another family or to read as a trend.",
      "computed_at": "2026-11-05T09:20:11.926Z"
    },
    {
      "role_family": "DATA_ARCHITECT",
      "open_postings": 1,
      "total_open_postings": 6335,
      "classified_postings": 252,
      "pct_of_observed_postings": 0,
      "classification_coverage_pct": 4,
      "postings_with_salary": 0,
      "salary_disclosure_pct": null,
      "postings_with_location": 1,
      "postings_remote": 0,
      "postings_hybrid": 0,
      "postings_onsite": 0,
      "postings_remote_unknown": 1,
      "supports_comparison": false,
      "small_sample_caveat": "Counted in full, but below 30 postings — too small to compare against another family or to read as a trend.",
      "computed_at": "2026-11-05T09:20:11.926Z"
    },
    {
      "role_family": "DATA_ENGINEER",
      "open_postings": 32,
      "total_open_postings": 6335,
      "classified_postings": 252,
      "pct_of_observed_postings": 0.5,
      "classification_coverage_pct": 4,
      "postings_with_salary": 9,
      "salary_disclosure_pct": 28.1,
      "postings_with_location": 28,
      "postings_remote": 6,
      "postings_hybrid": 0,
      "postings_onsite": 1,
      "postings_remote_unknown": 25,
      "supports_comparison": true,
      "small_sample_caveat": null,
      "computed_at": "2026-11-05T09:20:11.926Z"
    },
    {
      "role_family": "DATA_LEADERSHIP",
      "open_postings": 1,
      "total_open_postings": 6335,
      "classified_postings": 252,
      "pct_of_observed_postings": 0,
      "classification_coverage_pct": 4,
      "postings_with_salary": 1,
      "salary_disclosure_pct": null,
      "postings_with_location": 1,
      "postings_remote": 1,
      "postings_hybrid": 0,
      "postings_onsite": 0,
      "postings_remote_unknown": 0,
      "supports_comparison": false,
      "small_sample_caveat": "Counted in full, but below 30 postings — too small to compare against another family or to read as a trend.",
      "computed_at": "2026-11-05T09:20:11.926Z"
    },
    {
      "role_family": "DATA_SCIENTIST",
      "open_postings": 63,
      "total_open_postings": 6335,
      "classified_postings": 252,
      "pct_of_observed_postings": 1,
      "classification_coverage_pct": 4,
      "postings_with_salary": 31,
      "salary_disclosure_pct": 49.2,
      "postings_with_location": 47,
      "postings_remote": 22,
      "postings_hybrid": 2,
      "postings_onsite": 1,
      "postings_remote_unknown": 38,
      "supports_comparison": true,
      "small_sample_caveat": null,
      "computed_at": "2026-11-05T09:20:11.926Z"
    },
    {
      "role_family": "ML_ENGINEER",
      "open_postings": 116,
      "total_open_postings": 6335,
      "classified_postings": 252,
      "pct_of_observed_postings": 1.8,
      "classification_coverage_pct": 4,
      "postings_with_salary": 43,
      "salary_disclosure_pct": 37.1,
      "postings_with_location": 91,
      "postings_remote": 54,
      "postings_hybrid": 5,
      "postings_onsite": 0,
      "postings_remote_unknown": 57,
      "supports_comparison": true,
      "small_sample_caveat": null,
      "computed_at": "2026-11-05T09:20:11.926Z"
    },
    {
      "role_family": "UNMATCHED",
      "open_postings": 6083,
      "total_open_postings": 6335,
      "classified_postings": 252,
      "pct_of_observed_postings": 96,
      "classification_coverage_pct": 4,
      "postings_with_salary": 2241,
      "salary_disclosure_pct": 36.8,
      "postings_with_location": 4582,
      "postings_remote": 1577,
      "postings_hybrid": 493,
      "postings_onsite": 42,
      "postings_remote_unknown": 3971,
      "supports_comparison": true,
      "small_sample_caveat": null,
      "computed_at": "2026-11-05T09:20:11.926Z"
    }
  ]
}
