# Artificial Careers Observatory — method observatory-1.8.0-global-context

Distinct employer advertisements: monthly snapshots use active recently observed ads; annual reports deduplicate all eligible ads observed during the year, including closed ads. Annual totals are never sums of monthly stocks or counts of hires. Not national employment, paid salary outcomes, tool market share or organizational adoption. An observation is not counted until it has a full source description, source URL, current content hash and a valid observation date for its declared monthly or annual scope. Annual/YTD records require dated stored description evidence not later than the cutoff. Source requisition identity and canonical URL aliases are deduplicated within employer identity/domain.

Geography: all ISO countries are supported. Named eligible countries are retained as a set. A multi-country vacancy counts once in each named country and once globally; country totals overlap and must not be summed. Regional and worldwide labels are not expanded into invented country lists. Missing and conflicting countries remain explicit. Country-specific pay needs a compatible salary geography; listing eligibility alone does not transfer a location-specific pay band. Verified ATS postal-address corrections retain source URL, record hash and review date privately. country_coverage.csv exports every country, including those outside the top-country chart.

Populations stay separate: all eligible observed advertisements; current source-hash-matched accepted AI reviews; published website index. A rejected AI review does not establish a non-AI occupation. Classification is conservative rules plus existing source-linked reviews, and requires independent human evaluation before public release.

Salary: confirmed source label is only a candidate filter. Salary amounts must be employer-disclosed for the vacancy. Currency and period may be established by the original text, structured source fields or a separately reviewed employer/provider convention. A source that publishes yearly salary ranges need not repeat “per year” in every description. The versioned salary_source_policies.csv records those conventions; no universal missing-period default is applied. Estimates, benchmark/company fallback, net pay, OTE, commission, total compensation and ambiguous multiple ranges are excluded. Bare dollars need an unambiguous US country. Matched salary cohorts retain native currency, with no unknown-to-mid fallback. National headline cards convert to their declared display currency using frozen dated ECB reference rates. Original amounts are first divided by ECB units per euro, then multiplied by the target currency rate; France uses EUR. Original pay, cadence and source evidence are retained privately; exchange_rates.csv publishes rates, date, source URL and hash. Salary cohort medians use separate lower/upper bounds. French source recovery also accepts matched employer ATS salary components or JobPosting baseSalary with explicit native cadence, currency and bounds; native record hashes and retrieval dates remain in private evidence. Source structured pay can independently confirm pay even when the database label is missing; database estimates never become evidence. The descriptive France headline is the explicitly labeled arithmetic mean of annualized advertised range midpoints, excluding internships; it pools all roles at identified suppliers of AI models, products, infrastructure or customer-facing AI services. Employer business-profile reviews are independent of job tool mentions and curated membership; they are not a separate corporate audit. The complete checked country roster, unresolved classifications and profile fingerprints appear in france_employer_coverage.csv, with contributing employers in france_pay_employers.csv and does not apply the matched-cohort size gates. It always uses the full-year frozen France reference, including closed ads, even in monthly reports. General vacancy pay applies to each eligible listed country; explicit foreign pay zones are excluded. Its sample and employer counts remain visible. A separate third France card is the union of all roles at identified AI suppliers and accepted AI roles at other employers, with each vacancy counted once. It uses the same confirmed-pay, annualization, geography, internship and ECB rules. Supplier-only and union populations have separate employer, currency and exclusion files. The French extract contains explicitly typed aggregated tool rows, overlapping salary cohorts and the headline salary-reference cards; neither row counts nor grouped job counts may be summed into unique vacancies. The same dated current observation does not prove past salary levels. All original pay currencies are represented in france_pay_currencies.csv; exclusion counts in france_pay_coverage.csv. This derived midpoint average is not employer-confirmed point pay or actual earnings. ALL REPORT SALARIES ARE ANNUAL: monthly pay ×12, weekly ×52, hourly ×disclosed weekly hours ×52. Where hours are missing or ambiguous, use the user-selected 40 hours ×52 convention and explicitly flag assumed hours. Preserve original amounts and cadence in private evidence. Annual equivalents retain confirmed salary status; additional payments are not invented. Lower/upper-bound medians summarize advertised ranges, not employee earnings. Base pay and less-specific advertised salary are separate bases.

