{
  "published_before_scoring": "2026-09-27",
  "purpose": "Rules fixed before any vendor was scored. They define what each dimension means, what a score of 0 to 5 requires, when a cell is n/e or n/a, how availability and evidence grade are recorded, and how the Native Quotient summarises them without a league table; originally, why no composite ranking is published.",
  "selection_rules": {
    "universe": "A reasoned market sample assembled by the vendor-universe sweep (workstream U) from named seeds plus vendors discovered while researching the twelve workstreams. Not a census. Adult, gambling-only and pure ad-fraud networks were excluded on purpose; regional vendors that surfaced only as names without an opened source were listed in the universe but not scored.",
    "scored_set": "A vendor enters the capability matrix when (a) it sells or delivers paid native placements on the open web as a primary or clearly separable line of business (core group), or (b) it is a programmatic or platform intermediary through which open-web native is bought at scale and its native product is documented (adjacent group, marked as such), and (c) at least four of the twelve dimensions can be evidenced from an opened source, counting a dimension documented as not applicable as evidenced. Budget comparators such as Meta's own feeds, TikTok and retail media networks are compared in chapter 2 on revenue and are not scored, because their business model is not comparable on these dimensions.",
    "deep_profiles": "Eight to twelve companies were profiled in depth when they carried a material share of open-web native spend, anchored a product lineage, or represented a distinct model (financial-vertical native, Nordic self-serve, publisher-side SSP native). Each profile states why it matters."
  },
  "cell_rules": {
    "scale": "0 to 5 integer, evidence-bounded, not absolute: 5 = the capability is documented in operational detail from an official document, filing or independent observation; 4 = documented and specific but from vendor documentation only, or independently observed but narrow; 3 = real but thinly evidenced, narrow in scope, or beta; 2 = partial or indirect (e.g., via a partner); 1 = adjacent or incidental; 0 = the record documents the capability is absent or has failed the criterion.",
    "zero": "0 is used only when a source documents absence (a vendor statement that the feature is not offered, a retired product, or an independent finding of failure). Missing evidence is never scored 0.",
    "ne": "n/e (no evidence) when the opened record gives no basis to score either way. Distinct from 0.",
    "na": "n/a when the dimension does not apply to the vendor's model (for example, publisher controls for a pure buy-side DSP). Capabilities that run in a separate buying tool the vendor does not operate (for example outcome bidding in the buyer's DSP for an exchange) are n/a.",
    "availability": "Every scored cell carries one label: live (generally available at the cutoff), beta (limited access or beta), announced (not yet observable), retired, unconfirmed (claimed but no observable evidence).",
    "evidence_grade": "A = filing, official transaction document or regulator record; B = independent measurement or documentation by a party without financial interest; C = vendor technical documentation or help centre; D = vendor marketing, press release or case study; E = none.",
    "date": "The date of the most recent source the cell rests on.",
    "same_standard": "The same evidentiary standard applies to every vendor. Documentation volume is not product quality: a large help centre earns grade C, not a higher score.",
    "grade_caps": "Vendor documentation (grade C) caps a score at 4 and vendor marketing (grade D) at 3; a grade can cap a score but never raise it. scripts/check.mjs enforces the caps."
  },
  "dimensions": [
    {
      "key": "supply_access",
      "label": "Supply access",
      "short": "Supply",
      "definition": "Breadth and quality of the placements the vendor can deliver native ads into: number and tier of publishers or properties, exclusivity, and whether access is owned, contracted or rented through exchanges.",
      "anchors": "5 = documented direct contracts with named tier-one properties at scale (filing or official partner statement); 3 = a network of unnamed or mid-tier publishers, or access mainly through exchanges; 1 = a handful of placements; 0 = no supply of its own documented."
    },
    {
      "key": "format_support",
      "label": "Format support",
      "short": "Formats",
      "definition": "Which native formats the vendor delivers: recommendation units, in-feed units, sponsored editorial, native video, native commerce units, and whether it also sells non-native formats.",
      "anchors": "5 = four or more native formats documented with specifications; 3 = two formats; 1 = a single format; 0 = documented as not delivering native."
    },
    {
      "key": "advertiser_workflow",
      "label": "Advertiser workflow",
      "short": "Workflow",
      "definition": "How an advertiser sets up, runs and reports campaigns: self-serve platform, managed service, API, bulk tools, approval flows, agency multi-account support.",
      "anchors": "5 = self-serve platform plus documented API and agency tooling; 3 = self-serve or managed only; 1 = managed service with no documented tooling; 0 = no advertiser-facing workflow (e.g., supply-only)."
    },
    {
      "key": "creative_tools",
      "label": "Creative tools",
      "short": "Creative",
      "definition": "Documented creative production and testing tools: templates, generative creation, automatic variants, pre-flight prediction, A/B tooling.",
      "anchors": "5 = generative creation plus automated variant testing documented in the help centre with an independent observation; 3 = templates and variant testing; 1 = basic upload only; 0 = documented absence."
    },
    {
      "key": "optimisation",
      "label": "Optimisation",
      "short": "Optimise",
      "definition": "Objectives the delivery system can optimise toward and the documented mechanics: CPC, CPA/target CPA, ROAS, engagement, value-based; learning-phase rules; exploration.",
      "anchors": "5 = conversion and value objectives with published learning rules and a technical description of the model; 3 = conversion objective documented but mechanics undisclosed; 1 = click or impression objectives only; 0 = no optimisation."
    },
    {
      "key": "conversion_data_access",
      "label": "Conversion-data access",
      "short": "Conv. data",
      "definition": "How the vendor receives outcome data: pixel, server-to-server or conversion API, offline uploads, MMP integrations; whether advertisers can bring their own conversions and definitions.",
      "anchors": "5 = pixel plus server-side API plus documented MMP/CRM integrations; 3 = pixel plus one server-side route; 1 = pixel only; 0 = no conversion ingestion."
    },
    {
      "key": "measurement_support",
      "label": "Measurement support",
      "short": "Measure",
      "definition": "Support for evidence a buyer can accept: incrementality or lift testing (own or via named partners), third-party verification integrations, attribution-window disclosure, reporting granularity and export.",
      "anchors": "5 = randomised or geo incrementality tooling with independent partners and disclosed windows; 3 = brand-lift or partner integrations without holdouts; 1 = platform-attributed reporting only; 0 = documented refusal or absence."
    },
    {
      "key": "supply_transparency",
      "label": "Supply transparency",
      "short": "Transp.",
      "definition": "What a buyer can see and control about where ads run: site-level reporting, block and allow lists, placement-level disclosure, MFA and arbitrage policies, landing-page review policies.",
      "anchors": "5 = placement-level reporting plus published inventory and policy documents plus independent audit; 3 = site-level reporting and block lists; 1 = category-level controls only; 0 = documented absence of site-level reporting."
    },
    {
      "key": "publisher_controls",
      "label": "Publisher controls",
      "short": "Pub ctrl",
      "definition": "Documented controls for the publisher side: category and advertiser blocking, quality review, ad-load settings, revenue reporting, guarantees.",
      "anchors": "5 = documented publisher console with blocking, quality review and revenue reporting plus disclosed contract structures; 3 = basic blocking and reporting; 1 = adjacent or incidental controls only; n/a for buy-side-only platforms."
    },
    {
      "key": "commerce_capabilities",
      "label": "Commerce capabilities",
      "short": "Commerce",
      "definition": "Product-feed ingestion, dynamic product units, retail-data or offsite retail-media integrations, content-to-commerce and affiliate mechanics.",
      "anchors": "5 = product feeds plus retail-data integrations plus documented commerce units with reported results; 3 = product feeds or affiliate mechanics; 1 = commerce mentioned without product documentation; 0 = documented absence."
    },
    {
      "key": "interoperability",
      "label": "Interoperability",
      "short": "Interop",
      "definition": "Routes in and out: OpenRTB Native support, Prebid, DSP availability, reporting API, data export, agent-protocol implementations (AdCP, AAMP), MCP or similar.",
      "anchors": "5 = OpenRTB/Prebid plus reporting API plus a shipped agent-protocol implementation; 3 = OpenRTB or DSP availability plus API; 1 = walled platform with manual export; 0 = documented closed."
    },
    {
      "key": "geographic_reach",
      "label": "Geographic reach",
      "short": "Geo",
      "definition": "Markets served with documented supply, sales presence or revenue disclosure.",
      "anchors": "5 = disclosed revenue in three or more regions with local supply; 3 = one region dominant with some international; 1 = single country; 0 = not applicable is not used here; absence of evidence is n/e."
    }
  ],
  "peer_groups": [
    {
      "key": "core",
      "label": "Core: open-web native platforms",
      "definition": "Sell and deliver paid native placements on open-web publisher properties as a primary business (recommendation, in-feed, sponsored editorial, native video)."
    },
    {
      "key": "adjacent",
      "label": "Adjacent: programmatic intermediaries with native products",
      "definition": "SSPs, DSPs and platform ad networks through which open-web native is bought; scored on their documented native product only."
    },
    {
      "key": "emerging",
      "label": "Emerging: AI discovery surfaces",
      "definition": "Advertising inside AI assistants or answer engines; listed in the universe and the agentic map, not scored in the matrix."
    }
  ],
  "composite_index": {
    "used": true,
    "name": "Native Quotient (NQ)",
    "added": "2026-09-27, after scoring, at the author's instruction, using the construction of the Contextual Quotient in the author's contextual paper. The dimension scores were fixed before NQ existed and were not changed to fit it.",
    "groups": {
      "Depth": {
        "label": "Depth",
        "meaning": "what the engine does with an advertiser's goal",
        "dims": [
          "optimisation",
          "conversion_data_access",
          "creative_tools",
          "commerce_capabilities",
          "advertiser_workflow"
        ]
      },
      "Reach": {
        "label": "Reach",
        "meaning": "where and through which routes it can act",
        "dims": [
          "supply_access",
          "format_support",
          "interoperability",
          "geographic_reach"
        ]
      },
      "Standing": {
        "label": "Standing",
        "meaning": "whether buyers and publishers can inspect and trust it",
        "dims": [
          "measurement_support",
          "supply_transparency",
          "publisher_controls"
        ]
      }
    },
    "weights": {
      "Depth": 0.45,
      "Reach": 0.25,
      "Standing": 0.3
    },
    "shrink_pseudo_observations": 4,
    "bands": [
      [
        "Front rank",
        12
      ],
      [
        "Strong",
        1
      ],
      [
        "Mid",
        -8
      ],
      [
        "Narrow",
        -1000
      ]
    ],
    "method": "Each group is the mean of the scored dimensions inside it; n/e and n/a cells are skipped, not counted as zero. Present groups combine on the weights, renormalised if a group has no scored dimension. The result is shrunk toward the field mean (the mean of every scored group across all rows) as (k x raw + 4 x field) / (k + 4), where k is the number of scored dimensions, then expressed on 0-100 as 100 x shrunk / 5.",
    "reweightings": [
      {
        "name": "Equal thirds",
        "weights": {
          "Depth": 0.3333333333333333,
          "Reach": 0.3333333333333333,
          "Standing": 0.3333333333333333
        }
      },
      {
        "name": "Depth-led",
        "weights": {
          "Depth": 0.6,
          "Reach": 0.2,
          "Standing": 0.2
        }
      },
      {
        "name": "Reach-led",
        "weights": {
          "Depth": 0.3,
          "Reach": 0.45,
          "Standing": 0.25
        }
      },
      {
        "name": "Standing-led",
        "weights": {
          "Depth": 0.3,
          "Reach": 0.2,
          "Standing": 0.5
        }
      }
    ],
    "why_not_a_sum": "A sum counts an unscored dimension as zero and so penalises a thin public record rather than a weak product; a plain average of scored cells rewards missing evidence. Group means plus shrinkage avoid both.",
    "limits": "NQ summarises documented capability, not performance, and inherits the single-scorer limitation. Bands are reported because exact positions depend on the weights.",
    "bands_rule": "Band thresholds are offsets from the field NQ, the score of a vendor with exactly average evidence. They reproduce the Contextual Quotient's bands, whose thresholds sit 12 points above, 1 point above and 8 points below that index's field mean of 51. Copying its absolute thresholds would place this sample's field mean inside Strong, so the native thresholds use the same offsets from this sample's field mean instead.",
    "thin_record_min": 6,
    "thin_rule": "Rows with fewer than six scored dimensions get an NQ but no band (\"thin record\"): with four pseudo-observations a four-cell record keeps only half its raw score, so a band would mostly reflect the field mean. Band counts cover banded rows only.",
    "shrink_alternatives": [
      2,
      8
    ],
    "shrink_rationale": "Author-defined heuristic, not a statistical estimator: the twelve dimensions are different capabilities, not repeated measurements of one quantity. Four pseudo-observations is one third of the twelve dimensions, so a vendor with every dimension scored keeps three quarters of the weight on its own record and a vendor with four scored keeps half. It matches the author's Contextual Quotient. The build reruns NQ with two and with eight pseudo-observations and reports how far positions and bands move."
  },
  "scorer": {
    "independent_second_scorer": false,
    "disclosure": "One scoring pass by the author's research process, applied after the verifier records were read; facts were adversarially verified, scores were not independently re-scored. No inter-rater statistic exists."
  }
}