{
 "as_of": "2026-08-01",
 "quarter": "Q3 2026",
 "currency": "EUR",
 "_meta": {
  "note": "Q3 2026 is the first issue published with PER-ROW PROVENANCE. Q2 and earlier carried a bare `sample_size` on every row, which read as one panel observed everything. It did not: those were editorial figures. Each row here names its source, its basis, and the sample the source itself states. Where a source states no sample, `sample_size` is null - never estimated.",
  "why_the_shape_changed": "Granularity now follows the sources, not the schema. France publishes per-module medians (BW, BW/4HANA, SAC, Datasphere) so France is per-module. Germany's published benchmarks stop at 'SAP BI/Analytics' with an explicit refusal to break out modules, so Germany is aggregate - inventing DE per-module bands would be manufacturing precision the source does not have.",
  "basis_values": {
   "external_published_median": "a third party published a median (and often percentiles) over its own ad/profile corpus",
   "external_published_range": "a third party published a range without a median",
   "panel": "Analytics Legends' own consultant panel - NOT used in this issue"
  },
  "not_our_panel": "No row in this issue is `panel`. The platform's contracts corpus was checked as a candidate source and rejected: of 803 served rows, 14 carry an observed day rate and all 14 are `rate_basis: panel_inferred` - derived FROM the rate bands, so deriving bands back out of them would be circular. 0 (country x category) cells reach 8 observations.",
  "reading_rule": "These are marketplace and job-ad medians. They sit BELOW direct-client rates by construction: an intermediary's margin is inside the number. Do not read a median here as what a consultant can charge a client directly."
 },
 "rates": [
  {
   "country": "DE",
   "specialisation": "analytics_all",
   "seniority": "senior",
   "daily_rate_min_eur": 1050,
   "daily_rate_max_eur": 1400,
   "yoy_change_pct": null,
   "sample_size": null,
   "basis": "external_published_range",
   "confidence": "medium",
   "source": "Freelancer-Kompass 2025, via my-xperts SAP freelancer day rates 2026",
   "source_url": "https://my-xperts.com/sap-freelancer-tagessatz-2026/",
   "source_date": "2026-06-22",
   "note": "Senior 10+ yrs EUR 1,050-1,200, highly specialised to EUR 1,400+. SAP BI/Analytics is quoted ~15% above the EUR 1,180 all-module median (~EUR 1,357). The source explicitly does NOT break analytics out per module."
  },
  {
   "country": "DE",
   "specialisation": "analytics_all",
   "seniority": "mid",
   "daily_rate_min_eur": 840,
   "daily_rate_max_eur": 960,
   "yoy_change_pct": null,
   "sample_size": null,
   "basis": "external_published_range",
   "confidence": "medium",
   "source": "Freelancer-Kompass 2025, via my-xperts SAP freelancer day rates 2026",
   "source_url": "https://my-xperts.com/sap-freelancer-tagessatz-2026/",
   "source_date": "2026-06-22",
   "note": "5-10 yrs, EUR 105-120/h at 8h."
  },
  {
   "country": "DE",
   "specialisation": "analytics_all",
   "seniority": "junior",
   "daily_rate_min_eur": 720,
   "daily_rate_max_eur": 820,
   "yoy_change_pct": null,
   "sample_size": null,
   "basis": "external_published_range",
   "confidence": "medium",
   "source": "Freelancer-Kompass 2025, via my-xperts SAP freelancer day rates 2026",
   "source_url": "https://my-xperts.com/sap-freelancer-tagessatz-2026/",
   "source_date": "2026-06-22",
   "note": "0-5 yrs, EUR 90-103/h at 8h."
  },
  {
   "country": "FR",
   "specialisation": "bw",
   "seniority": "all",
   "daily_rate_min_eur": 480,
   "daily_rate_max_eur": 640,
   "daily_rate_median_eur": 570,
   "yoy_change_pct": null,
   "sample_size": 420,
   "sample_basis": "profiles (15 missions) in the source's French BW market scan",
   "basis": "external_published_median",
   "confidence": "medium",
   "source": "LinkQuest - guide SAP BW",
   "source_url": "https://linkquest.fr/blog/guide-sap-bw-business-warehouse",
   "source_date": "2026-03-26",
   "trend": "declining"
  },
  {
   "country": "FR",
   "specialisation": "bw4hana",
   "seniority": "all",
   "daily_rate_min_eur": 570,
   "daily_rate_max_eur": 740,
   "daily_rate_median_eur": 660,
   "yoy_change_pct": null,
   "sample_size": 420,
   "sample_basis": "profiles (15 missions) in the source's French BW market scan",
   "basis": "external_published_median",
   "confidence": "medium",
   "source": "LinkQuest - guide SAP BW",
   "source_url": "https://linkquest.fr/blog/guide-sap-bw-business-warehouse",
   "source_date": "2026-03-26",
   "trend": "rising"
  },
  {
   "country": "FR",
   "specialisation": "bw4hana_sac",
   "seniority": "all",
   "daily_rate_min_eur": 590,
   "daily_rate_max_eur": 770,
   "daily_rate_median_eur": 680,
   "yoy_change_pct": null,
   "sample_size": 420,
   "sample_basis": "profiles (15 missions) in the source's French BW market scan",
   "basis": "external_published_median",
   "confidence": "medium",
   "source": "LinkQuest - guide SAP BW",
   "source_url": "https://linkquest.fr/blog/guide-sap-bw-business-warehouse",
   "source_date": "2026-03-26",
   "trend": "strong growth",
   "note": "Combined BW/4HANA + SAC profile - the top of the French SAP data market per this source."
  },
  {
   "country": "FR",
   "specialisation": "sac",
   "seniority": "all",
   "daily_rate_min_eur": null,
   "daily_rate_max_eur": null,
   "daily_rate_median_eur": 650,
   "yoy_change_pct": null,
   "sample_size": null,
   "basis": "external_published_median",
   "confidence": "medium",
   "source": "LinkQuest - guide SAP BW (ecosystem table)",
   "source_url": "https://linkquest.fr/blog/guide-sap-bw-business-warehouse",
   "source_date": "2026-03-26",
   "trend": "strong growth",
   "note": "The source publishes a median for SAC without a range. Min/max are null rather than widened from a neighbouring row."
  },
  {
   "country": "FR",
   "specialisation": "datasphere",
   "seniority": "all",
   "daily_rate_min_eur": null,
   "daily_rate_max_eur": null,
   "daily_rate_median_eur": 670,
   "yoy_change_pct": null,
   "sample_size": null,
   "basis": "external_published_median",
   "confidence": "low",
   "source": "LinkQuest - guide SAP BW (ecosystem table)",
   "source_url": "https://linkquest.fr/blog/guide-sap-bw-business-warehouse",
   "source_date": "2026-03-26",
   "trend": "emerging",
   "note": "Median only, and the source itself labels Datasphere 'emerging' - a thin population."
  },
  {
   "country": "GB",
   "specialisation": "bw",
   "seniority": "all",
   "daily_rate_min_gbp": 426,
   "daily_rate_max_gbp": 492,
   "daily_rate_median_gbp": 456,
   "daily_rate_p10_gbp": 419,
   "daily_rate_p90_gbp": 512,
   "yoy_change_pct": -31.74,
   "sample_size": 4,
   "sample_basis": "contract vacancies quoting a rate (of 5 matching), 6 months to 2026-08-01",
   "basis": "external_published_median",
   "confidence": "low",
   "source": "IT Jobs Watch - SAP BW Consultant (contract)",
   "source_url": "https://www.itjobswatch.co.uk/contracts/uk/sap%20bw%20consultant.do",
   "source_date": "2026-08-01",
   "note": "n=4. The -31.7% YoY is real in the source but computed on single-digit samples both years - read it as a thin signal, not a market move. Min/max here are the 25th/75th percentiles."
  },
  {
   "country": "CH",
   "specialisation": "analytics_all",
   "seniority": "all",
   "daily_rate_min_chf": 850,
   "daily_rate_max_chf": 1200,
   "yoy_change_pct": null,
   "sample_size": null,
   "basis": "external_published_range",
   "confidence": "low",
   "source": "Swiss freelancer rate benchmarks 2026 (magicheidi)",
   "source_url": "https://magicheidi.ch/hourly-rates",
   "source_date": "2026",
   "note": "General Swiss contract IT range, NOT SAP-analytics specific. Published here flagged low so the gap is visible rather than absent."
  },
  {
   "country": "NL",
   "specialisation": "analytics_all",
   "seniority": "all",
   "daily_rate_min_eur": 680,
   "daily_rate_max_eur": 1200,
   "yoy_change_pct": null,
   "sample_size": null,
   "basis": "external_published_range",
   "confidence": "low",
   "source": "Consultant.nl - SAP consultant salaris, tarief & loon 2026",
   "source_url": "https://www.consultant.nl/salarissen/sap-consultant-salaris-tarief-loon",
   "source_date": "2026",
   "note": "EUR 85-150/h excl. VAT, converted at 8h. SAP-wide, not analytics-specific."
  }
 ],
 "demand_signals": {
  "_basis": "Derived from THIS platform's live opportunity corpus (803 active rows, read 2026-08-01) - the one part of this file the platform can prove itself.",
  "observed_volume_by_country": {
   "DE": 396,
   "US": 93,
   "IN": 81,
   "PL": 40,
   "FR": 31,
   "BR": 30,
   "GB": 26,
   "CH": 14,
   "ZA": 13,
   "SG": 12
  },
  "observed_volume_by_specialisation": {
   "bw": 210,
   "datasphere": 125,
   "sac": 100,
   "bdc": 58,
   "joule": 32,
   "bo": 20,
   "hana": 10,
   "unclassified": 244
  },
  "highest_volume_countries": [
   "DE",
   "US",
   "IN",
   "PL",
   "FR"
  ],
  "fastest_growing_countries": null,
  "fastest_growing_countries_why_null": "NOT MEASURABLE from this corpus. Q2 holds 52 harvested rows against Q3's 751 - the jump is our own harvester expanding (new boards, +2,086 firms), not demand. A growth figure computed on a denominator that changed would describe the crawler and be read as the market.",
  "remote_share_pct": null,
  "remote_share_pct_why_null": "NOT MEASURABLE. Only 15 of 803 rows carry a remote marker in their location string; a keyword scan of a free-text field cannot support a share. Q2's 68% did not come from this corpus and is not restated here.",
  "coverage_caveat": "This is what WE observed, not the world market. The corpus is board-driven and DACH-heavy (DE is 49% of active rows), so the ranking measures our crawl's reach as much as demand."
 },
 "certification_roi": {
  "_basis": "carried forward from Q2 2026 - no Q3 source found, and a carried figure is stated as carried rather than silently re-dated.",
  "carried_from": "Q2 2026",
  "restated_this_quarter": false,
  "datasphere_certified_premium_pct_min": 12,
  "datasphere_certified_premium_pct_max": 18,
  "bdc_certification_launched": "Q1 2026",
  "bdc_premium_outlook": "high multiplier expected through 2027",
  "bdc_premium_outlook_fr": "multiplicateur élevé attendu jusqu'en 2027"
 }
}