Matched salary and advisory cohort gates: 30 eligible postings, five employers, known matching dimensions and no employer above 25%. Unknown and thin cohorts expose a suppression reason and null salary statistics. Comparisons match occupation, level, labor/pay zone, contract, period/currency/basis, industry and company size; no causal inference. Matched salary gaps include seeded 500-resample employer-cluster bootstrap intervals for each bound; these describe sampling variation inside this convenience sample, not population representativeness. Broad role or level charts are explicitly descriptive and may differ in other job composition.

Public reporting groups ChatGPT, OpenAI/GPT and Codex as ChatGPT (OpenAI), and Claude with Claude Code as Claude (Anthropic). Each family counts once per vacancy; family totals are unions, not sums of product counts. Raw product definitions remain in tool_taxonomy.csv. Company background and promotional text is excluded from all reported tool counts. Remaining contexts distinguish required skills, preferred skills, advertised work, products being sold, restrictions and other mentions. A product counts once per posting for prevalence. Repeated employer boilerplate is flagged. Generic CLI/editor mentions are not automatically AI. Model provider is never inferred from an editor. Provider/product/parent ownership are distinct, date-versioned concepts. Technical marketing and sales engineering are separate hybrid occupations. Employer business categories need independent dated official evidence, never job tool mentions.

Tool rates use AI-classification/occupation/level/country/employer-type-specific denominators. Jobs not classified as AI include missing, stale and non-accepted reviews: this is the complement of our accepted AI cohort, not proof of a non-AI occupation. Company type and occupation family are independent dimensions. Tool_ai_status supplies counts, required/preferred/workflow splits, distinct employers, exact full-population denominators and rates; monthly frozen releases support future comparable trends. Company background text never contributes to these counts. Comparison rates describe this catalog, not national adoption or a causal AI effect. Wilson intervals describe finite-posting variability under an independence assumption; postings from one employer may be correlated. Do not use these intervals alone for a headline employer comparison. Employer counts/concentration and matched salary gates are separate safeguards. Unavailable common support produces insufficient data.

History: comparable frozen observations only. Current descriptions attached to old first-seen dates do not establish historical tools or salary. Partial months are explicitly labeled. Revisions retain old artifacts and carry a new release ID. First-seen flow requires separate source-coverage validation; active stock is not monthly vacancy flow.

Global official context is a separately frozen, versioned bundle. Country panels juxtapose our distinct vacancy counts and required-AI-tool union rate with separately dated official business AI adoption, occupational GenAI exposure, employment stocks, internet usage and R&D intensity. Units, original producers, licensing, source hashes, retrieval dates, dimensions and source flags remain in external_observations.csv; external_availability.csv preserves missing references without zero filling. Reference years can be old and do not become 2026 observations. ILO gradients measure potential occupational exposure, not employer adoption or predicted job losses. OECD business-function percentages cover GenAI-using SMEs in seven countries in 2024, excluding France, and are not matched one-to-one with our profession rows. Context_comparisons.csv has explicit row types and exact vacancy denominators; do not pool or subtract percentages across those populations. Required-only union counts differ from the broader required/preferred/workflow union. Wilson intervals assume posting independence, not national representativeness. Neither official data nor these contextual rates alter salary eligibility.

Official paid-earnings references use administrative payroll records, or explicitly labelled payroll records combined with employer surveys. India is the user-approved exception: official PLFS household-survey earnings remain labelled survey context, with their actual period and population. Modelled wages and company or industry salary estimates never enter wage panels. Other official survey/modelled non-pay context is distinctly labeled, including its original period, units and population. References are never pooled into confirmed advertised pay.

Public files contain aggregate catalog data only. Personal Kesha data, recruiter contacts, source descriptions, private observation files and credentials are never exported. Owned publishable aggregates: CC BY 4.0; upstream terms and attribution remain applicable. Human review, source rights and explicit authorization are required before public publication. The initial generated bundle is a local preview.
