{
 "schema": "career.bundle.v2",
 "quality": {
  "generated": "2026-09-16",
  "totals": {
   "total": 199,
   "VERIFIED": 35,
   "LIMITED": 0,
   "SIGNAL ONLY": 127,
   "INSUFFICIENT": 37
  },
  "by_evidence_type": {
   "salary-benchmark": 9,
   "government-earnings": 2,
   "employer-data": 56
  },
  "roles": [
   {
    "role": "accountant",
    "name": "Accountant",
    "function": "finance-accounting",
    "family": "accounting",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-05-21",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "accounts-payable-receivable",
    "name": "Accounts Payable / Receivable Specialist",
    "function": "finance-accounting",
    "family": "accounting",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 9
   },
   {
    "role": "financial-controller",
    "name": "Financial Controller",
    "function": "finance-accounting",
    "family": "accounting",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 9
   },
   {
    "role": "chartered-accountant",
    "name": "Chartered Accountant",
    "function": "finance-accounting",
    "family": "accounting",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2025-08-16",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "ca-newly-qualified",
    "name": "Chartered Accountant (newly qualified)",
    "function": "finance-accounting",
    "family": "accounting",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 6,
    "sources": [
     {
      "id": "bntw-icai-65",
      "name": "Business News This Week: ICAI to organise 65th campus placement programme (quotes the April–May 2026 season outcomes)",
      "evidence_type": "salary-benchmark",
      "kind": "press-report"
     },
     {
      "id": "careers360-icai-60",
      "name": "Careers360: ICAI 60th campus placement ends, highest domestic package at Rs 26.70 lakh",
      "evidence_type": "salary-benchmark",
      "kind": "press-report"
     },
     {
      "id": "careers360-icai-2023",
      "name": "Careers360: ICAI campus placement — over 9,000 take part, highest salary Rs 41 lakh",
      "evidence_type": "salary-benchmark",
      "kind": "press-report"
     }
    ],
    "evidence_types": [
     "salary-benchmark"
    ],
    "latest_effective": "2026-05-31",
    "last_verified": "2026-09-13",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.7,
    "freshness": [
     "fresh",
     "ageing",
     "stale"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation"
    ],
    "next_action": "Extend to the early band from the same or a comparable source",
    "priority_score": 1
   },
   {
    "role": "cost-accountant",
    "name": "Cost & Management Accountant",
    "function": "finance-accounting",
    "family": "accounting",
    "tier": 2,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "ntpc-careers",
      "name": "NTPC Limited — recruitment advertisements 01/26 (Executive Trainee Finance), 15/25 (Assistant Law Officer), 10/25 (Deputy Manager)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-01-13",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "company-secretary",
    "name": "Company Secretary",
    "function": "finance-accounting",
    "family": "accounting",
    "tier": 2,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 2,
    "sources": [
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-05-05",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "financial-analyst",
    "name": "Financial Analyst",
    "function": "finance-accounting",
    "family": "fpa",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 13
   },
   {
    "role": "finance-manager",
    "name": "Finance Manager",
    "function": "finance-accounting",
    "family": "fpa",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 13
   },
   {
    "role": "finance-director",
    "name": "Finance Director / CFO",
    "function": "finance-accounting",
    "family": "fpa",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 9
   },
   {
    "role": "finance-business-partner",
    "name": "Finance Business Partner",
    "function": "finance-accounting",
    "family": "fpa",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 5
   },
   {
    "role": "tax-consultant",
    "name": "Tax Consultant",
    "function": "finance-accounting",
    "family": "tax",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 13
   },
   {
    "role": "tax-manager",
    "name": "Tax Manager",
    "function": "finance-accounting",
    "family": "tax",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 9
   },
   {
    "role": "transfer-pricing-specialist",
    "name": "Transfer Pricing Specialist",
    "function": "finance-accounting",
    "family": "tax",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 5
   },
   {
    "role": "audit-associate",
    "name": "Audit Associate",
    "function": "finance-accounting",
    "family": "audit",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-05-21",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "audit-manager",
    "name": "Audit Manager",
    "function": "finance-accounting",
    "family": "audit",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 9
   },
   {
    "role": "internal-auditor",
    "name": "Internal Auditor",
    "function": "finance-accounting",
    "family": "audit",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 9
   },
   {
    "role": "forensic-accountant",
    "name": "Forensic Accountant",
    "function": "finance-accounting",
    "family": "audit",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 5
   },
   {
    "role": "treasury-analyst",
    "name": "Treasury Analyst",
    "function": "finance-accounting",
    "family": "treasury",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 5
   },
   {
    "role": "corporate-finance-analyst",
    "name": "Corporate Finance / M&A Analyst",
    "function": "finance-accounting",
    "family": "treasury",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 9
   },
   {
    "role": "payroll-specialist",
    "name": "Payroll Specialist",
    "function": "finance-accounting",
    "family": "payroll",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: ICAI/ICSI/ICMAI placement releases",
    "priority_score": 5
   },
   {
    "role": "regular-salaried-all",
    "name": "Any regular salaried employee (all occupations, benchmark)",
    "function": "benchmarks",
    "family": "benchmark",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "HIGH",
    "observations": 2,
    "sources": [
     {
      "id": "mospi-plfs-2023-24",
      "name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
      "evidence_type": "government-earnings",
      "kind": "government-statistics"
     },
     {
      "id": "mospi-plfs-2025",
      "name": "Periodic Labour Force Survey — Annual Report 2025 (January – December 2025), press note",
      "evidence_type": "government-earnings",
      "kind": "government-statistics"
     }
    ],
    "evidence_types": [
     "government-earnings"
    ],
    "latest_effective": "2025-12-31",
    "last_verified": "2026-09-13",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "any"
    ],
    "confidence": 0.85,
    "freshness": [
     "ageing",
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "no city- or state-specific observation",
     "benchmark role: a reference figure, not a role-level market salary"
    ],
    "next_action": "Re-verify at the next review date",
    "priority_score": null
   },
   {
    "role": "mba-graduate-iim-a",
    "name": "MBA graduate, IIM Ahmedabad PGP (placement benchmark)",
    "function": "benchmarks",
    "family": "benchmark",
    "tier": 2,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 3,
    "sources": [
     {
      "id": "campusutra-iim-a-2026",
      "name": "Campusutra: IIM Ahmedabad releases audited final placement report 2026",
      "evidence_type": "salary-benchmark",
      "kind": "press-report"
     }
    ],
    "evidence_types": [
     "salary-benchmark"
    ],
    "latest_effective": "2026-09-03",
    "last_verified": "2026-09-13",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.6,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "no city- or state-specific observation",
     "benchmark role: a reference figure, not a role-level market salary"
    ],
    "next_action": "Re-verify at the next review date",
    "priority_score": null
   },
   {
    "role": "software-engineer",
    "name": "Software Engineer",
    "function": "technology",
    "family": "software-engineering",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 2,
    "sources": [
     {
      "id": "tcs-careers",
      "name": "Tata Consultancy Services — TCS All India NQT Hiring page (Batch of 2026, 2025, 2024)",
      "evidence_type": "employer-data",
      "kind": "official-employer-page"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-02-18",
    "last_verified": "2026-09-13",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry",
     "early"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "backend-engineer",
    "name": "Backend Engineer",
    "function": "technology",
    "family": "software-engineering",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 13
   },
   {
    "role": "frontend-engineer",
    "name": "Frontend Engineer",
    "function": "technology",
    "family": "software-engineering",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 13
   },
   {
    "role": "full-stack-engineer",
    "name": "Full-stack Engineer",
    "function": "technology",
    "family": "software-engineering",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 13
   },
   {
    "role": "mobile-engineer",
    "name": "Mobile Engineer",
    "function": "technology",
    "family": "software-engineering",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 9
   },
   {
    "role": "engineering-manager",
    "name": "Engineering Manager",
    "function": "technology",
    "family": "software-engineering",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 9
   },
   {
    "role": "software-architect",
    "name": "Software Architect",
    "function": "technology",
    "family": "software-engineering",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 9
   },
   {
    "role": "sap-consultant",
    "name": "SAP / ERP Consultant",
    "function": "technology",
    "family": "software-engineering",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 9
   },
   {
    "role": "embedded-engineer",
    "name": "Embedded Software Engineer",
    "function": "technology",
    "family": "software-engineering",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 5
   },
   {
    "role": "qa-engineer",
    "name": "QA / Test Engineer",
    "function": "technology",
    "family": "qa-testing",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 13
   },
   {
    "role": "devops-engineer",
    "name": "DevOps Engineer",
    "function": "technology",
    "family": "devops-cloud",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 13
   },
   {
    "role": "cloud-engineer",
    "name": "Cloud Engineer",
    "function": "technology",
    "family": "devops-cloud",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 13
   },
   {
    "role": "system-administrator",
    "name": "System / Network Administrator",
    "function": "technology",
    "family": "devops-cloud",
    "tier": 2,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-05-05",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "database-administrator",
    "name": "Database Administrator",
    "function": "technology",
    "family": "devops-cloud",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 5
   },
   {
    "role": "it-support-engineer",
    "name": "IT Support / Helpdesk Engineer",
    "function": "technology",
    "family": "it-support",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 9
   },
   {
    "role": "it-project-manager",
    "name": "IT Project / Delivery Manager",
    "function": "technology",
    "family": "it-support",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 9
   },
   {
    "role": "business-analyst-it",
    "name": "Business Analyst (IT)",
    "function": "technology",
    "family": "it-support",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 13
   },
   {
    "role": "data-analyst",
    "name": "Data Analyst",
    "function": "data-analytics",
    "family": "analytics",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 13
   },
   {
    "role": "data-engineer",
    "name": "Data Engineer",
    "function": "data-analytics",
    "family": "analytics",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 13
   },
   {
    "role": "data-scientist",
    "name": "Data Scientist",
    "function": "data-analytics",
    "family": "analytics",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 13
   },
   {
    "role": "analytics-manager",
    "name": "Analytics Manager",
    "function": "data-analytics",
    "family": "analytics",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 9
   },
   {
    "role": "statistician",
    "name": "Statistician / Biostatistician",
    "function": "data-analytics",
    "family": "analytics",
    "tier": 3,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 2,
    "sources": [
     {
      "id": "rbi-grade-b",
      "name": "Reserve Bank of India — Officers in Grade B (DR) recruitment",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     },
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-05-21",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "ml-engineer",
    "name": "Machine Learning Engineer",
    "function": "ai-ml",
    "family": "machine-learning",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 13
   },
   {
    "role": "ai-researcher",
    "name": "AI / ML Research Scientist",
    "function": "ai-ml",
    "family": "machine-learning",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 9
   },
   {
    "role": "genai-engineer",
    "name": "Generative AI / LLM Engineer",
    "function": "ai-ml",
    "family": "machine-learning",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 9
   },
   {
    "role": "ai-product-manager",
    "name": "AI Product Manager",
    "function": "ai-ml",
    "family": "machine-learning",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: NASSCOM/industry reports with stated methodology",
    "priority_score": 5
   },
   {
    "role": "product-manager",
    "name": "Product Manager",
    "function": "product",
    "family": "product-management",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "product-director",
    "name": "Director / Head of Product",
    "function": "product",
    "family": "product-management",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "product-analyst",
    "name": "Product Analyst",
    "function": "product",
    "family": "product-management",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "mechanical-engineer",
    "name": "Mechanical Engineer",
    "function": "engineering-core",
    "family": "mechanical",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 2,
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-09-02",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "automotive-engineer",
    "name": "Automotive Engineer",
    "function": "engineering-core",
    "family": "mechanical",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "electrical-engineer",
    "name": "Electrical Engineer",
    "function": "engineering-core",
    "family": "electrical",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 3,
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     },
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-09-02",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry",
     "early"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "electronics-engineer",
    "name": "Electronics / VLSI Engineer",
    "function": "engineering-core",
    "family": "electrical",
    "tier": 2,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 2,
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-09-02",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "instrumentation-engineer",
    "name": "Instrumentation & Control Engineer",
    "function": "engineering-core",
    "family": "electrical",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "civil-engineer",
    "name": "Civil Engineer",
    "function": "engineering-core",
    "family": "civil",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 3,
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     },
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-09-02",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry",
     "early"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "chemical-engineer",
    "name": "Chemical / Process Engineer",
    "function": "engineering-core",
    "family": "chemical",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "marine-engineer",
    "name": "Marine Engineer",
    "function": "engineering-core",
    "family": "marine-aero",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "aerospace-engineer",
    "name": "Aerospace Engineer",
    "function": "engineering-core",
    "family": "marine-aero",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "sales-executive",
    "name": "Sales Executive",
    "function": "sales",
    "family": "field-sales",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "sales-manager",
    "name": "Sales Manager",
    "function": "sales",
    "family": "field-sales",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "sales-head",
    "name": "Head / VP of Sales",
    "function": "sales",
    "family": "field-sales",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "channel-sales-manager",
    "name": "Channel / Distribution Manager",
    "function": "sales",
    "family": "field-sales",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "inside-sales-executive",
    "name": "Inside Sales Executive",
    "function": "sales",
    "family": "inside-sales",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "presales-consultant",
    "name": "Pre-sales / Solutions Consultant",
    "function": "sales",
    "family": "inside-sales",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "account-executive",
    "name": "Account Executive (B2B)",
    "function": "sales",
    "family": "inside-sales",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "business-development-executive",
    "name": "Business Development Executive",
    "function": "business-development",
    "family": "bd",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "business-development-manager",
    "name": "Business Development Manager",
    "function": "business-development",
    "family": "bd",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "marketing-executive",
    "name": "Marketing Executive",
    "function": "marketing",
    "family": "brand-marketing",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "ibps-so",
      "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-06-30",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "marketing-manager",
    "name": "Marketing Manager",
    "function": "marketing",
    "family": "brand-marketing",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "marketing-head",
    "name": "Head / VP of Marketing",
    "function": "marketing",
    "family": "brand-marketing",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "digital-marketing-specialist",
    "name": "Digital Marketing Specialist",
    "function": "marketing",
    "family": "digital-marketing",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "performance-marketing-manager",
    "name": "Performance Marketing Manager",
    "function": "marketing",
    "family": "digital-marketing",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "seo-specialist",
    "name": "SEO Specialist",
    "function": "marketing",
    "family": "digital-marketing",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "social-media-manager",
    "name": "Social Media Manager",
    "function": "marketing",
    "family": "digital-marketing",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "marketing-analyst",
    "name": "Marketing Analyst",
    "function": "marketing",
    "family": "digital-marketing",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "pr-manager",
    "name": "PR / Corporate Communications Manager",
    "function": "marketing",
    "family": "communications",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "hr-executive",
    "name": "HR Executive / Generalist",
    "function": "hr",
    "family": "hr-generalist",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "ibps-so",
      "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-06-30",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "hr-manager",
    "name": "HR Manager",
    "function": "hr",
    "family": "hr-generalist",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "hr-head",
    "name": "Head / VP of HR",
    "function": "hr",
    "family": "hr-generalist",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "recruiter",
    "name": "Recruiter / Talent Acquisition",
    "function": "hr",
    "family": "talent-acquisition",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "ta-manager",
    "name": "Talent Acquisition Manager",
    "function": "hr",
    "family": "talent-acquisition",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "learning-development",
    "name": "Learning & Development Specialist",
    "function": "hr",
    "family": "ld-comp",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "compensation-benefits",
    "name": "Compensation & Benefits Specialist",
    "function": "hr",
    "family": "ld-comp",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "hr-operations",
    "name": "HR Operations / HRIS",
    "function": "hr",
    "family": "ld-comp",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "operations-executive",
    "name": "Operations Executive",
    "function": "operations",
    "family": "business-operations",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "operations-manager",
    "name": "Operations Manager",
    "function": "operations",
    "family": "business-operations",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "process-excellence",
    "name": "Process Excellence / Six Sigma",
    "function": "operations",
    "family": "business-operations",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "project-manager",
    "name": "Project Manager (non-IT)",
    "function": "operations",
    "family": "business-operations",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "office-administrator",
    "name": "Administration / Office Manager",
    "function": "operations",
    "family": "business-operations",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "supply-chain-analyst",
    "name": "Supply Chain Analyst",
    "function": "supply-chain",
    "family": "supply-chain",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "supply-chain-manager",
    "name": "Supply Chain Manager",
    "function": "supply-chain",
    "family": "supply-chain",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "logistics-executive",
    "name": "Logistics Executive",
    "function": "supply-chain",
    "family": "logistics",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "logistics-manager",
    "name": "Logistics / Warehouse Manager",
    "function": "supply-chain",
    "family": "logistics",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "procurement-executive",
    "name": "Procurement / Purchase Executive",
    "function": "procurement",
    "family": "procurement",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "procurement-manager",
    "name": "Procurement / Sourcing Manager",
    "function": "procurement",
    "family": "procurement",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "consultant",
    "name": "Consultant",
    "function": "consulting",
    "family": "management-consulting",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "engagement-manager",
    "name": "Engagement Manager / Principal",
    "function": "consulting",
    "family": "management-consulting",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "strategy-analyst",
    "name": "Strategy / Corporate Strategy Analyst",
    "function": "consulting",
    "family": "management-consulting",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "lawyer",
    "name": "Lawyer / Advocate",
    "function": "legal",
    "family": "legal",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 2,
    "sources": [
     {
      "id": "ibps-so",
      "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     },
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-06-30",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "legal-counsel",
    "name": "Legal Counsel (in-house)",
    "function": "legal",
    "family": "legal",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "ntpc-careers",
      "name": "NTPC Limited — recruitment advertisements 01/26 (Executive Trainee Finance), 15/25 (Assistant Law Officer), 10/25 (Deputy Manager)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2025-12-01",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "paralegal",
    "name": "Paralegal / Legal Executive",
    "function": "legal",
    "family": "legal",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "risk-analyst",
    "name": "Risk Analyst",
    "function": "risk-compliance",
    "family": "risk",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "risk-manager",
    "name": "Risk Manager",
    "function": "risk-compliance",
    "family": "risk",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "compliance-officer",
    "name": "Compliance Officer",
    "function": "risk-compliance",
    "family": "compliance",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "security-analyst",
    "name": "Security Analyst (SOC)",
    "function": "cybersecurity",
    "family": "security",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "security-engineer",
    "name": "Security Engineer",
    "function": "cybersecurity",
    "family": "security",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "security-architect",
    "name": "Security Architect / CISO",
    "function": "cybersecurity",
    "family": "security",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "bank-officer",
    "name": "Bank Officer / Relationship Manager",
    "function": "banking",
    "family": "retail-banking",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "rbi-grade-b",
      "name": "Reserve Bank of India — Officers in Grade B (DR) recruitment",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-04-29",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "credit-analyst",
    "name": "Credit Analyst / Underwriter",
    "function": "banking",
    "family": "retail-banking",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "wealth-manager",
    "name": "Wealth Manager / Private Banker",
    "function": "banking",
    "family": "retail-banking",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "investment-banker",
    "name": "Investment Banking Analyst / Associate",
    "function": "banking",
    "family": "corporate-banking",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "corporate-banker",
    "name": "Corporate / Commercial Banker",
    "function": "banking",
    "family": "corporate-banking",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "banking-operations",
    "name": "Banking Operations Analyst",
    "function": "banking",
    "family": "fintech-ops",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "fintech-product-ops",
    "name": "Fintech Product / Operations",
    "function": "banking",
    "family": "fintech-ops",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "insurance-sales-manager",
    "name": "Insurance Sales / Agency Manager",
    "function": "insurance",
    "family": "insurance",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "underwriter-insurance",
    "name": "Insurance Underwriter",
    "function": "insurance",
    "family": "insurance",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "claims-manager",
    "name": "Claims Manager / Adjuster",
    "function": "insurance",
    "family": "insurance",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "actuary",
    "name": "Actuary / Actuarial Analyst",
    "function": "insurance",
    "family": "insurance",
    "tier": 2,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2025-08-16",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "equity-research-analyst",
    "name": "Equity Research Analyst",
    "function": "investment-markets",
    "family": "investment",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "portfolio-manager",
    "name": "Fund / Portfolio Manager",
    "function": "investment-markets",
    "family": "investment",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "trader",
    "name": "Trader / Dealer",
    "function": "investment-markets",
    "family": "investment",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "quant-analyst",
    "name": "Quantitative Analyst",
    "function": "investment-markets",
    "family": "investment",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "financial-advisor",
    "name": "Financial Advisor / Planner",
    "function": "investment-markets",
    "family": "investment",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "private-equity-vc",
    "name": "Private Equity / VC Associate",
    "function": "investment-markets",
    "family": "investment",
    "tier": 3,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 5
   },
   {
    "role": "customer-success-manager",
    "name": "Customer Success Manager",
    "function": "customer-success",
    "family": "customer-success",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "implementation-consultant",
    "name": "Implementation / Onboarding Consultant",
    "function": "customer-success",
    "family": "customer-success",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "customer-support-executive",
    "name": "Customer Support Executive",
    "function": "customer-support",
    "family": "support",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "team-leader-bpo",
    "name": "Team Leader / Operations (BPO)",
    "function": "customer-support",
    "family": "support",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "technical-support-specialist",
    "name": "Technical Support Specialist",
    "function": "customer-support",
    "family": "support",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "ux-designer",
    "name": "UX / Product Designer",
    "function": "design",
    "family": "product-design",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "design-lead",
    "name": "Design Lead / Head of Design",
    "function": "design",
    "family": "product-design",
    "tier": 3,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 6
   },
   {
    "role": "graphic-designer",
    "name": "Graphic Designer",
    "function": "design",
    "family": "visual-design",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "architect",
    "name": "Architect",
    "function": "architecture",
    "family": "architecture",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "interior-designer",
    "name": "Interior Designer",
    "function": "architecture",
    "family": "architecture",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "school-teacher",
    "name": "School Teacher",
    "function": "education",
    "family": "teaching",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 2,
    "sources": [
     {
      "id": "kvs",
      "name": "Kendriya Vidyalaya Sangathan — amended Recruitment Rules for teaching posts (2025)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2025-03-20",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry",
     "any"
    ],
    "confidence": 0.75,
    "freshness": [
     "ageing"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey",
     "no fresh observation"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "professor",
    "name": "Professor / Lecturer",
    "function": "education",
    "family": "teaching",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 3,
    "sources": [
     {
      "id": "jnu",
      "name": "Jawaharlal Nehru University — faculty advertisement RC/75/2026 (UGC Regulations 2018 scales)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-05-18",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry",
     "mid",
     "senior"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "edtech-instructor",
    "name": "EdTech Instructor / Curriculum Designer",
    "function": "education",
    "family": "teaching",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "research-scientist",
    "name": "Research Scientist",
    "function": "research",
    "family": "research",
    "tier": 2,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "isro",
      "name": "ISRO Centralised Recruitment Board — Advt. ISRO:ICRB:03(EMC):2026",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-08-27",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 0
   },
   {
    "role": "lab-technician",
    "name": "Lab Technician / Research Assistant",
    "function": "research",
    "family": "research",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "policy-researcher",
    "name": "Policy / Economic Researcher",
    "function": "research",
    "family": "research",
    "tier": 3,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "rbi-grade-b",
      "name": "Reserve Bank of India — Officers in Grade B (DR) recruitment",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-04-29",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 0
   },
   {
    "role": "journalist",
    "name": "Journalist / Reporter",
    "function": "media",
    "family": "journalism",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "producer",
    "name": "Producer / Broadcast Professional",
    "function": "media",
    "family": "journalism",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "content-writer",
    "name": "Content Writer",
    "function": "content",
    "family": "content",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "content-manager",
    "name": "Content / Editorial Manager",
    "function": "content",
    "family": "content",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "doctor-mbbs",
    "name": "Doctor (MBBS / Medical Officer)",
    "function": "healthcare",
    "family": "clinical",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "aiims-jammu",
      "name": "AIIMS Vijaypur, Jammu — Junior Resident (Non-Academic) and Senior Resident / Demonstrator notifications, 2026",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-02-28",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "specialist-doctor",
    "name": "Specialist Doctor / Consultant",
    "function": "healthcare",
    "family": "clinical",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "aiims-jammu",
      "name": "AIIMS Vijaypur, Jammu — Junior Resident (Non-Academic) and Senior Resident / Demonstrator notifications, 2026",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-03-30",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "dentist",
    "name": "Dentist",
    "function": "healthcare",
    "family": "clinical",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "nurse",
    "name": "Nurse",
    "function": "healthcare",
    "family": "clinical",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "aiims-exams",
      "name": "AIIMS New Delhi — NORCET-11 Notice No. 103/2026",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-07-24",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "pharmacist",
    "name": "Pharmacist",
    "function": "healthcare",
    "family": "clinical",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "physiotherapist",
    "name": "Physiotherapist",
    "function": "healthcare",
    "family": "clinical",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "allied-health",
    "name": "Allied Health / Paramedical",
    "function": "healthcare",
    "family": "clinical",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "hospital-administrator",
    "name": "Hospital Administrator",
    "function": "healthcare",
    "family": "healthcare-admin",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "clinical-research-associate",
    "name": "Clinical Research Associate",
    "function": "pharma",
    "family": "pharma",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "regulatory-affairs",
    "name": "Regulatory Affairs Specialist",
    "function": "pharma",
    "family": "pharma",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "pharma-qa",
    "name": "Pharma QA / QC Analyst",
    "function": "pharma",
    "family": "pharma",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "medical-writer",
    "name": "Medical Writer / Scientific Communications",
    "function": "pharma",
    "family": "pharma",
    "tier": 3,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 6
   },
   {
    "role": "production-chemist",
    "name": "Production / Formulation Chemist",
    "function": "pharma",
    "family": "pharma",
    "tier": 3,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 6
   },
   {
    "role": "production-engineer",
    "name": "Production Engineer",
    "function": "manufacturing",
    "family": "production",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-05-05",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 1
   },
   {
    "role": "plant-manager",
    "name": "Plant / Production Manager",
    "function": "manufacturing",
    "family": "production",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "maintenance-engineer",
    "name": "Maintenance Engineer",
    "function": "manufacturing",
    "family": "production",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "machine-operator",
    "name": "Machine Operator / Technician",
    "function": "manufacturing",
    "family": "production",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "quality-engineer",
    "name": "Quality Engineer",
    "function": "quality",
    "family": "quality",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "quality-manager",
    "name": "Quality Manager",
    "function": "quality",
    "family": "quality",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "site-engineer",
    "name": "Site Engineer",
    "function": "construction",
    "family": "construction",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "construction-project-manager",
    "name": "Construction Project Manager",
    "function": "construction",
    "family": "construction",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "quantity-surveyor",
    "name": "Quantity Surveyor / Estimator",
    "function": "construction",
    "family": "construction",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "safety-officer",
    "name": "Safety Officer (EHS)",
    "function": "construction",
    "family": "construction",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "real-estate-sales",
    "name": "Real Estate Sales / Property Consultant",
    "function": "real-estate",
    "family": "real-estate",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "property-manager",
    "name": "Property / Facility Manager",
    "function": "real-estate",
    "family": "real-estate",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "valuer",
    "name": "Valuer / Real Estate Analyst",
    "function": "real-estate",
    "family": "real-estate",
    "tier": 3,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 6
   },
   {
    "role": "hotel-manager",
    "name": "Hotel / Restaurant Manager",
    "function": "hospitality",
    "family": "hotel",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "chef",
    "name": "Chef",
    "function": "hospitality",
    "family": "hotel",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "front-office-executive",
    "name": "Front Office / Guest Relations",
    "function": "hospitality",
    "family": "hotel",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "travel-consultant",
    "name": "Travel Consultant / Tour Manager",
    "function": "hospitality",
    "family": "hotel",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "cabin-crew",
    "name": "Cabin Crew / Airline Staff",
    "function": "hospitality",
    "family": "hotel",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "store-manager",
    "name": "Store Manager",
    "function": "retail",
    "family": "retail",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "retail-sales-associate",
    "name": "Retail Sales Associate",
    "function": "retail",
    "family": "retail",
    "tier": 1,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 13
   },
   {
    "role": "merchandiser",
    "name": "Merchandiser / Category Manager",
    "function": "retail",
    "family": "retail",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "ecommerce-manager",
    "name": "E-commerce / Marketplace Manager",
    "function": "retail",
    "family": "retail",
    "tier": 2,
    "status": "SIGNAL ONLY",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation (demand signal only)"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 9
   },
   {
    "role": "civil-servant",
    "name": "Civil Servant (IAS / IPS / state services)",
    "function": "government",
    "family": "civil-services",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: Pay Commission scales (official)",
    "priority_score": 18
   },
   {
    "role": "psu-officer",
    "name": "PSU Officer / Management Trainee",
    "function": "government",
    "family": "civil-services",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 2,
    "sources": [
     {
      "id": "ntpc-careers",
      "name": "NTPC Limited — recruitment advertisements 01/26 (Executive Trainee Finance), 15/25 (Assistant Law Officer), 10/25 (Deputy Manager)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-01-13",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry",
     "senior"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 0
   },
   {
    "role": "government-clerk",
    "name": "Government Clerk / Assistant",
    "function": "government",
    "family": "civil-services",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 3,
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-09-07",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 0
   },
   {
    "role": "defence-officer",
    "name": "Defence Officer",
    "function": "government",
    "family": "civil-services",
    "tier": 2,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 4,
    "sources": [
     {
      "id": "upsc",
      "name": "Union Public Service Commission — CDS (II) 2026 Examination Notice, Appendix IV",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-05-20",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry",
     "any"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 0
   },
   {
    "role": "public-sector-bank",
    "name": "Public Sector Bank Officer / Clerk",
    "function": "government",
    "family": "civil-services",
    "tier": 1,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 5,
    "sources": [
     {
      "id": "sbi-careers",
      "name": "State Bank of India — recruitment advertisements (Probationary Officers 2026-27; Junior Associates 2026)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     },
     {
      "id": "ibps",
      "name": "Institute of Banking Personnel Selection — CRP PO/MT-XVI and CRP CSA-XVI notifications",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-08-01",
    "last_verified": "2026-09-14",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 0
   },
   {
    "role": "pilot",
    "name": "Pilot",
    "function": "other",
    "family": "other",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "agriculture-professional",
    "name": "Agriculture / Agronomist",
    "function": "other",
    "family": "other",
    "tier": 2,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 1,
    "sources": [
     {
      "id": "ibps-so",
      "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-06-30",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 0
   },
   {
    "role": "environmental-specialist",
    "name": "Environmental / Sustainability Specialist",
    "function": "other",
    "family": "other",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "sports-fitness",
    "name": "Sports / Fitness Professional",
    "function": "other",
    "family": "other",
    "tier": 3,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 6
   },
   {
    "role": "social-worker",
    "name": "Social Worker / NGO Professional",
    "function": "other",
    "family": "other",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "librarian-archivist",
    "name": "Librarian / Information Specialist",
    "function": "other",
    "family": "other",
    "tier": 3,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 6
   },
   {
    "role": "translator",
    "name": "Translator / Interpreter / Language Specialist",
    "function": "other",
    "family": "other",
    "tier": 3,
    "status": "VERIFIED",
    "best_grade": "MEDIUM",
    "observations": 2,
    "sources": [
     {
      "id": "ibps-so",
      "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "evidence_type": "employer-data",
      "kind": "official-notification"
     }
    ],
    "evidence_types": [
     "employer-data"
    ],
    "latest_effective": "2026-06-30",
    "last_verified": "2026-09-15",
    "geography": [
     "in"
    ],
    "experience_bands": [
     "entry"
    ],
    "confidence": 0.75,
    "freshness": [
     "fresh"
    ],
    "missing": [
     "no distribution (p25/p50/p75)",
     "bands not covered: early, mid, senior, lead",
     "no city- or state-specific observation",
     "single-employer figures only; no market survey"
    ],
    "next_action": "Add a market survey with stated methodology alongside the employer figures",
    "priority_score": 0
   },
   {
    "role": "event-manager",
    "name": "Event Manager",
    "function": "other",
    "family": "other",
    "tier": 2,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 12
   },
   {
    "role": "photographer",
    "name": "Photographer / Videographer",
    "function": "other",
    "family": "other",
    "tier": 3,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 6
   },
   {
    "role": "driver-delivery",
    "name": "Driver / Delivery Partner",
    "function": "other",
    "family": "other",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "security-guard",
    "name": "Security Guard / Supervisor",
    "function": "other",
    "family": "other",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   },
   {
    "role": "electrician-plumber",
    "name": "Electrician / Plumber / Skilled Trades",
    "function": "other",
    "family": "other",
    "tier": 1,
    "status": "INSUFFICIENT",
    "best_grade": null,
    "observations": 0,
    "sources": [],
    "evidence_types": [],
    "latest_effective": null,
    "last_verified": null,
    "geography": [],
    "experience_bands": [],
    "confidence": null,
    "freshness": [],
    "missing": [
     "no salary observation and no demand signal"
    ],
    "next_action": "Find a primary source: PLFS occupation tables (microdata)",
    "priority_score": 18
   }
  ],
  "sources": [
   {
    "id": "mospi-plfs-2023-24",
    "name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "evidence_type": "government-earnings",
    "status": "integrated",
    "observations": 1,
    "roles": [
     "regular-salaried-all"
    ],
    "last_verified": "2026-09-13"
   },
   {
    "id": "mospi-plfs-2025",
    "name": "Periodic Labour Force Survey — Annual Report 2025 (January – December 2025), press note",
    "evidence_type": "government-earnings",
    "status": "integrated",
    "observations": 1,
    "roles": [
     "regular-salaried-all"
    ],
    "last_verified": "2026-09-13"
   },
   {
    "id": "aon-sis-2026",
    "name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "evidence_type": "job-market-signal",
    "status": "integrated",
    "observations": 0,
    "roles": [],
    "last_verified": "2026-09-13"
   },
   {
    "id": "icai-cmib-placement",
    "name": "ICAI Committee for Members in Industry & Business — campus placement programme",
    "evidence_type": "salary-benchmark",
    "status": "integrated",
    "observations": 0,
    "roles": [],
    "last_verified": "2026-09-13"
   },
   {
    "id": "careers360-icai-60",
    "name": "Careers360: ICAI 60th campus placement ends, highest domestic package at Rs 26.70 lakh",
    "evidence_type": "salary-benchmark",
    "status": "integrated",
    "observations": 2,
    "roles": [
     "ca-newly-qualified"
    ],
    "last_verified": "2026-09-13"
   },
   {
    "id": "careers360-icai-2023",
    "name": "Careers360: ICAI campus placement — over 9,000 take part, highest salary Rs 41 lakh",
    "evidence_type": "salary-benchmark",
    "status": "integrated",
    "observations": 2,
    "roles": [
     "ca-newly-qualified"
    ],
    "last_verified": "2026-09-13"
   },
   {
    "id": "bntw-icai-65",
    "name": "Business News This Week: ICAI to organise 65th campus placement programme (quotes the April–May 2026 season outcomes)",
    "evidence_type": "salary-benchmark",
    "status": "integrated",
    "observations": 2,
    "roles": [
     "ca-newly-qualified"
    ],
    "last_verified": "2026-09-13"
   },
   {
    "id": "mospi-asi",
    "name": "Annual Survey of Industries — wages per worker by industry (NIC)",
    "evidence_type": "government-earnings",
    "status": "pending",
    "observations": 0,
    "roles": [],
    "last_verified": null
   },
   {
    "id": "ncs-portal",
    "name": "National Career Service — job postings",
    "evidence_type": "job-market-signal",
    "status": "pending",
    "observations": 0,
    "roles": [],
    "last_verified": null
   },
   {
    "id": "crowd-sourced-salary-sites",
    "name": "Crowd-sourced salary sites (AmbitionBox, Glassdoor, Payscale)",
    "evidence_type": "user-reported",
    "status": "not-integrated",
    "observations": 0,
    "roles": [],
    "last_verified": null
   },
   {
    "id": "demo",
    "name": "DEMO — illustrative figures for exercising the engine",
    "evidence_type": "demo",
    "status": "integrated",
    "observations": 0,
    "roles": [],
    "last_verified": "2026-09-13"
   },
   {
    "id": "naukri-jobspeak",
    "name": "Naukri JobSpeak Index (Info Edge India)",
    "evidence_type": "job-posting-signal",
    "status": "integrated",
    "observations": 0,
    "roles": [],
    "last_verified": "2026-09-13"
   },
   {
    "id": "peoplesboard-jobspeak-2026-08",
    "name": "The People's Board: White-collar hiring rises 14% in August, Naukri says",
    "evidence_type": "job-posting-signal",
    "status": "integrated",
    "observations": 0,
    "roles": [],
    "last_verified": "2026-09-13"
   },
   {
    "id": "iim-a-iprs",
    "name": "IIM Ahmedabad — audited final placement report (IPRS), PGP Class of 2026",
    "evidence_type": "salary-benchmark",
    "status": "integrated",
    "observations": 0,
    "roles": [],
    "last_verified": "2026-09-13"
   },
   {
    "id": "campusutra-iim-a-2026",
    "name": "Campusutra: IIM Ahmedabad releases audited final placement report 2026",
    "evidence_type": "salary-benchmark",
    "status": "integrated",
    "observations": 3,
    "roles": [
     "mba-graduate-iim-a"
    ],
    "last_verified": "2026-09-13"
   },
   {
    "id": "sbi-careers",
    "name": "State Bank of India — recruitment advertisements (Probationary Officers 2026-27; Junior Associates 2026)",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 3,
    "roles": [
     "public-sector-bank"
    ],
    "last_verified": "2026-09-13"
   },
   {
    "id": "tcs-careers",
    "name": "Tata Consultancy Services — TCS All India NQT Hiring page (Batch of 2026, 2025, 2024)",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 2,
    "roles": [
     "software-engineer"
    ],
    "last_verified": "2026-09-13"
   },
   {
    "id": "michael-page-india",
    "name": "Michael Page India — Salary Guide / benchmark tool 2026",
    "evidence_type": "salary-benchmark",
    "status": "not-integrated",
    "observations": 0,
    "roles": [],
    "last_verified": "2026-09-13"
   },
   {
    "id": "doe-7cpc",
    "name": "7th Central Pay Commission pay matrix (Department of Expenditure)",
    "evidence_type": "employer-data",
    "status": "pending",
    "observations": 0,
    "roles": [],
    "last_verified": null
   },
   {
    "id": "ssc-goi",
    "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 10,
    "roles": [
     "government-clerk",
     "accountant",
     "audit-associate",
     "civil-engineer",
     "mechanical-engineer",
     "electrical-engineer",
     "electronics-engineer",
     "statistician"
    ],
    "last_verified": "2026-09-14"
   },
   {
    "id": "ibps",
    "name": "Institute of Banking Personnel Selection — CRP PO/MT-XVI and CRP CSA-XVI notifications",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 2,
    "roles": [
     "public-sector-bank"
    ],
    "last_verified": "2026-09-14"
   },
   {
    "id": "ntpc-careers",
    "name": "NTPC Limited — recruitment advertisements 01/26 (Executive Trainee Finance), 15/25 (Assistant Law Officer), 10/25 (Deputy Manager)",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 4,
    "roles": [
     "psu-officer",
     "cost-accountant",
     "legal-counsel"
    ],
    "last_verified": "2026-09-14"
   },
   {
    "id": "aiims-exams",
    "name": "AIIMS New Delhi — NORCET-11 Notice No. 103/2026",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 1,
    "roles": [
     "nurse"
    ],
    "last_verified": "2026-09-14"
   },
   {
    "id": "upsc",
    "name": "Union Public Service Commission — CDS (II) 2026 Examination Notice, Appendix IV",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 4,
    "roles": [
     "defence-officer"
    ],
    "last_verified": "2026-09-14"
   },
   {
    "id": "isro",
    "name": "ISRO Centralised Recruitment Board — Advt. ISRO:ICRB:03(EMC):2026",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 1,
    "roles": [
     "research-scientist"
    ],
    "last_verified": "2026-09-14"
   },
   {
    "id": "jnu",
    "name": "Jawaharlal Nehru University — faculty advertisement RC/75/2026 (UGC Regulations 2018 scales)",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 3,
    "roles": [
     "professor"
    ],
    "last_verified": "2026-09-14"
   },
   {
    "id": "kvs",
    "name": "Kendriya Vidyalaya Sangathan — amended Recruitment Rules for teaching posts (2025)",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 2,
    "roles": [
     "school-teacher"
    ],
    "last_verified": "2026-09-14"
   },
   {
    "id": "rbi-grade-b",
    "name": "Reserve Bank of India — Officers in Grade B (DR) recruitment",
    "evidence_type": "employer-data",
    "status": "active",
    "observations": 3,
    "roles": [
     "bank-officer",
     "policy-researcher",
     "statistician"
    ],
    "last_verified": "2026-09-15"
   },
   {
    "id": "icsi-placement",
    "name": "ICSI campus placement statistics",
    "evidence_type": "salary-benchmark",
    "status": "not-integrated",
    "observations": 0,
    "roles": [],
    "last_verified": "2026-09-14"
   },
   {
    "id": "ibps-so",
    "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 5,
    "roles": [
     "agriculture-professional",
     "translator",
     "lawyer",
     "hr-executive",
     "marketing-executive"
    ],
    "last_verified": "2026-09-15"
   },
   {
    "id": "lic-careers",
    "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 6,
    "roles": [
     "chartered-accountant",
     "company-secretary",
     "actuary",
     "lawyer",
     "civil-engineer",
     "electrical-engineer"
    ],
    "last_verified": "2026-09-15"
   },
   {
    "id": "aiims-jammu",
    "name": "AIIMS Vijaypur, Jammu — Junior Resident (Non-Academic) and Senior Resident / Demonstrator notifications, 2026",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 2,
    "roles": [
     "doctor-mbbs",
     "specialist-doctor"
    ],
    "last_verified": "2026-09-15"
   },
   {
    "id": "cil-careers",
    "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
    "evidence_type": "employer-data",
    "status": "integrated",
    "observations": 8,
    "roles": [
     "civil-engineer",
     "electrical-engineer",
     "mechanical-engineer",
     "electronics-engineer",
     "company-secretary",
     "translator",
     "system-administrator",
     "production-engineer"
    ],
    "last_verified": "2026-09-15"
   }
  ]
 },
 "built": "2026-09-16",
 "versions": [
  {
   "id": "salary-observations",
   "file": "salary/observations.v2.json",
   "version": "2.4.0",
   "status": "verified",
   "effective_from": "2024-02-21",
   "review_after": "2027-03-31",
   "notes": "ICAI, PLFS, IIM-A benchmarks; employer-published pay from SBI, TCS, SSC (GoI), IBPS, NTPC, AIIMS, UPSC/Armed Forces, ISRO, JNU (UGC scales), KVS. 2.4.0 (2026-09-15): IBPS SO XVI, RBI Grade B 2026, SSC JE 2026 and JSO, LIC AAO/AE 2025, AIIMS Jammu JR/SR 2026, Coal India MT 2026."
  },
  {
   "id": "salary-observations-v1",
   "file": "historical/observations.v1.json",
   "version": "1.0.0",
   "status": "superseded",
   "superseded_by": "salary-observations",
   "notes": "Preserved byte-for-byte."
  },
  {
   "id": "salary-observations-v2.1",
   "file": "historical/observations.v2.1.0.json",
   "version": "2.1.0",
   "status": "superseded",
   "superseded_by": "salary-observations",
   "notes": "Preserved byte-for-byte before the employer-data rows were appended on 2026-09-13."
  },
  {
   "id": "salary-observations-v2.2",
   "file": "historical/observations.v2.2.0.json",
   "version": "2.2.0",
   "status": "superseded",
   "superseded_by": "salary-observations",
   "notes": "Preserved byte-for-byte before the official pay-scale rows were appended on 2026-09-14."
  },
  {
   "id": "salary-demo",
   "file": "salary/demo.v0.json",
   "version": "0.1.0",
   "status": "demo",
   "review_after": "2027-03-31",
   "notes": "Illustrative; the location factors it carried are no longer used — the verified location dataset replaces them."
  },
  {
   "id": "adjust-location",
   "file": "adjustments/location.v1.json",
   "version": "1.1.0",
   "status": "verified",
   "review_after": "2027-03-31",
   "notes": "PLFS 2023-24 Table 38, Apr–Jun 2024, urban person; 33 cities mapped to their state."
  },
  {
   "id": "adjust-wage-growth",
   "file": "adjustments/wage-growth.v1.json",
   "version": "1.0.0",
   "status": "verified",
   "review_after": "2027-03-31"
  },
  {
   "id": "adjust-industry-growth",
   "file": "adjustments/industry-growth.v1.json",
   "version": "1.0.0",
   "status": "verified",
   "review_after": "2027-03-31"
  },
  {
   "id": "roles",
   "file": "roles/taxonomy.json",
   "version": "2.0.0",
   "status": "verified",
   "notes": "Function → family → role, 199 roles, with seniority taxonomy."
  },
  {
   "id": "skills",
   "file": "skills/taxonomy.json",
   "version": "1.1.0",
   "status": "verified",
   "notes": "43 skills with function relevance and sector signal tags; no premiums."
  },
  {
   "id": "skills-v1.0",
   "file": "historical/skills.v1.0.0.json",
   "version": "1.0.0",
   "status": "superseded",
   "superseded_by": "skills",
   "notes": "Preserved byte-for-byte; 8 finance skills with aliases only."
  },
  {
   "id": "locations",
   "file": "locations/index.json",
   "version": "2.1.0",
   "status": "verified"
  },
  {
   "id": "industries",
   "file": "industries/index.json",
   "version": "1.0.0",
   "status": "verified"
  },
  {
   "id": "companies",
   "file": "companies/attributes.json",
   "version": "1.0.0",
   "status": "verified"
  },
  {
   "id": "sources",
   "file": "sources/registry.json",
   "version": "2.4.0",
   "status": "verified"
  },
  {
   "id": "events-schema",
   "file": "events/schema.json",
   "version": "1.0.0",
   "status": "design-only"
  },
  {
   "id": "adjust-location-v1.0",
   "file": "historical/location.v1.0.0.json",
   "version": "1.0.0",
   "status": "superseded",
   "superseded_by": "adjust-location",
   "notes": "Preserved byte-for-byte."
  },
  {
   "id": "roles-v1.1",
   "file": "historical/roles.taxonomy.v1.1.0.json",
   "version": "1.1.0",
   "status": "superseded",
   "superseded_by": "roles",
   "notes": "Preserved byte-for-byte."
  },
  {
   "id": "adjust-demand-signals",
   "file": "adjustments/demand-signals.v1.json",
   "version": "1.0.0",
   "status": "verified",
   "review_after": "2026-12-31",
   "notes": "Naukri JobSpeak, August 2026."
  },
  {
   "id": "skill-demand",
   "file": "skills/demand.v0.json",
   "version": "0.1.0",
   "status": "pending",
   "notes": "Schema only; no rows until a verifiable role-level skill source is integrated."
  },
  {
   "id": "salary-observations-v2.3",
   "file": "historical/observations.v2.3.0.json",
   "version": "2.3.0",
   "status": "superseded",
   "superseded_by": "salary-observations",
   "notes": "Preserved byte-for-byte before the 2026-09-15 employer-data rows were appended."
  }
 ],
 "raw": [
  "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
  "raw/mospi-plfs-2023-24/statement10.json",
  "raw/mospi-plfs-2025/press-note-earnings.json",
  "raw/aon-2026/press-release.json",
  "raw/icai/placements.json",
  "raw/naukri-jobspeak-2026-08/press-report.json",
  "raw/iim-a-2026/press-report.json",
  "raw/sbi-2026/po-advt-26-27.json",
  "raw/sbi-2026/ja-advt-2026.json",
  "raw/tcs-nqt-2026/hiring-page.json",
  "raw/goi-pay-matrix-2026/levels.json",
  "raw/ssc-2026/cgl-chsl-notices.json",
  "raw/ibps-2026/po-xvi-csa-xvi.json",
  "raw/ntpc-2025-26/advertisements.json",
  "raw/aiims-2026/norcet-11.json",
  "raw/upsc-cds-2026/cds-ii-notice.json",
  "raw/isro-2026/icrb-03-emc-2026.json",
  "raw/jnu-2026/rc-75-2026.json",
  "raw/kvs-2025/recruitment-rules.json"
 ],
 "staleness": {
  "warn_months": 18,
  "stale_months": 30,
  "note": "Measured from an observation's effective_date to the build date. Warn downgrades confidence one grade; stale caps it at LOW and the page says so."
 },
 "history_policy": "When a dataset is superseded, copy the old file to historical/ unchanged, add a row here with status \"superseded\", and record its checksum. Never edit a verified observation in place; add a new one with a later effective_date. Raw extracts are never edited; a corrected extract is a new file.",
 "sources": [
  {
   "id": "mospi-plfs-2023-24",
   "name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
   "publisher": "National Statistics Office, Ministry of Statistics and Programme Implementation, Government of India",
   "dataset": "Statement 10 and Table 38: average monthly earnings of regular wage/salaried employees in CWS",
   "kind": "government-statistics",
   "url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
   "coverage": "All India, all occupations; 1,01,920 households, 4,18,159 persons; 33,467 regular wage/salaried employees reporting earnings in Apr–Jun 2024",
   "geography": "All India, by State/UT, rural/urban",
   "role": "All regular wage/salaried employees (all occupations)",
   "industry": "All",
   "experience_applicability": "All ages 15+; no experience split",
   "collection_date": "2026-09-13",
   "effective_date": "2024-06-30",
   "published": "2024-09-23",
   "limitations": "Household survey of all salaried workers, so it measures the general wage level of a state, not any profession. Earnings are monthly take-home as reported by the household. Latest quarter used (Apr–Jun 2024).",
   "confidence": 0.85,
   "license": "Government of India open data; publication freely downloadable from mospi.gov.in. Cited with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-13",
   "evidence_type": "government-earnings"
  },
  {
   "id": "mospi-plfs-2025",
   "name": "Periodic Labour Force Survey — Annual Report 2025 (January – December 2025), press note",
   "publisher": "NSO, MoSPI, Government of India",
   "dataset": "Fig 6(a): average monthly earnings, regular wage/salaried employment, 2022–2025, by sex",
   "kind": "government-statistics",
   "url": "https://www.mospi.gov.in/uploads/latestReleases/latest_release_1774607827733_3e8964a9-268b-4cc9-ad65-cfc8a9e32f08_Press_note_AR_PLFS_2025_23032025_V2.1_26032026_final.pdf",
   "coverage": "All India; about 2.72 lakh households from January 2025",
   "geography": "All India",
   "role": "All regular wage/salaried employees",
   "industry": "All",
   "experience_applicability": "All",
   "collection_date": "2026-09-13",
   "effective_date": "2025-12-31",
   "published": "2026-03-26",
   "limitations": "Press note only; the state-wise tables of the full 2025 report have not yet been extracted. Person (combined) series not printed.",
   "confidence": 0.85,
   "license": "Government of India open data; cited with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-13",
   "evidence_type": "government-earnings"
  },
  {
   "id": "aon-sis-2026",
   "name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
   "publisher": "Aon plc",
   "dataset": "Projected 2026 and actual 2025 salary increase, overall and by industry; attrition",
   "kind": "industry-survey",
   "url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
   "coverage": "More than 1,400 organisations across 45 industries (32nd edition)",
   "geography": "India",
   "role": "All roles (organisation-level budgets)",
   "industry": "By industry where quoted",
   "experience_applicability": "All",
   "collection_date": "2026-09-13",
   "effective_date": "2026-12-31",
   "published": "2026-02-24",
   "limitations": "Increase percentages, not salary levels; organisation budgets, not individual outcomes. Only the figures in the public press release are used.",
   "confidence": 0.7,
   "license": "Publicly released figures quoted with attribution; the full report is proprietary and not used.",
   "reliability": "medium-high",
   "last_verified": "2026-09-13",
   "evidence_type": "job-market-signal"
  },
  {
   "id": "icai-cmib-placement",
   "name": "ICAI Committee for Members in Industry & Business — campus placement programme",
   "publisher": "The Institute of Chartered Accountants of India",
   "dataset": "Per-season placement outcomes: average package, highest domestic package, companies, candidates",
   "kind": "official-body",
   "url": "https://www.icai.org/",
   "coverage": "Newly qualified CAs who opt into campus placement (thousands per season)",
   "geography": "India (centres nationwide)",
   "role": "Chartered Accountant (newly qualified)",
   "industry": "All recruiters",
   "experience_applicability": "Entry (0 years)",
   "collection_date": "2026-09-13",
   "effective_date": "2026-05-31",
   "published": null,
   "limitations": "Figures reach this layer through press reports of ICAI announcements; the ICAI releases themselves are to be archived per edition. Only mean and maximum are published.",
   "confidence": 0.7,
   "license": "Publicly announced statistics, cited with attribution.",
   "reliability": "high (primary) / medium (as reported)",
   "last_verified": "2026-09-13",
   "evidence_type": "salary-benchmark",
   "notes": " Placement programme pages live under cmib.icai.org, which was not reachable from the build environment on 2026-09-13; the institute root is linked.",
   "alternate_url": "https://cmib.icai.org/"
  },
  {
   "id": "careers360-icai-60",
   "name": "Careers360: ICAI 60th campus placement ends, highest domestic package at Rs 26.70 lakh",
   "publisher": "Careers360",
   "kind": "press-report",
   "url": "https://news.careers360.com/icai-60th-campus-placement-ends-highest-domestic-package-at-rs-26-70-lakh-per-annum",
   "reports_source": "icai-cmib-placement",
   "published": "2024-12-28",
   "reliability": "medium",
   "confidence": 0.7,
   "license": "Facts quoted with attribution.",
   "last_verified": "2026-09-13",
   "evidence_type": "salary-benchmark"
  },
  {
   "id": "careers360-icai-2023",
   "name": "Careers360: ICAI campus placement — over 9,000 take part, highest salary Rs 41 lakh",
   "publisher": "Careers360",
   "kind": "press-report",
   "url": "https://news.careers360.com/icai-ca-jobs-placement-salary-41-lakh-foundation-intermediate-final-chartered-accountant-new-scheme-registration",
   "reports_source": "icai-cmib-placement",
   "published": "2024-02-21",
   "reliability": "medium",
   "confidence": 0.6,
   "license": "Facts quoted with attribution.",
   "last_verified": "2026-09-13",
   "evidence_type": "salary-benchmark"
  },
  {
   "id": "bntw-icai-65",
   "name": "Business News This Week: ICAI to organise 65th campus placement programme (quotes the April–May 2026 season outcomes)",
   "publisher": "Business News This Week",
   "kind": "press-report",
   "url": "https://businessnewsthisweek.com/education/icai-to-organise-65th-campus-placement-programme-for-newly-qualified-chartered-accountants-across-29-centres/",
   "reports_source": "icai-cmib-placement",
   "published": "2026-07-27",
   "reliability": "medium-low",
   "confidence": 0.5,
   "license": "Facts quoted with attribution.",
   "limitations": "Edition numbering inconsistent with other secondary reports.",
   "last_verified": "2026-09-13",
   "evidence_type": "salary-benchmark"
  },
  {
   "id": "mospi-asi",
   "name": "Annual Survey of Industries — wages per worker by industry (NIC)",
   "publisher": "MoSPI / NSO",
   "kind": "government-statistics",
   "url": "https://www.mospi.gov.in/",
   "reliability": "high",
   "status": "pending",
   "notes": "Candidate for an industry level differential (factory sector only). Not yet extracted.",
   "last_verified": null,
   "evidence_type": "government-earnings"
  },
  {
   "id": "ncs-portal",
   "name": "National Career Service — job postings",
   "publisher": "Ministry of Labour & Employment",
   "kind": "government-job-market",
   "url": "https://www.ncs.gov.in/",
   "reliability": "medium",
   "status": "pending",
   "notes": "Candidate for demand signals by role; postings carry salary ranges but no aggregate publication.",
   "last_verified": null,
   "evidence_type": "job-market-signal"
  },
  {
   "id": "crowd-sourced-salary-sites",
   "name": "Crowd-sourced salary sites (AmbitionBox, Glassdoor, Payscale)",
   "publisher": "Various",
   "kind": "crowd-sourced",
   "url": "https://www.ambitionbox.com/",
   "reliability": "low",
   "status": "not-integrated",
   "notes": "Self-reported, unverified samples; terms of use restrict reuse. Not integrated; may be cited as context only.",
   "last_verified": null,
   "evidence_type": "user-reported"
  },
  {
   "id": "demo",
   "name": "DEMO — illustrative figures for exercising the engine",
   "publisher": "caakhilesh.in (internal)",
   "kind": "demo",
   "url": "https://caakhilesh.in/career/methodology/",
   "reliability": "none",
   "notes": "Not market data. Never shown without the demo banner; confidence 0 by rule.",
   "last_verified": "2026-09-13",
   "evidence_type": "demo"
  },
  {
   "id": "naukri-jobspeak",
   "name": "Naukri JobSpeak Index (Info Edge India)",
   "publisher": "Info Edge (India) Ltd",
   "dataset": "Monthly index of white-collar job postings; year-on-year change by sector, function, experience band and city",
   "kind": "job-market-index",
   "evidence_type": "job-posting-signal",
   "url": "https://www.naukri.com/blog/",
   "coverage": "Job postings on Naukri.com; August 2026 index 3,028",
   "geography": "India, with seven cities",
   "role": "By sector / function (not by role)",
   "industry": "By sector",
   "experience_applicability": "Bands 0–3, 4–7, 8–12, 13–15, 16+ years",
   "collection_date": "2026-09-13",
   "effective_date": "2026-08-31",
   "published": "2026-09-08",
   "limitations": "Postings on one portal; a demand signal, not a salary. Sector names are Naukri's and are mapped approximately to this site's functions.",
   "confidence": 0.6,
   "license": "Publicly released headline figures quoted with attribution via a press report.",
   "reliability": "medium",
   "last_verified": "2026-09-13"
  },
  {
   "id": "peoplesboard-jobspeak-2026-08",
   "name": "The People's Board: White-collar hiring rises 14% in August, Naukri says",
   "publisher": "The People's Board",
   "kind": "press-report",
   "evidence_type": "job-posting-signal",
   "url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
   "reports_source": "naukri-jobspeak",
   "published": "2026-09-08",
   "reliability": "medium",
   "confidence": 0.6,
   "license": "Facts quoted with attribution.",
   "last_verified": "2026-09-13"
  },
  {
   "id": "iim-a-iprs",
   "name": "IIM Ahmedabad — audited final placement report (IPRS), PGP Class of 2026",
   "publisher": "Indian Institute of Management Ahmedabad",
   "dataset": "Mean, median and highest domestic Maximum Earning Potential; offers accepted",
   "kind": "institution-report",
   "evidence_type": "salary-benchmark",
   "url": "https://www.iima.ac.in/",
   "coverage": "392 offers accepted, 402 eligible, PGP Class of 2026",
   "geography": "India (domestic offers)",
   "role": "MBA graduate, IIM Ahmedabad PGP",
   "industry": "All recruiters",
   "experience_applicability": "Entry level (pre-MBA experience varies)",
   "collection_date": "2026-09-13",
   "effective_date": "2026-09-03",
   "published": "2026-09-03",
   "limitations": "A single elite institution; MEP includes variable pay at maximum; function-wise split not published in the press report. Reached this layer through a press report of the audited release.",
   "confidence": 0.75,
   "license": "Publicly released, audited statistics quoted with attribution.",
   "reliability": "high (audited) / medium (as reported)",
   "last_verified": "2026-09-13"
  },
  {
   "id": "campusutra-iim-a-2026",
   "name": "Campusutra: IIM Ahmedabad releases audited final placement report 2026",
   "publisher": "Campusutra",
   "kind": "press-report",
   "evidence_type": "salary-benchmark",
   "url": "https://campusutra.com/iim-ahmedabad-audited-final-placement-report-2026/",
   "reports_source": "iim-a-iprs",
   "published": "2026-09-03",
   "reliability": "medium",
   "confidence": 0.6,
   "license": "Facts quoted with attribution.",
   "last_verified": "2026-09-13"
  },
  {
   "id": "sbi-careers",
   "name": "State Bank of India — recruitment advertisements (Probationary Officers 2026-27; Junior Associates 2026)",
   "publisher": "State Bank of India",
   "dataset": "Pay scale, starting basic pay and stated approximate CTC/emoluments for entry cadres",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://bank.sbi/web/careers/current-openings",
   "coverage": "Two entry cadres at one public-sector bank",
   "geography": "India (CTC example at Mumbai)",
   "role": "Probationary Officer (JMGS-I); Junior Associate (clerical)",
   "industry": "Public-sector banking",
   "experience_applicability": "Entry",
   "collection_date": "2026-09-13",
   "effective_date": "2026-08-01",
   "published": "2026-06-23",
   "limitations": "One employer's published scale, not a market benchmark; CTC figure is the bank's own approximation at Mumbai and includes allowances that vary by posting.",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-13"
  },
  {
   "id": "tcs-careers",
   "name": "Tata Consultancy Services — TCS All India NQT Hiring page (Batch of 2026, 2025, 2024)",
   "publisher": "Tata Consultancy Services",
   "dataset": "Published CTC ranges for Prime and Digital cadres by experience (0–1, 1–2 years) and UG/PG; minimum Ninja CTC (FAQ)",
   "kind": "official-employer-page",
   "evidence_type": "employer-data",
   "url": "https://www.tcs.com/careers/india/tcs-all-india-nqt-hiring",
   "coverage": "Campus/NQT fresher hiring at one employer",
   "geography": "India",
   "role": "Software Engineer (fresher cadres)",
   "industry": "IT services",
   "experience_applicability": "0–2 years",
   "collection_date": "2026-09-13",
   "effective_date": "2026-02-18",
   "published": "2026-02-18",
   "limitations": "One employer; cadre depends on test performance; \"actual compensation basis relevant work experience and job location\". Not a market benchmark.",
   "confidence": 0.75,
   "license": "Publicly displayed hiring information quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-13"
  },
  {
   "id": "michael-page-india",
   "name": "Michael Page India — Salary Guide / benchmark tool 2026",
   "publisher": "PageGroup",
   "kind": "recruiter-survey",
   "evidence_type": "salary-benchmark",
   "url": "https://www.michaelpage.co.in/salary-guide",
   "reliability": "medium",
   "status": "not-integrated",
   "notes": "Methodology stated (placements and advertised roles in the past 12 months) but the guide is gated behind a form and its reuse terms are not public; not integrated until access and licence are settled.",
   "last_verified": "2026-09-13"
  },
  {
   "id": "doe-7cpc",
   "name": "7th Central Pay Commission pay matrix (Department of Expenditure)",
   "publisher": "Ministry of Finance, Government of India",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://doe.gov.in/",
   "reliability": "high",
   "status": "pending",
   "notes": "Entry pay by level would cover civil services, defence, teaching (KVS), nursing (AIIMS) and PSU-adjacent roles. The notification PDF could not be fetched from the DoE site on 2026-09-13; not integrated until read.",
   "last_verified": null
  },
  {
   "id": "ssc-goi",
   "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
   "publisher": "Staff Selection Commission, Government of India",
   "dataset": "Pay level and starting basic pay per post (7th CPC pay matrix)",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
   "geography": "India",
   "collection_date": "2026-09-14",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-14",
   "limitations": "Basic pay of a pay level or grade as published by one employer; excludes DA, HRA and other allowances; not a market benchmark.",
   "coverage": "Group B and C posts across Ministries/Departments",
   "role": "Assistant Section Officer, Inspector, Assistant, Accountant, Auditor, UDC, Tax Assistant, LDC, DEO",
   "industry": "Central government",
   "experience_applicability": "Entry (direct recruitment)",
   "effective_date": "2026-05-21",
   "published": "2026-05-21"
  },
  {
   "id": "ibps",
   "name": "Institute of Banking Personnel Selection — CRP PO/MT-XVI and CRP CSA-XVI notifications",
   "publisher": "IBPS (on behalf of 11 participating public sector banks)",
   "dataset": "Scale of pay for Probationary Officer/Management Trainee and Customer Service Associate",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification_CRP-PO-XVI_Final_V1_30.06.2026.pdf",
   "geography": "India",
   "collection_date": "2026-09-14",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-14",
   "limitations": "Basic pay of a pay level or grade as published by one employer; excludes DA, HRA and other allowances; not a market benchmark.",
   "coverage": "11 public sector banks",
   "role": "Probationary Officer / Management Trainee; Customer Service Associate (clerical)",
   "industry": "Public-sector banking",
   "experience_applicability": "Entry",
   "effective_date": "2026-08-01",
   "published": "2026-06-30"
  },
  {
   "id": "ntpc-careers",
   "name": "NTPC Limited — recruitment advertisements 01/26 (Executive Trainee Finance), 15/25 (Assistant Law Officer), 10/25 (Deputy Manager)",
   "publisher": "NTPC Limited",
   "dataset": "IDA pay scales and basic pay by executive grade (E0, E1, E3, E4)",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://careers.ntpc.co.in/recruitment/",
   "geography": "India",
   "collection_date": "2026-09-14",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-14",
   "limitations": "Basic pay of a pay level or grade as published by one employer; excludes DA, HRA and other allowances; not a market benchmark.",
   "coverage": "One Maharatna PSU",
   "role": "Executive Trainee; Assistant Law Officer; Deputy Manager (Electrical/Mechanical/C&I)",
   "industry": "Power generation (PSU)",
   "experience_applicability": "Entry (E0/E1); 10+ years (E4)",
   "effective_date": "2026-01-13",
   "published": "2026-01-13"
  },
  {
   "id": "aiims-exams",
   "name": "AIIMS New Delhi — NORCET-11 Notice No. 103/2026",
   "publisher": "All India Institute of Medical Sciences, New Delhi",
   "dataset": "Pay level of Nursing Officer (Group B)",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://www.aiimsexams.ac.in/advertisement/6a6350f7e5a81c4267f4ff04",
   "geography": "India",
   "collection_date": "2026-09-14",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-14",
   "limitations": "Basic pay of a pay level or grade as published by one employer; excludes DA, HRA and other allowances; not a market benchmark.",
   "coverage": "AIIMS New Delhi and participating AIIMS/institutes",
   "role": "Nursing Officer",
   "industry": "Public healthcare",
   "experience_applicability": "Entry",
   "effective_date": "2026-07-24",
   "published": "2026-07-24"
  },
  {
   "id": "upsc",
   "name": "Union Public Service Commission — CDS (II) 2026 Examination Notice, Appendix IV",
   "publisher": "UPSC / Ministry of Defence",
   "dataset": "Pay levels by rank for commissioned officers (Army, Navy, Air Force) and Military Service Pay",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://www.upsc.gov.in/sites/default/files/Notif-CDS-II-2026-Engl-200526.pdf",
   "geography": "India",
   "collection_date": "2026-09-14",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-14",
   "limitations": "Basic pay of a pay level or grade as published by one employer; excludes DA, HRA and other allowances; not a market benchmark.",
   "coverage": "Indian Armed Forces officers",
   "role": "Lieutenant to Major General and equivalents",
   "industry": "Defence",
   "experience_applicability": "Entry (Lieutenant); higher ranks by promotion — years not stated",
   "effective_date": "2026-05-20",
   "published": "2026-05-20"
  },
  {
   "id": "isro",
   "name": "ISRO Centralised Recruitment Board — Advt. ISRO:ICRB:03(EMC):2026",
   "publisher": "Indian Space Research Organisation",
   "dataset": "Pay level and minimum basic pay of Scientist/Engineer \"SC\"",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://www.isro.gov.in/media_isro/pdf/recruitmentNotice/2026/August/Bilingual_Advertisement_27082026.pdf",
   "geography": "India",
   "collection_date": "2026-09-14",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-14",
   "limitations": "Basic pay of a pay level or grade as published by one employer; excludes DA, HRA and other allowances; not a market benchmark.",
   "coverage": "ISRO centres",
   "role": "Scientist/Engineer SC",
   "industry": "Space research (government)",
   "experience_applicability": "Entry",
   "effective_date": "2026-08-27",
   "published": "2026-08-27"
  },
  {
   "id": "jnu",
   "name": "Jawaharlal Nehru University — faculty advertisement RC/75/2026 (UGC Regulations 2018 scales)",
   "publisher": "Jawaharlal Nehru University",
   "dataset": "Academic pay levels for Assistant Professor, Associate Professor and Professor with minimum experience",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://www.jnu.ac.in/sites/default/files/inline-files/JNU_AdvtNo_RC_75_2026.pdf",
   "geography": "India",
   "collection_date": "2026-09-14",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-14",
   "limitations": "Basic pay of a pay level or grade as published by one employer; excludes DA, HRA and other allowances; not a market benchmark.",
   "coverage": "One central university; scales are the UGC-prescribed scales used by central universities",
   "role": "Assistant Professor; Associate Professor; Professor",
   "industry": "Higher education (public)",
   "experience_applicability": "Entry (AP); 8+ years (Associate); 10+ years (Professor)",
   "effective_date": "2026-05-18",
   "published": "2026-05-18"
  },
  {
   "id": "kvs",
   "name": "Kendriya Vidyalaya Sangathan — amended Recruitment Rules for teaching posts (2025)",
   "publisher": "Kendriya Vidyalaya Sangathan, Ministry of Education",
   "dataset": "Entry pay level for PRT, TGT, PGT, Vice-Principal and Principal",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://cdnbbsr.s3waas.gov.in/s32d2ca7eedf739ef4c3800713ec482e1a/uploads/2026/01/2026012368.pdf",
   "geography": "India",
   "collection_date": "2026-09-14",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-14",
   "limitations": "Basic pay of a pay level or grade as published by one employer; excludes DA, HRA and other allowances; not a market benchmark.",
   "coverage": "Kendriya Vidyalayas (central government schools)",
   "role": "Primary Teacher; Trained Graduate Teacher; Post Graduate Teacher; Vice-Principal; Principal",
   "industry": "School education (public)",
   "experience_applicability": "Entry scales",
   "effective_date": "2025-03-20",
   "published": "2025-06-27"
  },
  {
   "id": "rbi-grade-b",
   "name": "Reserve Bank of India — Officers in Grade B (DR) recruitment",
   "publisher": "Reserve Bank of India",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://rbidocs.rbi.org.in/rdocs/Content/PDFs/DEPR29042026BE94DEA85E3C4753A82B191EB6A795ED.PDF",
   "reliability": "high",
   "status": "active",
   "notes": "Advertisement RBISB/DA/01/2026-27 published 29.04.2026; the rbidocs link served an HTML wrapper when read on 2026-09-15, so the text was verified from a verbatim copy of the same PDF.",
   "last_verified": "2026-09-15",
   "dataset": "Starting basic pay, scale and initial gross emoluments for Officers in Grade B (DR): General, DEPR, DSIM",
   "geography": "India",
   "collection_date": "2026-09-15",
   "confidence": 0.75,
   "license": "Public recruitment advertisement; figures quoted with attribution.",
   "limitations": "One employer; basic pay of the scale; gross emoluments quoted approximately without HRA.",
   "coverage": "Grade B direct recruits",
   "role": "Officer Grade B — General, DEPR (economic research), DSIM (statistics)",
   "industry": "Central bank",
   "experience_applicability": "Entry (direct recruitment)",
   "effective_date": "2026-04-29",
   "published": "2026-04-29"
  },
  {
   "id": "icsi-placement",
   "name": "ICSI campus placement statistics",
   "publisher": "Institute of Company Secretaries of India",
   "kind": "placement-report",
   "evidence_type": "salary-benchmark",
   "url": "https://www.icsi.edu/placement/",
   "reliability": "medium",
   "status": "not-integrated",
   "notes": "No official placement figure (average or median CTC) found on icsi.edu; the only figures in circulation are aggregator pages, which are rejected.",
   "last_verified": "2026-09-14"
  },
  {
   "id": "ibps-so",
   "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
   "publisher": "IBPS (on behalf of 11 participating public sector banks)",
   "dataset": "Scale of pay for Specialist Officers, Scale I, by post",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification-CRP-SPL-XVI_Final_V1_30.06.2026.pdf",
   "geography": "India",
   "collection_date": "2026-09-15",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-15",
   "limitations": "Basic pay of the scale as published; allowances vary by bank and posting; not a market benchmark.",
   "coverage": "Scale I specialist posts in 11 public sector banks",
   "role": "IT Officer, Agricultural Field Officer, Rajbhasha Adhikari, Law Officer, HR/Personnel Officer, Marketing Officer",
   "industry": "Public sector banking",
   "experience_applicability": "Entry (direct recruitment)",
   "effective_date": "2026-06-30",
   "published": "2026-06-30"
  },
  {
   "id": "lic-careers",
   "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
   "publisher": "Life Insurance Corporation of India",
   "dataset": "Basic pay and scale for AAO (Specialist: CA, CS, Actuarial, Legal, Insurance Specialist) and Assistant Engineer (Civil, Electrical)",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
   "geography": "India",
   "collection_date": "2026-09-15",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-15",
   "limitations": "One employer; basic pay of the scale; total emoluments quoted approximately for an A-class city.",
   "coverage": "Class I officer entry, LIC",
   "role": "AAO (CA), AAO (CS), AAO (Actuarial), AAO (Legal), AE (Civil), AE (Electrical)",
   "industry": "Life insurance (public sector)",
   "experience_applicability": "Entry for AAO; three years post-qualification for AE",
   "effective_date": "2025-08-16",
   "published": "2025-08-16"
  },
  {
   "id": "aiims-jammu",
   "name": "AIIMS Vijaypur, Jammu — Junior Resident (Non-Academic) and Senior Resident / Demonstrator notifications, 2026",
   "publisher": "All India Institute of Medical Sciences, Jammu (Ministry of Health and Family Welfare)",
   "dataset": "Pay level of Junior Resident and Senior Resident posts (7th CPC pay matrix)",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://www.aiimsjammu.edu.in/recruitment/",
   "geography": "India (Jammu; the residency pay levels are the central scheme used across AIIMS)",
   "collection_date": "2026-09-15",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-15",
   "limitations": "Basic pay of the level; NPA and allowances excluded; residency posts are tenure posts under the Central Residency Scheme, not permanent employment.",
   "coverage": "JR (MBBS) and SR (MD/MS/DNB) at one AIIMS",
   "role": "Junior Resident, Senior Resident",
   "industry": "Government healthcare",
   "experience_applicability": "Entry for JR; post-PG for SR",
   "effective_date": "2026-03-30",
   "published": "2026-03-30"
  },
  {
   "id": "cil-careers",
   "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
   "publisher": "Coal India Limited (Maharatna PSU, Ministry of Coal)",
   "dataset": "E-1 grade scale and initial basic for Management Trainees by discipline",
   "kind": "official-notification",
   "evidence_type": "employer-data",
   "url": "https://www.coalindia.in/career-cil/jobs-coal-india/recruitment-of-management-trainee-through-computer-based-test-cbt-26/",
   "geography": "India",
   "collection_date": "2026-09-15",
   "confidence": 0.75,
   "license": "Public recruitment notification; figures quoted with attribution.",
   "reliability": "high",
   "last_verified": "2026-09-15",
   "limitations": "One employer; basic pay only (IDA DA, HRA, perquisites and PRP excluded).",
   "coverage": "Nine non-mining disciplines",
   "role": "Management Trainee — Civil, Electrical, Mechanical, System, E&T, Geology, Industrial Engineering, Rajbhasha, Company Secretary",
   "industry": "Mining (public sector)",
   "experience_applicability": "Entry (direct recruitment)",
   "effective_date": "2026-05-05",
   "published": "2026-05-05"
  }
 ],
 "evidence_types": {
  "government-earnings": "Household-survey earnings of all salaried workers, published by the Government of India. A general wage level, not a professional benchmark.",
  "salary-benchmark": "Placement or compensation outcomes for a defined professional group, announced by the body that ran the process.",
  "job-market-signal": "Growth rates, increments, attrition and demand indicators. They say how fast pay is moving, not what it is.",
  "user-reported": "Self-reported or crowd-sourced figures. Not integrated.",
  "user-outcome": "Anonymised outcomes recorded by this site with consent. Not collected yet; see events/schema.json.",
  "demo": "Illustrative figures for exercising the engine. Not evidence.",
  "job-posting-signal": "Job-posting activity — how many roles are being advertised and how that is changing. Demand, not pay.",
  "employer-data": "Figures published by an employer or institution about its own hiring or placements (an institution's audited placement report, say)."
 },
 "roles": [
  {
   "id": "accountant",
   "name": "Accountant",
   "aliases": [
    "accounts executive",
    "senior accountant",
    "accounts manager",
    "bookkeeper",
    "accounts officer",
    "junior accountant"
   ],
   "tier": 1,
   "function": "finance-accounting",
   "family": "accounting"
  },
  {
   "id": "accounts-payable-receivable",
   "name": "Accounts Payable / Receivable Specialist",
   "aliases": [
    "ap executive",
    "ar executive",
    "accounts payable",
    "accounts receivable",
    "p2p analyst",
    "o2c analyst"
   ],
   "tier": 2,
   "function": "finance-accounting",
   "family": "accounting"
  },
  {
   "id": "financial-controller",
   "name": "Financial Controller",
   "aliases": [
    "finance controller",
    "controller",
    "group controller"
   ],
   "tier": 2,
   "function": "finance-accounting",
   "family": "accounting"
  },
  {
   "id": "chartered-accountant",
   "name": "Chartered Accountant",
   "aliases": [
    "ca",
    "chartered accountant",
    "c.a.",
    "ca in industry"
   ],
   "tier": 1,
   "next": [
    "finance-manager",
    "financial-controller"
   ],
   "function": "finance-accounting",
   "family": "accounting"
  },
  {
   "id": "ca-newly-qualified",
   "name": "Chartered Accountant (newly qualified)",
   "aliases": [
    "fresher ca",
    "ca fresher",
    "newly qualified ca",
    "chartered accountant fresher",
    "qualified ca"
   ],
   "tier": 1,
   "seniority": "entry-level",
   "next": [
    "chartered-accountant",
    "financial-analyst",
    "tax-consultant"
   ],
   "function": "finance-accounting",
   "family": "accounting"
  },
  {
   "id": "cost-accountant",
   "name": "Cost & Management Accountant",
   "aliases": [
    "cma",
    "cost accountant",
    "icwa",
    "management accountant"
   ],
   "tier": 2,
   "function": "finance-accounting",
   "family": "accounting"
  },
  {
   "id": "company-secretary",
   "name": "Company Secretary",
   "aliases": [
    "cs",
    "company secretary",
    "compliance officer cs"
   ],
   "tier": 2,
   "function": "finance-accounting",
   "family": "accounting"
  },
  {
   "id": "financial-analyst",
   "name": "Financial Analyst",
   "aliases": [
    "financial analyst",
    "fp&a analyst",
    "financial planning & analysis analyst",
    "financial planning and analysis analyst",
    "fp&a associate",
    "finance analyst",
    "business finance analyst"
   ],
   "tier": 1,
   "next": [
    "finance-manager"
   ],
   "function": "finance-accounting",
   "family": "fpa"
  },
  {
   "id": "finance-manager",
   "name": "Finance Manager",
   "aliases": [
    "manager finance",
    "finance manager",
    "senior finance manager",
    "fp&a manager",
    "business finance manager",
    "finance lead"
   ],
   "tier": 1,
   "next": [
    "financial-controller",
    "finance-director"
   ],
   "function": "finance-accounting",
   "family": "fpa"
  },
  {
   "id": "finance-director",
   "name": "Finance Director / CFO",
   "aliases": [
    "cfo",
    "chief financial officer",
    "finance director",
    "vp finance",
    "head of finance"
   ],
   "tier": 2,
   "function": "finance-accounting",
   "family": "fpa"
  },
  {
   "id": "finance-business-partner",
   "name": "Finance Business Partner",
   "aliases": [
    "finance business partner",
    "fbp"
   ],
   "tier": 3,
   "function": "finance-accounting",
   "family": "fpa"
  },
  {
   "id": "tax-consultant",
   "name": "Tax Consultant",
   "aliases": [
    "tax consultant",
    "tax associate",
    "direct tax associate",
    "gst consultant",
    "indirect tax associate",
    "tax analyst",
    "tax executive"
   ],
   "tier": 1,
   "next": [
    "tax-manager"
   ],
   "function": "finance-accounting",
   "family": "tax"
  },
  {
   "id": "tax-manager",
   "name": "Tax Manager",
   "aliases": [
    "tax manager",
    "direct tax manager",
    "indirect tax manager",
    "gst manager",
    "head of tax"
   ],
   "tier": 2,
   "function": "finance-accounting",
   "family": "tax"
  },
  {
   "id": "transfer-pricing-specialist",
   "name": "Transfer Pricing Specialist",
   "aliases": [
    "transfer pricing",
    "tp analyst",
    "tp manager"
   ],
   "tier": 3,
   "function": "finance-accounting",
   "family": "tax"
  },
  {
   "id": "audit-associate",
   "name": "Audit Associate",
   "aliases": [
    "audit associate",
    "audit senior",
    "statutory audit associate",
    "assurance associate",
    "auditor",
    "article assistant"
   ],
   "tier": 1,
   "next": [
    "audit-manager"
   ],
   "function": "finance-accounting",
   "family": "audit"
  },
  {
   "id": "audit-manager",
   "name": "Audit Manager",
   "aliases": [
    "audit manager",
    "assurance manager",
    "audit partner",
    "senior audit manager"
   ],
   "tier": 2,
   "function": "finance-accounting",
   "family": "audit"
  },
  {
   "id": "internal-auditor",
   "name": "Internal Auditor",
   "aliases": [
    "internal audit",
    "internal auditor",
    "ia manager",
    "sox analyst",
    "ifc analyst"
   ],
   "tier": 2,
   "function": "finance-accounting",
   "family": "audit"
  },
  {
   "id": "forensic-accountant",
   "name": "Forensic Accountant",
   "aliases": [
    "forensic",
    "fraud investigator",
    "forensic auditor"
   ],
   "tier": 3,
   "function": "finance-accounting",
   "family": "audit"
  },
  {
   "id": "treasury-analyst",
   "name": "Treasury Analyst",
   "aliases": [
    "treasury",
    "treasury manager",
    "cash manager",
    "forex dealer corporate"
   ],
   "tier": 3,
   "function": "finance-accounting",
   "family": "treasury"
  },
  {
   "id": "corporate-finance-analyst",
   "name": "Corporate Finance / M&A Analyst",
   "aliases": [
    "m&a analyst",
    "corporate finance",
    "corporate development",
    "deals analyst",
    "transaction advisory"
   ],
   "tier": 2,
   "function": "finance-accounting",
   "family": "treasury"
  },
  {
   "id": "payroll-specialist",
   "name": "Payroll Specialist",
   "aliases": [
    "payroll",
    "payroll executive",
    "payroll manager"
   ],
   "tier": 3,
   "function": "finance-accounting",
   "family": "payroll"
  },
  {
   "id": "regular-salaried-all",
   "name": "Any regular salaried employee (all occupations, benchmark)",
   "aliases": [
    "salaried employee",
    "any salaried",
    "regular salaried",
    "average salary india",
    "benchmark"
   ],
   "tier": 1,
   "benchmark": true,
   "function": "benchmarks",
   "family": "benchmark"
  },
  {
   "id": "mba-graduate-iim-a",
   "name": "MBA graduate, IIM Ahmedabad PGP (placement benchmark)",
   "aliases": [
    "iim ahmedabad mba",
    "iim a placement",
    "mba graduate iim",
    "pgp iim ahmedabad",
    "top iim mba"
   ],
   "tier": 2,
   "benchmark": true,
   "seniority": "entry-level",
   "function": "benchmarks",
   "family": "benchmark"
  },
  {
   "id": "software-engineer",
   "name": "Software Engineer",
   "aliases": [
    "software developer",
    "sde",
    "software development engineer",
    "programmer",
    "developer",
    "sde 1",
    "sde 2",
    "member technical staff"
   ],
   "tier": 1,
   "function": "technology",
   "family": "software-engineering"
  },
  {
   "id": "backend-engineer",
   "name": "Backend Engineer",
   "aliases": [
    "backend developer",
    "java developer",
    "python developer",
    "node developer",
    "golang developer",
    ".net developer",
    "api developer"
   ],
   "tier": 1,
   "function": "technology",
   "family": "software-engineering"
  },
  {
   "id": "frontend-engineer",
   "name": "Frontend Engineer",
   "aliases": [
    "frontend developer",
    "react developer",
    "angular developer",
    "ui developer",
    "web developer",
    "javascript developer"
   ],
   "tier": 1,
   "function": "technology",
   "family": "software-engineering"
  },
  {
   "id": "full-stack-engineer",
   "name": "Full-stack Engineer",
   "aliases": [
    "full stack developer",
    "fullstack",
    "mern developer",
    "mean stack"
   ],
   "tier": 1,
   "function": "technology",
   "family": "software-engineering"
  },
  {
   "id": "mobile-engineer",
   "name": "Mobile Engineer",
   "aliases": [
    "android developer",
    "ios developer",
    "flutter developer",
    "react native developer",
    "mobile app developer"
   ],
   "tier": 2,
   "function": "technology",
   "family": "software-engineering"
  },
  {
   "id": "engineering-manager",
   "name": "Engineering Manager",
   "aliases": [
    "engineering manager",
    "em",
    "development manager",
    "tech lead manager"
   ],
   "tier": 2,
   "function": "technology",
   "family": "software-engineering"
  },
  {
   "id": "software-architect",
   "name": "Software Architect",
   "aliases": [
    "solution architect",
    "technical architect",
    "enterprise architect",
    "principal engineer",
    "staff engineer"
   ],
   "tier": 2,
   "function": "technology",
   "family": "software-engineering"
  },
  {
   "id": "sap-consultant",
   "name": "SAP / ERP Consultant",
   "aliases": [
    "sap consultant",
    "sap fico consultant",
    "sap abap",
    "oracle consultant",
    "erp consultant",
    "salesforce developer",
    "workday consultant"
   ],
   "tier": 2,
   "function": "technology",
   "family": "software-engineering"
  },
  {
   "id": "embedded-engineer",
   "name": "Embedded Software Engineer",
   "aliases": [
    "embedded developer",
    "firmware engineer",
    "embedded c"
   ],
   "tier": 3,
   "function": "technology",
   "family": "software-engineering"
  },
  {
   "id": "qa-engineer",
   "name": "QA / Test Engineer",
   "aliases": [
    "test engineer",
    "qa engineer",
    "software tester",
    "automation tester",
    "sdet",
    "quality analyst software",
    "manual tester"
   ],
   "tier": 1,
   "function": "technology",
   "family": "qa-testing"
  },
  {
   "id": "devops-engineer",
   "name": "DevOps Engineer",
   "aliases": [
    "devops",
    "site reliability engineer",
    "sre",
    "platform engineer",
    "release engineer",
    "build engineer"
   ],
   "tier": 1,
   "function": "technology",
   "family": "devops-cloud"
  },
  {
   "id": "cloud-engineer",
   "name": "Cloud Engineer",
   "aliases": [
    "cloud engineer",
    "aws engineer",
    "azure engineer",
    "gcp engineer",
    "cloud architect"
   ],
   "tier": 1,
   "function": "technology",
   "family": "devops-cloud"
  },
  {
   "id": "system-administrator",
   "name": "System / Network Administrator",
   "aliases": [
    "sysadmin",
    "system administrator",
    "network administrator",
    "network engineer",
    "linux administrator",
    "it administrator"
   ],
   "tier": 2,
   "function": "technology",
   "family": "devops-cloud"
  },
  {
   "id": "database-administrator",
   "name": "Database Administrator",
   "aliases": [
    "dba",
    "database administrator",
    "sql dba",
    "oracle dba"
   ],
   "tier": 3,
   "function": "technology",
   "family": "devops-cloud"
  },
  {
   "id": "it-support-engineer",
   "name": "IT Support / Helpdesk Engineer",
   "aliases": [
    "desktop support",
    "helpdesk",
    "service desk",
    "technical support engineer",
    "l1 support",
    "l2 support",
    "it support"
   ],
   "tier": 2,
   "function": "technology",
   "family": "it-support"
  },
  {
   "id": "it-project-manager",
   "name": "IT Project / Delivery Manager",
   "aliases": [
    "project manager it",
    "delivery manager",
    "scrum master",
    "agile coach",
    "program manager it",
    "technical program manager"
   ],
   "tier": 2,
   "function": "technology",
   "family": "it-support"
  },
  {
   "id": "business-analyst-it",
   "name": "Business Analyst (IT)",
   "aliases": [
    "business analyst",
    "ba",
    "systems analyst",
    "functional consultant",
    "requirements analyst"
   ],
   "tier": 1,
   "function": "technology",
   "family": "it-support"
  },
  {
   "id": "data-analyst",
   "name": "Data Analyst",
   "aliases": [
    "data analyst",
    "business intelligence analyst",
    "bi analyst",
    "reporting analyst",
    "mis analyst",
    "analytics analyst",
    "power bi developer",
    "tableau developer"
   ],
   "tier": 1,
   "function": "data-analytics",
   "family": "analytics"
  },
  {
   "id": "data-engineer",
   "name": "Data Engineer",
   "aliases": [
    "data engineer",
    "etl developer",
    "big data engineer",
    "spark developer",
    "data platform engineer"
   ],
   "tier": 1,
   "function": "data-analytics",
   "family": "analytics"
  },
  {
   "id": "data-scientist",
   "name": "Data Scientist",
   "aliases": [
    "data scientist",
    "applied scientist",
    "decision scientist",
    "quantitative analyst data"
   ],
   "tier": 1,
   "function": "data-analytics",
   "family": "analytics"
  },
  {
   "id": "analytics-manager",
   "name": "Analytics Manager",
   "aliases": [
    "analytics manager",
    "head of analytics",
    "data science manager",
    "bi manager"
   ],
   "tier": 2,
   "function": "data-analytics",
   "family": "analytics"
  },
  {
   "id": "statistician",
   "name": "Statistician / Biostatistician",
   "aliases": [
    "statistician",
    "biostatistician",
    "sas programmer"
   ],
   "tier": 3,
   "function": "data-analytics",
   "family": "analytics"
  },
  {
   "id": "ml-engineer",
   "name": "Machine Learning Engineer",
   "aliases": [
    "ml engineer",
    "machine learning engineer",
    "mlops engineer",
    "deep learning engineer",
    "ai engineer"
   ],
   "tier": 1,
   "function": "ai-ml",
   "family": "machine-learning"
  },
  {
   "id": "ai-researcher",
   "name": "AI / ML Research Scientist",
   "aliases": [
    "research scientist ai",
    "ai researcher",
    "nlp scientist",
    "computer vision scientist"
   ],
   "tier": 2,
   "function": "ai-ml",
   "family": "machine-learning"
  },
  {
   "id": "genai-engineer",
   "name": "Generative AI / LLM Engineer",
   "aliases": [
    "genai engineer",
    "llm engineer",
    "prompt engineer",
    "ai application developer",
    "agent developer"
   ],
   "tier": 2,
   "function": "ai-ml",
   "family": "machine-learning"
  },
  {
   "id": "ai-product-manager",
   "name": "AI Product Manager",
   "aliases": [
    "ai product manager",
    "ml product manager"
   ],
   "tier": 3,
   "function": "ai-ml",
   "family": "machine-learning"
  },
  {
   "id": "product-manager",
   "name": "Product Manager",
   "aliases": [
    "product manager",
    "pm",
    "associate product manager",
    "apm",
    "senior product manager",
    "group product manager",
    "product owner"
   ],
   "tier": 1,
   "function": "product",
   "family": "product-management"
  },
  {
   "id": "product-director",
   "name": "Director / Head of Product",
   "aliases": [
    "head of product",
    "director product",
    "vp product",
    "cpo",
    "chief product officer"
   ],
   "tier": 2,
   "function": "product",
   "family": "product-management"
  },
  {
   "id": "product-analyst",
   "name": "Product Analyst",
   "aliases": [
    "product analyst",
    "growth analyst",
    "product operations"
   ],
   "tier": 2,
   "function": "product",
   "family": "product-management"
  },
  {
   "id": "mechanical-engineer",
   "name": "Mechanical Engineer",
   "aliases": [
    "mechanical engineer",
    "design engineer mechanical",
    "cad engineer",
    "hvac engineer"
   ],
   "tier": 1,
   "function": "engineering-core",
   "family": "mechanical"
  },
  {
   "id": "automotive-engineer",
   "name": "Automotive Engineer",
   "aliases": [
    "automobile engineer",
    "automotive engineer",
    "vehicle engineer",
    "powertrain engineer"
   ],
   "tier": 2,
   "function": "engineering-core",
   "family": "mechanical"
  },
  {
   "id": "electrical-engineer",
   "name": "Electrical Engineer",
   "aliases": [
    "electrical engineer",
    "power engineer",
    "electrical design engineer"
   ],
   "tier": 1,
   "function": "engineering-core",
   "family": "electrical"
  },
  {
   "id": "electronics-engineer",
   "name": "Electronics / VLSI Engineer",
   "aliases": [
    "electronics engineer",
    "vlsi engineer",
    "hardware engineer",
    "pcb design engineer",
    "asic engineer",
    "chip design"
   ],
   "tier": 2,
   "function": "engineering-core",
   "family": "electrical"
  },
  {
   "id": "instrumentation-engineer",
   "name": "Instrumentation & Control Engineer",
   "aliases": [
    "instrumentation engineer",
    "control engineer",
    "automation engineer plc"
   ],
   "tier": 3,
   "function": "engineering-core",
   "family": "electrical"
  },
  {
   "id": "civil-engineer",
   "name": "Civil Engineer",
   "aliases": [
    "civil engineer",
    "structural engineer",
    "construction engineer"
   ],
   "tier": 1,
   "function": "engineering-core",
   "family": "civil"
  },
  {
   "id": "chemical-engineer",
   "name": "Chemical / Process Engineer",
   "aliases": [
    "chemical engineer",
    "process engineer",
    "petroleum engineer"
   ],
   "tier": 2,
   "function": "engineering-core",
   "family": "chemical"
  },
  {
   "id": "marine-engineer",
   "name": "Marine Engineer",
   "aliases": [
    "marine engineer",
    "ship engineer",
    "naval architect"
   ],
   "tier": 3,
   "function": "engineering-core",
   "family": "marine-aero"
  },
  {
   "id": "aerospace-engineer",
   "name": "Aerospace Engineer",
   "aliases": [
    "aerospace engineer",
    "aeronautical engineer",
    "avionics engineer"
   ],
   "tier": 3,
   "function": "engineering-core",
   "family": "marine-aero"
  },
  {
   "id": "sales-executive",
   "name": "Sales Executive",
   "aliases": [
    "sales executive",
    "sales officer",
    "field sales",
    "territory sales",
    "sales representative",
    "medical representative"
   ],
   "tier": 1,
   "function": "sales",
   "family": "field-sales"
  },
  {
   "id": "sales-manager",
   "name": "Sales Manager",
   "aliases": [
    "sales manager",
    "area sales manager",
    "asm",
    "regional sales manager",
    "rsm",
    "zonal sales manager",
    "branch sales manager"
   ],
   "tier": 1,
   "function": "sales",
   "family": "field-sales"
  },
  {
   "id": "sales-head",
   "name": "Head / VP of Sales",
   "aliases": [
    "head of sales",
    "vp sales",
    "national sales manager",
    "chief revenue officer",
    "cro"
   ],
   "tier": 2,
   "function": "sales",
   "family": "field-sales"
  },
  {
   "id": "channel-sales-manager",
   "name": "Channel / Distribution Manager",
   "aliases": [
    "channel sales",
    "distributor manager",
    "dealer manager"
   ],
   "tier": 3,
   "function": "sales",
   "family": "field-sales"
  },
  {
   "id": "inside-sales-executive",
   "name": "Inside Sales Executive",
   "aliases": [
    "inside sales",
    "telesales",
    "sdr",
    "sales development representative",
    "bdr",
    "lead generation executive"
   ],
   "tier": 1,
   "function": "sales",
   "family": "inside-sales"
  },
  {
   "id": "presales-consultant",
   "name": "Pre-sales / Solutions Consultant",
   "aliases": [
    "presales",
    "solution consultant",
    "sales engineer",
    "bid manager"
   ],
   "tier": 2,
   "function": "sales",
   "family": "inside-sales"
  },
  {
   "id": "account-executive",
   "name": "Account Executive (B2B)",
   "aliases": [
    "account executive",
    "enterprise sales",
    "saas sales",
    "key account manager",
    "kam"
   ],
   "tier": 1,
   "function": "sales",
   "family": "inside-sales"
  },
  {
   "id": "business-development-executive",
   "name": "Business Development Executive",
   "aliases": [
    "bde",
    "business development executive",
    "bd executive",
    "business development associate"
   ],
   "tier": 1,
   "function": "business-development",
   "family": "bd"
  },
  {
   "id": "business-development-manager",
   "name": "Business Development Manager",
   "aliases": [
    "bdm",
    "business development manager",
    "partnerships manager",
    "alliances manager",
    "strategic partnerships"
   ],
   "tier": 1,
   "function": "business-development",
   "family": "bd"
  },
  {
   "id": "marketing-executive",
   "name": "Marketing Executive",
   "aliases": [
    "marketing executive",
    "marketing associate",
    "marketing coordinator"
   ],
   "tier": 1,
   "function": "marketing",
   "family": "brand-marketing"
  },
  {
   "id": "marketing-manager",
   "name": "Marketing Manager",
   "aliases": [
    "marketing manager",
    "brand manager",
    "product marketing manager",
    "assistant brand manager",
    "category manager marketing"
   ],
   "tier": 1,
   "function": "marketing",
   "family": "brand-marketing"
  },
  {
   "id": "marketing-head",
   "name": "Head / VP of Marketing",
   "aliases": [
    "cmo",
    "head of marketing",
    "vp marketing",
    "marketing director"
   ],
   "tier": 2,
   "function": "marketing",
   "family": "brand-marketing"
  },
  {
   "id": "digital-marketing-specialist",
   "name": "Digital Marketing Specialist",
   "aliases": [
    "digital marketing",
    "digital marketer",
    "digital marketing executive",
    "digital marketing manager"
   ],
   "tier": 1,
   "function": "marketing",
   "family": "digital-marketing"
  },
  {
   "id": "performance-marketing-manager",
   "name": "Performance Marketing Manager",
   "aliases": [
    "performance marketing",
    "paid media",
    "ppc specialist",
    "growth marketing",
    "media buyer"
   ],
   "tier": 2,
   "function": "marketing",
   "family": "digital-marketing"
  },
  {
   "id": "seo-specialist",
   "name": "SEO Specialist",
   "aliases": [
    "seo",
    "seo executive",
    "seo manager",
    "search engine optimisation"
   ],
   "tier": 2,
   "function": "marketing",
   "family": "digital-marketing"
  },
  {
   "id": "social-media-manager",
   "name": "Social Media Manager",
   "aliases": [
    "social media",
    "community manager",
    "influencer marketing manager"
   ],
   "tier": 2,
   "function": "marketing",
   "family": "digital-marketing"
  },
  {
   "id": "marketing-analyst",
   "name": "Marketing Analyst",
   "aliases": [
    "marketing analyst",
    "crm analyst",
    "marketing automation specialist"
   ],
   "tier": 3,
   "function": "marketing",
   "family": "digital-marketing"
  },
  {
   "id": "pr-manager",
   "name": "PR / Corporate Communications Manager",
   "aliases": [
    "public relations",
    "pr manager",
    "corporate communications",
    "communications manager"
   ],
   "tier": 3,
   "function": "marketing",
   "family": "communications"
  },
  {
   "id": "hr-executive",
   "name": "HR Executive / Generalist",
   "aliases": [
    "hr executive",
    "hr generalist",
    "hr associate",
    "hr officer",
    "people operations"
   ],
   "tier": 1,
   "function": "hr",
   "family": "hr-generalist"
  },
  {
   "id": "hr-manager",
   "name": "HR Manager",
   "aliases": [
    "hr manager",
    "hrbp",
    "hr business partner",
    "people manager",
    "senior hr manager"
   ],
   "tier": 1,
   "function": "hr",
   "family": "hr-generalist"
  },
  {
   "id": "hr-head",
   "name": "Head / VP of HR",
   "aliases": [
    "chro",
    "head of hr",
    "vp hr",
    "hr director",
    "chief people officer"
   ],
   "tier": 2,
   "function": "hr",
   "family": "hr-generalist"
  },
  {
   "id": "recruiter",
   "name": "Recruiter / Talent Acquisition",
   "aliases": [
    "recruiter",
    "talent acquisition",
    "ta specialist",
    "technical recruiter",
    "sourcer",
    "recruitment consultant"
   ],
   "tier": 1,
   "function": "hr",
   "family": "talent-acquisition"
  },
  {
   "id": "ta-manager",
   "name": "Talent Acquisition Manager",
   "aliases": [
    "ta manager",
    "recruitment manager",
    "head of talent acquisition"
   ],
   "tier": 2,
   "function": "hr",
   "family": "talent-acquisition"
  },
  {
   "id": "learning-development",
   "name": "Learning & Development Specialist",
   "aliases": [
    "l&d",
    "learning and development",
    "training manager",
    "corporate trainer"
   ],
   "tier": 3,
   "function": "hr",
   "family": "ld-comp"
  },
  {
   "id": "compensation-benefits",
   "name": "Compensation & Benefits Specialist",
   "aliases": [
    "c&b",
    "compensation and benefits",
    "total rewards",
    "hr analyst"
   ],
   "tier": 3,
   "function": "hr",
   "family": "ld-comp"
  },
  {
   "id": "hr-operations",
   "name": "HR Operations / HRIS",
   "aliases": [
    "hr operations",
    "hris",
    "hr shared services"
   ],
   "tier": 3,
   "function": "hr",
   "family": "ld-comp"
  },
  {
   "id": "operations-executive",
   "name": "Operations Executive",
   "aliases": [
    "operations executive",
    "ops executive",
    "operations associate",
    "back office executive"
   ],
   "tier": 1,
   "function": "operations",
   "family": "business-operations"
  },
  {
   "id": "operations-manager",
   "name": "Operations Manager",
   "aliases": [
    "operations manager",
    "ops manager",
    "general manager operations",
    "head of operations",
    "coo"
   ],
   "tier": 1,
   "function": "operations",
   "family": "business-operations"
  },
  {
   "id": "process-excellence",
   "name": "Process Excellence / Six Sigma",
   "aliases": [
    "process excellence",
    "six sigma",
    "lean manager",
    "continuous improvement",
    "business excellence"
   ],
   "tier": 3,
   "function": "operations",
   "family": "business-operations"
  },
  {
   "id": "project-manager",
   "name": "Project Manager (non-IT)",
   "aliases": [
    "project manager",
    "pmo",
    "project coordinator",
    "program manager"
   ],
   "tier": 1,
   "function": "operations",
   "family": "business-operations"
  },
  {
   "id": "office-administrator",
   "name": "Administration / Office Manager",
   "aliases": [
    "admin executive",
    "office manager",
    "administration manager",
    "facility manager",
    "executive assistant"
   ],
   "tier": 2,
   "function": "operations",
   "family": "business-operations"
  },
  {
   "id": "supply-chain-analyst",
   "name": "Supply Chain Analyst",
   "aliases": [
    "supply chain analyst",
    "demand planner",
    "supply planner",
    "inventory analyst",
    "s&op analyst"
   ],
   "tier": 2,
   "function": "supply-chain",
   "family": "supply-chain"
  },
  {
   "id": "supply-chain-manager",
   "name": "Supply Chain Manager",
   "aliases": [
    "supply chain manager",
    "scm",
    "head of supply chain",
    "planning manager"
   ],
   "tier": 1,
   "function": "supply-chain",
   "family": "supply-chain"
  },
  {
   "id": "logistics-executive",
   "name": "Logistics Executive",
   "aliases": [
    "logistics executive",
    "dispatch executive",
    "shipping executive",
    "freight coordinator",
    "export import executive"
   ],
   "tier": 1,
   "function": "supply-chain",
   "family": "logistics"
  },
  {
   "id": "logistics-manager",
   "name": "Logistics / Warehouse Manager",
   "aliases": [
    "logistics manager",
    "warehouse manager",
    "transport manager",
    "fleet manager",
    "last mile manager",
    "hub manager"
   ],
   "tier": 1,
   "function": "supply-chain",
   "family": "logistics"
  },
  {
   "id": "procurement-executive",
   "name": "Procurement / Purchase Executive",
   "aliases": [
    "purchase executive",
    "procurement executive",
    "buyer",
    "purchase officer",
    "sourcing analyst"
   ],
   "tier": 1,
   "function": "procurement",
   "family": "procurement"
  },
  {
   "id": "procurement-manager",
   "name": "Procurement / Sourcing Manager",
   "aliases": [
    "procurement manager",
    "purchase manager",
    "sourcing manager",
    "category manager procurement",
    "head of procurement",
    "vendor manager"
   ],
   "tier": 1,
   "function": "procurement",
   "family": "procurement"
  },
  {
   "id": "consultant",
   "name": "Consultant",
   "aliases": [
    "consultant",
    "management consultant",
    "business consultant",
    "associate consultant",
    "senior consultant",
    "strategy consultant"
   ],
   "tier": 1,
   "function": "consulting",
   "family": "management-consulting"
  },
  {
   "id": "engagement-manager",
   "name": "Engagement Manager / Principal",
   "aliases": [
    "engagement manager",
    "principal consultant",
    "consulting manager",
    "partner consulting"
   ],
   "tier": 2,
   "function": "consulting",
   "family": "management-consulting"
  },
  {
   "id": "strategy-analyst",
   "name": "Strategy / Corporate Strategy Analyst",
   "aliases": [
    "strategy analyst",
    "corporate strategy",
    "chief of staff",
    "founders office",
    "business strategy manager"
   ],
   "tier": 2,
   "function": "consulting",
   "family": "management-consulting"
  },
  {
   "id": "lawyer",
   "name": "Lawyer / Advocate",
   "aliases": [
    "lawyer",
    "advocate",
    "litigation lawyer",
    "associate law firm",
    "junior advocate"
   ],
   "tier": 1,
   "function": "legal",
   "family": "legal"
  },
  {
   "id": "legal-counsel",
   "name": "Legal Counsel (in-house)",
   "aliases": [
    "legal counsel",
    "in-house counsel",
    "legal manager",
    "general counsel",
    "legal head",
    "corporate lawyer"
   ],
   "tier": 1,
   "function": "legal",
   "family": "legal"
  },
  {
   "id": "paralegal",
   "name": "Paralegal / Legal Executive",
   "aliases": [
    "paralegal",
    "legal executive",
    "legal associate",
    "contract manager"
   ],
   "tier": 3,
   "function": "legal",
   "family": "legal"
  },
  {
   "id": "risk-analyst",
   "name": "Risk Analyst",
   "aliases": [
    "risk analyst",
    "credit risk analyst",
    "market risk analyst",
    "operational risk",
    "model risk analyst"
   ],
   "tier": 1,
   "function": "risk-compliance",
   "family": "risk"
  },
  {
   "id": "risk-manager",
   "name": "Risk Manager",
   "aliases": [
    "risk manager",
    "chief risk officer",
    "cro risk",
    "head of risk",
    "credit risk manager"
   ],
   "tier": 2,
   "function": "risk-compliance",
   "family": "risk"
  },
  {
   "id": "compliance-officer",
   "name": "Compliance Officer",
   "aliases": [
    "compliance officer",
    "compliance manager",
    "regulatory compliance",
    "aml analyst",
    "kyc analyst",
    "compliance analyst"
   ],
   "tier": 1,
   "function": "risk-compliance",
   "family": "compliance"
  },
  {
   "id": "security-analyst",
   "name": "Security Analyst (SOC)",
   "aliases": [
    "security analyst",
    "soc analyst",
    "information security analyst",
    "cyber security analyst",
    "threat analyst"
   ],
   "tier": 1,
   "function": "cybersecurity",
   "family": "security"
  },
  {
   "id": "security-engineer",
   "name": "Security Engineer",
   "aliases": [
    "security engineer",
    "application security engineer",
    "cloud security engineer",
    "devsecops",
    "penetration tester",
    "ethical hacker"
   ],
   "tier": 1,
   "function": "cybersecurity",
   "family": "security"
  },
  {
   "id": "security-architect",
   "name": "Security Architect / CISO",
   "aliases": [
    "ciso",
    "security architect",
    "head of information security",
    "grc manager"
   ],
   "tier": 2,
   "function": "cybersecurity",
   "family": "security"
  },
  {
   "id": "bank-officer",
   "name": "Bank Officer / Relationship Manager",
   "aliases": [
    "bank po",
    "probationary officer",
    "relationship manager",
    "branch manager",
    "banking officer",
    "personal banker",
    "assistant manager bank"
   ],
   "tier": 1,
   "function": "banking",
   "family": "retail-banking"
  },
  {
   "id": "credit-analyst",
   "name": "Credit Analyst / Underwriter",
   "aliases": [
    "credit analyst",
    "credit manager",
    "underwriter",
    "loan officer",
    "credit officer"
   ],
   "tier": 1,
   "function": "banking",
   "family": "retail-banking"
  },
  {
   "id": "wealth-manager",
   "name": "Wealth Manager / Private Banker",
   "aliases": [
    "wealth manager",
    "private banker",
    "investment counsellor",
    "relationship manager wealth"
   ],
   "tier": 2,
   "function": "banking",
   "family": "retail-banking"
  },
  {
   "id": "investment-banker",
   "name": "Investment Banking Analyst / Associate",
   "aliases": [
    "investment banker",
    "ib analyst",
    "ib associate",
    "investment banking",
    "m&a banker",
    "ecm",
    "dcm"
   ],
   "tier": 2,
   "function": "banking",
   "family": "corporate-banking"
  },
  {
   "id": "corporate-banker",
   "name": "Corporate / Commercial Banker",
   "aliases": [
    "corporate banking",
    "commercial banking",
    "trade finance",
    "transaction banking"
   ],
   "tier": 2,
   "function": "banking",
   "family": "corporate-banking"
  },
  {
   "id": "banking-operations",
   "name": "Banking Operations Analyst",
   "aliases": [
    "banking operations",
    "bank operations",
    "settlements",
    "reconciliation analyst",
    "payments operations"
   ],
   "tier": 2,
   "function": "banking",
   "family": "fintech-ops"
  },
  {
   "id": "fintech-product-ops",
   "name": "Fintech Product / Operations",
   "aliases": [
    "fintech",
    "payments product",
    "lending product",
    "fintech operations"
   ],
   "tier": 2,
   "function": "banking",
   "family": "fintech-ops"
  },
  {
   "id": "insurance-sales-manager",
   "name": "Insurance Sales / Agency Manager",
   "aliases": [
    "insurance sales",
    "agency manager",
    "insurance advisor",
    "bancassurance",
    "insurance agent"
   ],
   "tier": 1,
   "function": "insurance",
   "family": "insurance"
  },
  {
   "id": "underwriter-insurance",
   "name": "Insurance Underwriter",
   "aliases": [
    "insurance underwriter",
    "underwriting manager",
    "health underwriter"
   ],
   "tier": 2,
   "function": "insurance",
   "family": "insurance"
  },
  {
   "id": "claims-manager",
   "name": "Claims Manager / Adjuster",
   "aliases": [
    "claims",
    "claims manager",
    "claims adjuster",
    "claims executive",
    "surveyor loss assessor"
   ],
   "tier": 2,
   "function": "insurance",
   "family": "insurance"
  },
  {
   "id": "actuary",
   "name": "Actuary / Actuarial Analyst",
   "aliases": [
    "actuary",
    "actuarial analyst",
    "actuarial associate",
    "fellow actuary"
   ],
   "tier": 2,
   "function": "insurance",
   "family": "insurance"
  },
  {
   "id": "equity-research-analyst",
   "name": "Equity Research Analyst",
   "aliases": [
    "equity research",
    "research analyst",
    "sell side analyst",
    "buy side analyst",
    "financial research analyst"
   ],
   "tier": 1,
   "function": "investment-markets",
   "family": "investment"
  },
  {
   "id": "portfolio-manager",
   "name": "Fund / Portfolio Manager",
   "aliases": [
    "fund manager",
    "portfolio manager",
    "asset manager",
    "pms manager"
   ],
   "tier": 2,
   "function": "investment-markets",
   "family": "investment"
  },
  {
   "id": "trader",
   "name": "Trader / Dealer",
   "aliases": [
    "trader",
    "dealer",
    "equity dealer",
    "derivatives trader",
    "proprietary trader",
    "quant trader"
   ],
   "tier": 2,
   "function": "investment-markets",
   "family": "investment"
  },
  {
   "id": "quant-analyst",
   "name": "Quantitative Analyst",
   "aliases": [
    "quant",
    "quantitative analyst",
    "quant developer",
    "quantitative researcher"
   ],
   "tier": 2,
   "function": "investment-markets",
   "family": "investment"
  },
  {
   "id": "financial-advisor",
   "name": "Financial Advisor / Planner",
   "aliases": [
    "financial advisor",
    "financial planner",
    "mutual fund distributor",
    "wealth advisor",
    "cfp"
   ],
   "tier": 2,
   "function": "investment-markets",
   "family": "investment"
  },
  {
   "id": "private-equity-vc",
   "name": "Private Equity / VC Associate",
   "aliases": [
    "private equity",
    "pe associate",
    "vc analyst",
    "venture capital",
    "investment associate"
   ],
   "tier": 3,
   "function": "investment-markets",
   "family": "investment"
  },
  {
   "id": "customer-success-manager",
   "name": "Customer Success Manager",
   "aliases": [
    "customer success",
    "csm",
    "client success",
    "account manager saas",
    "onboarding specialist"
   ],
   "tier": 1,
   "function": "customer-success",
   "family": "customer-success"
  },
  {
   "id": "implementation-consultant",
   "name": "Implementation / Onboarding Consultant",
   "aliases": [
    "implementation consultant",
    "implementation specialist",
    "solutions engineer post-sales"
   ],
   "tier": 2,
   "function": "customer-success",
   "family": "customer-success"
  },
  {
   "id": "customer-support-executive",
   "name": "Customer Support Executive",
   "aliases": [
    "customer support",
    "customer service executive",
    "customer care",
    "call centre executive",
    "bpo executive",
    "process associate",
    "voice process",
    "chat support",
    "cse"
   ],
   "tier": 1,
   "function": "customer-support",
   "family": "support"
  },
  {
   "id": "team-leader-bpo",
   "name": "Team Leader / Operations (BPO)",
   "aliases": [
    "team leader bpo",
    "team lead operations",
    "assistant manager operations bpo",
    "quality analyst bpo"
   ],
   "tier": 1,
   "function": "customer-support",
   "family": "support"
  },
  {
   "id": "technical-support-specialist",
   "name": "Technical Support Specialist",
   "aliases": [
    "technical support",
    "product support",
    "application support"
   ],
   "tier": 2,
   "function": "customer-support",
   "family": "support"
  },
  {
   "id": "ux-designer",
   "name": "UX / Product Designer",
   "aliases": [
    "ux designer",
    "ui/ux designer",
    "product designer",
    "ui designer",
    "interaction designer",
    "ux researcher"
   ],
   "tier": 1,
   "function": "design",
   "family": "product-design"
  },
  {
   "id": "design-lead",
   "name": "Design Lead / Head of Design",
   "aliases": [
    "design lead",
    "head of design",
    "design manager",
    "design director"
   ],
   "tier": 3,
   "function": "design",
   "family": "product-design"
  },
  {
   "id": "graphic-designer",
   "name": "Graphic Designer",
   "aliases": [
    "graphic designer",
    "visual designer",
    "creative designer",
    "motion designer",
    "video editor",
    "illustrator",
    "art director"
   ],
   "tier": 1,
   "function": "design",
   "family": "visual-design"
  },
  {
   "id": "architect",
   "name": "Architect",
   "aliases": [
    "architect",
    "junior architect",
    "senior architect",
    "urban planner",
    "landscape architect"
   ],
   "tier": 1,
   "function": "architecture",
   "family": "architecture"
  },
  {
   "id": "interior-designer",
   "name": "Interior Designer",
   "aliases": [
    "interior designer",
    "interior architect"
   ],
   "tier": 2,
   "function": "architecture",
   "family": "architecture"
  },
  {
   "id": "school-teacher",
   "name": "School Teacher",
   "aliases": [
    "teacher",
    "school teacher",
    "pgt",
    "tgt",
    "prt",
    "primary teacher",
    "faculty school"
   ],
   "tier": 1,
   "function": "education",
   "family": "teaching"
  },
  {
   "id": "professor",
   "name": "Professor / Lecturer",
   "aliases": [
    "professor",
    "assistant professor",
    "associate professor",
    "lecturer",
    "faculty college",
    "academic"
   ],
   "tier": 1,
   "function": "education",
   "family": "teaching"
  },
  {
   "id": "edtech-instructor",
   "name": "EdTech Instructor / Curriculum Designer",
   "aliases": [
    "instructor",
    "curriculum designer",
    "instructional designer",
    "academic counsellor",
    "subject matter expert",
    "trainer edtech"
   ],
   "tier": 2,
   "function": "education",
   "family": "teaching"
  },
  {
   "id": "research-scientist",
   "name": "Research Scientist",
   "aliases": [
    "research scientist",
    "scientist",
    "r&d scientist",
    "research associate",
    "research fellow",
    "postdoc"
   ],
   "tier": 2,
   "function": "research",
   "family": "research"
  },
  {
   "id": "lab-technician",
   "name": "Lab Technician / Research Assistant",
   "aliases": [
    "lab technician",
    "laboratory technician",
    "research assistant",
    "lab analyst"
   ],
   "tier": 2,
   "function": "research",
   "family": "research"
  },
  {
   "id": "policy-researcher",
   "name": "Policy / Economic Researcher",
   "aliases": [
    "economist",
    "policy analyst",
    "policy researcher",
    "research analyst think tank"
   ],
   "tier": 3,
   "function": "research",
   "family": "research"
  },
  {
   "id": "journalist",
   "name": "Journalist / Reporter",
   "aliases": [
    "journalist",
    "reporter",
    "correspondent",
    "news anchor",
    "sub editor",
    "editor news"
   ],
   "tier": 1,
   "function": "media",
   "family": "journalism"
  },
  {
   "id": "producer",
   "name": "Producer / Broadcast Professional",
   "aliases": [
    "producer",
    "video producer",
    "broadcast engineer",
    "programme producer",
    "film editor"
   ],
   "tier": 2,
   "function": "media",
   "family": "journalism"
  },
  {
   "id": "content-writer",
   "name": "Content Writer",
   "aliases": [
    "content writer",
    "copywriter",
    "technical writer",
    "content creator",
    "blog writer",
    "ux writer"
   ],
   "tier": 1,
   "function": "content",
   "family": "content"
  },
  {
   "id": "content-manager",
   "name": "Content / Editorial Manager",
   "aliases": [
    "content manager",
    "content strategist",
    "managing editor",
    "editorial lead",
    "content marketing manager"
   ],
   "tier": 2,
   "function": "content",
   "family": "content"
  },
  {
   "id": "doctor-mbbs",
   "name": "Doctor (MBBS / Medical Officer)",
   "aliases": [
    "doctor",
    "mbbs",
    "medical officer",
    "resident doctor",
    "junior resident",
    "general physician",
    "duty doctor"
   ],
   "tier": 1,
   "function": "healthcare",
   "family": "clinical"
  },
  {
   "id": "specialist-doctor",
   "name": "Specialist Doctor / Consultant",
   "aliases": [
    "consultant doctor",
    "specialist",
    "surgeon",
    "cardiologist",
    "md physician",
    "senior resident"
   ],
   "tier": 1,
   "function": "healthcare",
   "family": "clinical"
  },
  {
   "id": "dentist",
   "name": "Dentist",
   "aliases": [
    "dentist",
    "bds",
    "dental surgeon"
   ],
   "tier": 2,
   "function": "healthcare",
   "family": "clinical"
  },
  {
   "id": "nurse",
   "name": "Nurse",
   "aliases": [
    "nurse",
    "staff nurse",
    "nursing officer",
    "icu nurse",
    "gnm",
    "bsc nursing"
   ],
   "tier": 1,
   "function": "healthcare",
   "family": "clinical"
  },
  {
   "id": "pharmacist",
   "name": "Pharmacist",
   "aliases": [
    "pharmacist",
    "hospital pharmacist",
    "retail pharmacist",
    "b pharm"
   ],
   "tier": 2,
   "function": "healthcare",
   "family": "clinical"
  },
  {
   "id": "physiotherapist",
   "name": "Physiotherapist",
   "aliases": [
    "physiotherapist",
    "physio",
    "bpt"
   ],
   "tier": 2,
   "function": "healthcare",
   "family": "clinical"
  },
  {
   "id": "allied-health",
   "name": "Allied Health / Paramedical",
   "aliases": [
    "lab technologist",
    "radiographer",
    "mlt",
    "dialysis technician",
    "ot technician",
    "paramedic",
    "optometrist"
   ],
   "tier": 2,
   "function": "healthcare",
   "family": "clinical"
  },
  {
   "id": "hospital-administrator",
   "name": "Hospital Administrator",
   "aliases": [
    "hospital administrator",
    "hospital manager",
    "healthcare manager",
    "mha",
    "medical superintendent"
   ],
   "tier": 2,
   "function": "healthcare",
   "family": "healthcare-admin"
  },
  {
   "id": "clinical-research-associate",
   "name": "Clinical Research Associate",
   "aliases": [
    "cra",
    "clinical research associate",
    "clinical trial coordinator",
    "clinical data manager",
    "pharmacovigilance"
   ],
   "tier": 2,
   "function": "pharma",
   "family": "pharma"
  },
  {
   "id": "regulatory-affairs",
   "name": "Regulatory Affairs Specialist",
   "aliases": [
    "regulatory affairs",
    "drug regulatory",
    "ra executive",
    "dossier"
   ],
   "tier": 2,
   "function": "pharma",
   "family": "pharma"
  },
  {
   "id": "pharma-qa",
   "name": "Pharma QA / QC Analyst",
   "aliases": [
    "qc analyst",
    "qa executive pharma",
    "quality control chemist",
    "analytical chemist",
    "microbiologist"
   ],
   "tier": 2,
   "function": "pharma",
   "family": "pharma"
  },
  {
   "id": "medical-writer",
   "name": "Medical Writer / Scientific Communications",
   "aliases": [
    "medical writer",
    "medical affairs",
    "msl",
    "medical science liaison"
   ],
   "tier": 3,
   "function": "pharma",
   "family": "pharma"
  },
  {
   "id": "production-chemist",
   "name": "Production / Formulation Chemist",
   "aliases": [
    "production chemist",
    "formulation scientist",
    "process chemist"
   ],
   "tier": 3,
   "function": "pharma",
   "family": "pharma"
  },
  {
   "id": "production-engineer",
   "name": "Production Engineer",
   "aliases": [
    "production engineer",
    "manufacturing engineer",
    "process engineer manufacturing",
    "shift engineer",
    "industrial engineer"
   ],
   "tier": 1,
   "function": "manufacturing",
   "family": "production"
  },
  {
   "id": "plant-manager",
   "name": "Plant / Production Manager",
   "aliases": [
    "plant manager",
    "production manager",
    "factory manager",
    "plant head",
    "works manager"
   ],
   "tier": 1,
   "function": "manufacturing",
   "family": "production"
  },
  {
   "id": "maintenance-engineer",
   "name": "Maintenance Engineer",
   "aliases": [
    "maintenance engineer",
    "maintenance manager",
    "reliability engineer",
    "utilities engineer"
   ],
   "tier": 2,
   "function": "manufacturing",
   "family": "production"
  },
  {
   "id": "machine-operator",
   "name": "Machine Operator / Technician",
   "aliases": [
    "machine operator",
    "cnc operator",
    "technician",
    "fitter",
    "diploma trainee",
    "iti"
   ],
   "tier": 1,
   "function": "manufacturing",
   "family": "production"
  },
  {
   "id": "quality-engineer",
   "name": "Quality Engineer",
   "aliases": [
    "quality engineer",
    "qa engineer manufacturing",
    "quality inspector",
    "quality control engineer",
    "supplier quality engineer"
   ],
   "tier": 1,
   "function": "quality",
   "family": "quality"
  },
  {
   "id": "quality-manager",
   "name": "Quality Manager",
   "aliases": [
    "quality manager",
    "qa manager",
    "head of quality",
    "qms manager",
    "iso auditor"
   ],
   "tier": 2,
   "function": "quality",
   "family": "quality"
  },
  {
   "id": "site-engineer",
   "name": "Site Engineer",
   "aliases": [
    "site engineer",
    "site supervisor",
    "construction supervisor",
    "junior engineer civil"
   ],
   "tier": 1,
   "function": "construction",
   "family": "construction"
  },
  {
   "id": "construction-project-manager",
   "name": "Construction Project Manager",
   "aliases": [
    "construction manager",
    "project manager construction",
    "project engineer construction",
    "planning engineer"
   ],
   "tier": 1,
   "function": "construction",
   "family": "construction"
  },
  {
   "id": "quantity-surveyor",
   "name": "Quantity Surveyor / Estimator",
   "aliases": [
    "quantity surveyor",
    "qs",
    "estimation engineer",
    "billing engineer",
    "cost engineer"
   ],
   "tier": 2,
   "function": "construction",
   "family": "construction"
  },
  {
   "id": "safety-officer",
   "name": "Safety Officer (EHS)",
   "aliases": [
    "safety officer",
    "ehs officer",
    "hse manager",
    "safety engineer"
   ],
   "tier": 2,
   "function": "construction",
   "family": "construction"
  },
  {
   "id": "real-estate-sales",
   "name": "Real Estate Sales / Property Consultant",
   "aliases": [
    "real estate sales",
    "property consultant",
    "real estate agent",
    "sales manager real estate",
    "closing manager"
   ],
   "tier": 1,
   "function": "real-estate",
   "family": "real-estate"
  },
  {
   "id": "property-manager",
   "name": "Property / Facility Manager",
   "aliases": [
    "property manager",
    "estate manager",
    "facilities manager",
    "leasing manager"
   ],
   "tier": 2,
   "function": "real-estate",
   "family": "real-estate"
  },
  {
   "id": "valuer",
   "name": "Valuer / Real Estate Analyst",
   "aliases": [
    "valuer",
    "real estate analyst",
    "investment analyst real estate"
   ],
   "tier": 3,
   "function": "real-estate",
   "family": "real-estate"
  },
  {
   "id": "hotel-manager",
   "name": "Hotel / Restaurant Manager",
   "aliases": [
    "hotel manager",
    "restaurant manager",
    "f&b manager",
    "general manager hotel",
    "front office manager",
    "duty manager"
   ],
   "tier": 1,
   "function": "hospitality",
   "family": "hotel"
  },
  {
   "id": "chef",
   "name": "Chef",
   "aliases": [
    "chef",
    "sous chef",
    "executive chef",
    "commis chef",
    "cook"
   ],
   "tier": 1,
   "function": "hospitality",
   "family": "hotel"
  },
  {
   "id": "front-office-executive",
   "name": "Front Office / Guest Relations",
   "aliases": [
    "front office",
    "guest relations",
    "receptionist hotel",
    "concierge",
    "steward"
   ],
   "tier": 2,
   "function": "hospitality",
   "family": "hotel"
  },
  {
   "id": "travel-consultant",
   "name": "Travel Consultant / Tour Manager",
   "aliases": [
    "travel consultant",
    "travel agent",
    "tour manager",
    "ticketing executive",
    "holiday consultant"
   ],
   "tier": 2,
   "function": "hospitality",
   "family": "hotel"
  },
  {
   "id": "cabin-crew",
   "name": "Cabin Crew / Airline Staff",
   "aliases": [
    "cabin crew",
    "air hostess",
    "flight attendant",
    "ground staff",
    "airport staff"
   ],
   "tier": 2,
   "function": "hospitality",
   "family": "hotel"
  },
  {
   "id": "store-manager",
   "name": "Store Manager",
   "aliases": [
    "store manager",
    "retail store manager",
    "outlet manager",
    "department manager retail",
    "showroom manager"
   ],
   "tier": 1,
   "function": "retail",
   "family": "retail"
  },
  {
   "id": "retail-sales-associate",
   "name": "Retail Sales Associate",
   "aliases": [
    "sales associate",
    "retail sales",
    "floor staff",
    "cashier",
    "store executive",
    "customer sales associate"
   ],
   "tier": 1,
   "function": "retail",
   "family": "retail"
  },
  {
   "id": "merchandiser",
   "name": "Merchandiser / Category Manager",
   "aliases": [
    "merchandiser",
    "category manager",
    "buying manager",
    "visual merchandiser"
   ],
   "tier": 2,
   "function": "retail",
   "family": "retail"
  },
  {
   "id": "ecommerce-manager",
   "name": "E-commerce / Marketplace Manager",
   "aliases": [
    "ecommerce manager",
    "marketplace manager",
    "e-commerce executive",
    "catalogue manager",
    "seller support"
   ],
   "tier": 2,
   "function": "retail",
   "family": "retail"
  },
  {
   "id": "civil-servant",
   "name": "Civil Servant (IAS / IPS / state services)",
   "aliases": [
    "ias",
    "ips",
    "ifs",
    "civil services",
    "sdm",
    "deputy collector",
    "state pcs"
   ],
   "tier": 1,
   "function": "government",
   "family": "civil-services"
  },
  {
   "id": "psu-officer",
   "name": "PSU Officer / Management Trainee",
   "aliases": [
    "psu",
    "management trainee psu",
    "gate psu",
    "ongc engineer",
    "ntpc engineer",
    "executive trainee",
    "assistant manager psu"
   ],
   "tier": 1,
   "function": "government",
   "family": "civil-services"
  },
  {
   "id": "government-clerk",
   "name": "Government Clerk / Assistant",
   "aliases": [
    "ssc cgl",
    "ssc chsl",
    "ldc",
    "udc",
    "clerk government",
    "assistant section officer",
    "tax assistant"
   ],
   "tier": 1,
   "function": "government",
   "family": "civil-services"
  },
  {
   "id": "defence-officer",
   "name": "Defence Officer",
   "aliases": [
    "army officer",
    "navy officer",
    "air force officer",
    "nda",
    "cds",
    "defence"
   ],
   "tier": 2,
   "function": "government",
   "family": "civil-services"
  },
  {
   "id": "public-sector-bank",
   "name": "Public Sector Bank Officer / Clerk",
   "aliases": [
    "sbi po",
    "ibps po",
    "bank clerk",
    "ibps clerk",
    "rbi grade b",
    "nabard"
   ],
   "tier": 1,
   "function": "government",
   "family": "civil-services"
  },
  {
   "id": "pilot",
   "name": "Pilot",
   "aliases": [
    "pilot",
    "commercial pilot",
    "first officer",
    "captain airline"
   ],
   "tier": 2,
   "function": "other",
   "family": "other"
  },
  {
   "id": "agriculture-professional",
   "name": "Agriculture / Agronomist",
   "aliases": [
    "agronomist",
    "agriculture officer",
    "agri scientist",
    "farm manager",
    "agri business manager"
   ],
   "tier": 2,
   "function": "other",
   "family": "other"
  },
  {
   "id": "environmental-specialist",
   "name": "Environmental / Sustainability Specialist",
   "aliases": [
    "environmental engineer",
    "sustainability manager",
    "esg analyst",
    "esg manager",
    "climate analyst"
   ],
   "tier": 2,
   "function": "other",
   "family": "other"
  },
  {
   "id": "sports-fitness",
   "name": "Sports / Fitness Professional",
   "aliases": [
    "fitness trainer",
    "coach",
    "physical education teacher",
    "sports coach",
    "gym trainer"
   ],
   "tier": 3,
   "function": "other",
   "family": "other"
  },
  {
   "id": "social-worker",
   "name": "Social Worker / NGO Professional",
   "aliases": [
    "social worker",
    "ngo",
    "program officer ngo",
    "csr manager",
    "development sector"
   ],
   "tier": 2,
   "function": "other",
   "family": "other"
  },
  {
   "id": "librarian-archivist",
   "name": "Librarian / Information Specialist",
   "aliases": [
    "librarian",
    "archivist",
    "documentation officer"
   ],
   "tier": 3,
   "function": "other",
   "family": "other"
  },
  {
   "id": "translator",
   "name": "Translator / Interpreter / Language Specialist",
   "aliases": [
    "translator",
    "interpreter",
    "language expert",
    "localisation specialist"
   ],
   "tier": 3,
   "function": "other",
   "family": "other"
  },
  {
   "id": "event-manager",
   "name": "Event Manager",
   "aliases": [
    "event manager",
    "event coordinator",
    "wedding planner",
    "mice manager"
   ],
   "tier": 2,
   "function": "other",
   "family": "other"
  },
  {
   "id": "photographer",
   "name": "Photographer / Videographer",
   "aliases": [
    "photographer",
    "videographer",
    "cinematographer"
   ],
   "tier": 3,
   "function": "other",
   "family": "other"
  },
  {
   "id": "driver-delivery",
   "name": "Driver / Delivery Partner",
   "aliases": [
    "driver",
    "delivery partner",
    "delivery executive",
    "rider",
    "chauffeur"
   ],
   "tier": 1,
   "function": "other",
   "family": "other"
  },
  {
   "id": "security-guard",
   "name": "Security Guard / Supervisor",
   "aliases": [
    "security guard",
    "security supervisor",
    "gunman",
    "security officer premises"
   ],
   "tier": 1,
   "function": "other",
   "family": "other"
  },
  {
   "id": "electrician-plumber",
   "name": "Electrician / Plumber / Skilled Trades",
   "aliases": [
    "electrician",
    "plumber",
    "welder",
    "carpenter",
    "hvac technician",
    "ac technician"
   ],
   "tier": 1,
   "function": "other",
   "family": "other"
  }
 ],
 "families": [
  {
   "id": "accounting",
   "name": "Accounting",
   "function": "finance-accounting"
  },
  {
   "id": "fpa",
   "name": "Financial Planning & Analysis",
   "function": "finance-accounting"
  },
  {
   "id": "tax",
   "name": "Taxation",
   "function": "finance-accounting"
  },
  {
   "id": "audit",
   "name": "Audit & Assurance",
   "function": "finance-accounting"
  },
  {
   "id": "treasury",
   "name": "Treasury & Corporate Finance",
   "function": "finance-accounting"
  },
  {
   "id": "payroll",
   "name": "Payroll",
   "function": "finance-accounting"
  },
  {
   "id": "benchmark",
   "name": "Benchmarks",
   "function": "benchmarks"
  },
  {
   "id": "software-engineering",
   "name": "Software Engineering",
   "function": "technology"
  },
  {
   "id": "qa-testing",
   "name": "QA & Testing",
   "function": "technology"
  },
  {
   "id": "devops-cloud",
   "name": "DevOps, Cloud & Infrastructure",
   "function": "technology"
  },
  {
   "id": "it-support",
   "name": "IT Support & Services",
   "function": "technology"
  },
  {
   "id": "analytics",
   "name": "Analytics",
   "function": "data-analytics"
  },
  {
   "id": "machine-learning",
   "name": "Machine Learning",
   "function": "ai-ml"
  },
  {
   "id": "product-management",
   "name": "Product Management",
   "function": "product"
  },
  {
   "id": "mechanical",
   "name": "Mechanical",
   "function": "engineering-core"
  },
  {
   "id": "electrical",
   "name": "Electrical & Electronics",
   "function": "engineering-core"
  },
  {
   "id": "civil",
   "name": "Civil & Structural",
   "function": "engineering-core"
  },
  {
   "id": "chemical",
   "name": "Chemical & Process",
   "function": "engineering-core"
  },
  {
   "id": "marine-aero",
   "name": "Marine & Aerospace",
   "function": "engineering-core"
  },
  {
   "id": "field-sales",
   "name": "Field & Channel Sales",
   "function": "sales"
  },
  {
   "id": "inside-sales",
   "name": "Inside Sales & Pre-sales",
   "function": "sales"
  },
  {
   "id": "bd",
   "name": "Business Development",
   "function": "business-development"
  },
  {
   "id": "brand-marketing",
   "name": "Brand & Product Marketing",
   "function": "marketing"
  },
  {
   "id": "digital-marketing",
   "name": "Digital & Performance Marketing",
   "function": "marketing"
  },
  {
   "id": "communications",
   "name": "Communications & PR",
   "function": "marketing"
  },
  {
   "id": "hr-generalist",
   "name": "HR Generalist & Business Partner",
   "function": "hr"
  },
  {
   "id": "talent-acquisition",
   "name": "Talent Acquisition",
   "function": "hr"
  },
  {
   "id": "ld-comp",
   "name": "L&D, Compensation & HR Operations",
   "function": "hr"
  },
  {
   "id": "business-operations",
   "name": "Business Operations",
   "function": "operations"
  },
  {
   "id": "supply-chain",
   "name": "Supply Chain",
   "function": "supply-chain"
  },
  {
   "id": "logistics",
   "name": "Logistics & Warehousing",
   "function": "supply-chain"
  },
  {
   "id": "procurement",
   "name": "Procurement & Sourcing",
   "function": "procurement"
  },
  {
   "id": "management-consulting",
   "name": "Management Consulting",
   "function": "consulting"
  },
  {
   "id": "legal",
   "name": "Legal",
   "function": "legal"
  },
  {
   "id": "risk",
   "name": "Risk",
   "function": "risk-compliance"
  },
  {
   "id": "compliance",
   "name": "Compliance & AML",
   "function": "risk-compliance"
  },
  {
   "id": "security",
   "name": "Security",
   "function": "cybersecurity"
  },
  {
   "id": "retail-banking",
   "name": "Retail & Branch Banking",
   "function": "banking"
  },
  {
   "id": "corporate-banking",
   "name": "Corporate & Investment Banking",
   "function": "banking"
  },
  {
   "id": "fintech-ops",
   "name": "Banking Operations & Fintech",
   "function": "banking"
  },
  {
   "id": "insurance",
   "name": "Insurance",
   "function": "insurance"
  },
  {
   "id": "investment",
   "name": "Investment & Research",
   "function": "investment-markets"
  },
  {
   "id": "customer-success",
   "name": "Customer Success",
   "function": "customer-success"
  },
  {
   "id": "support",
   "name": "Customer Support",
   "function": "customer-support"
  },
  {
   "id": "product-design",
   "name": "Product & UX Design",
   "function": "design"
  },
  {
   "id": "visual-design",
   "name": "Graphic & Visual Design",
   "function": "design"
  },
  {
   "id": "architecture",
   "name": "Architecture",
   "function": "architecture"
  },
  {
   "id": "teaching",
   "name": "Teaching",
   "function": "education"
  },
  {
   "id": "research",
   "name": "Research",
   "function": "research"
  },
  {
   "id": "journalism",
   "name": "Journalism & Broadcast",
   "function": "media"
  },
  {
   "id": "content",
   "name": "Content",
   "function": "content"
  },
  {
   "id": "clinical",
   "name": "Clinical",
   "function": "healthcare"
  },
  {
   "id": "healthcare-admin",
   "name": "Hospital Administration",
   "function": "healthcare"
  },
  {
   "id": "pharma",
   "name": "Pharma",
   "function": "pharma"
  },
  {
   "id": "production",
   "name": "Production",
   "function": "manufacturing"
  },
  {
   "id": "quality",
   "name": "Quality Assurance & Control",
   "function": "quality"
  },
  {
   "id": "construction",
   "name": "Construction",
   "function": "construction"
  },
  {
   "id": "real-estate",
   "name": "Real Estate",
   "function": "real-estate"
  },
  {
   "id": "hotel",
   "name": "Hotels & Restaurants",
   "function": "hospitality"
  },
  {
   "id": "retail",
   "name": "Retail",
   "function": "retail"
  },
  {
   "id": "civil-services",
   "name": "Civil Services & PSU",
   "function": "government"
  },
  {
   "id": "other",
   "name": "Other",
   "function": "other"
  }
 ],
 "functions": [
  {
   "id": "finance-accounting",
   "name": "Finance & Accounting",
   "signal_tags": [
    "accounting-finance"
   ]
  },
  {
   "id": "benchmarks",
   "name": "Benchmarks (all-occupation / institution)",
   "signal_tags": []
  },
  {
   "id": "technology",
   "name": "Technology & Software",
   "signal_tags": [
    "it-software",
    "it-security"
   ]
  },
  {
   "id": "data-analytics",
   "name": "Data & Analytics",
   "signal_tags": [
    "it-software"
   ]
  },
  {
   "id": "ai-ml",
   "name": "AI / ML",
   "signal_tags": [
    "ai-ml"
   ]
  },
  {
   "id": "product",
   "name": "Product",
   "signal_tags": [
    "it-software"
   ]
  },
  {
   "id": "engineering-core",
   "name": "Engineering (core)",
   "signal_tags": [
    "auto",
    "manufacturing"
   ]
  },
  {
   "id": "sales",
   "name": "Sales",
   "signal_tags": [
    "bfsi",
    "insurance",
    "retail"
   ]
  },
  {
   "id": "business-development",
   "name": "Business Development",
   "signal_tags": []
  },
  {
   "id": "marketing",
   "name": "Marketing",
   "signal_tags": [
    "retail"
   ]
  },
  {
   "id": "hr",
   "name": "Human Resources",
   "signal_tags": [
    "recruitment"
   ]
  },
  {
   "id": "operations",
   "name": "Operations",
   "signal_tags": [
    "manufacturing"
   ]
  },
  {
   "id": "supply-chain",
   "name": "Supply Chain & Logistics",
   "signal_tags": [
    "manufacturing",
    "retail"
   ]
  },
  {
   "id": "procurement",
   "name": "Procurement",
   "signal_tags": [
    "manufacturing"
   ]
  },
  {
   "id": "consulting",
   "name": "Consulting & Strategy",
   "signal_tags": []
  },
  {
   "id": "legal",
   "name": "Legal",
   "signal_tags": [
    "legal"
   ]
  },
  {
   "id": "risk-compliance",
   "name": "Risk & Compliance",
   "signal_tags": [
    "bfsi",
    "insurance"
   ]
  },
  {
   "id": "cybersecurity",
   "name": "Cybersecurity",
   "signal_tags": [
    "it-security"
   ]
  },
  {
   "id": "banking",
   "name": "Banking",
   "signal_tags": [
    "bfsi"
   ]
  },
  {
   "id": "insurance",
   "name": "Insurance",
   "signal_tags": [
    "insurance"
   ]
  },
  {
   "id": "investment-markets",
   "name": "Investment & Markets",
   "signal_tags": [
    "bfsi"
   ]
  },
  {
   "id": "customer-success",
   "name": "Customer Success",
   "signal_tags": [
    "it-software"
   ]
  },
  {
   "id": "customer-support",
   "name": "Customer Support & BPO",
   "signal_tags": [
    "bpo"
   ]
  },
  {
   "id": "design",
   "name": "Design",
   "signal_tags": []
  },
  {
   "id": "architecture",
   "name": "Architecture & Interiors",
   "signal_tags": [
    "real-estate"
   ]
  },
  {
   "id": "education",
   "name": "Education & Training",
   "signal_tags": [
    "education"
   ]
  },
  {
   "id": "research",
   "name": "Research & Science",
   "signal_tags": [
    "pharma"
   ]
  },
  {
   "id": "media",
   "name": "Media & Journalism",
   "signal_tags": [
    "media"
   ]
  },
  {
   "id": "content",
   "name": "Content & Communications",
   "signal_tags": [
    "media"
   ]
  },
  {
   "id": "healthcare",
   "name": "Healthcare",
   "signal_tags": [
    "healthcare"
   ]
  },
  {
   "id": "pharma",
   "name": "Pharma & Life Sciences",
   "signal_tags": [
    "pharma"
   ]
  },
  {
   "id": "manufacturing",
   "name": "Manufacturing & Production",
   "signal_tags": [
    "manufacturing",
    "auto"
   ]
  },
  {
   "id": "quality",
   "name": "Quality",
   "signal_tags": [
    "manufacturing",
    "pharma"
   ]
  },
  {
   "id": "construction",
   "name": "Construction & Infrastructure",
   "signal_tags": [
    "real-estate"
   ]
  },
  {
   "id": "real-estate",
   "name": "Real Estate",
   "signal_tags": [
    "real-estate"
   ]
  },
  {
   "id": "hospitality",
   "name": "Hospitality & Travel",
   "signal_tags": [
    "hospitality"
   ]
  },
  {
   "id": "retail",
   "name": "Retail & E-commerce",
   "signal_tags": [
    "retail"
   ]
  },
  {
   "id": "government",
   "name": "Government & Public Sector",
   "signal_tags": []
  },
  {
   "id": "other",
   "name": "Other professional occupations",
   "signal_tags": []
  }
 ],
 "seniority": [
  {
   "id": "intern",
   "name": "Intern",
   "keywords": [
    "intern",
    "internship",
    "trainee",
    "apprentice",
    "article assistant"
   ],
   "band": "entry"
  },
  {
   "id": "entry-level",
   "name": "Entry level",
   "keywords": [
    "fresher",
    "entry level",
    "entry-level",
    "graduate",
    "newly qualified"
   ],
   "band": "entry"
  },
  {
   "id": "junior",
   "name": "Junior",
   "keywords": [
    "junior",
    "jr",
    "jr."
   ],
   "band": "entry"
  },
  {
   "id": "associate",
   "name": "Associate",
   "keywords": [
    "associate"
   ],
   "band": "early"
  },
  {
   "id": "analyst",
   "name": "Analyst",
   "keywords": [
    "analyst"
   ],
   "band": "early"
  },
  {
   "id": "senior",
   "name": "Senior",
   "keywords": [
    "senior",
    "sr",
    "sr."
   ],
   "band": "mid"
  },
  {
   "id": "lead",
   "name": "Lead",
   "keywords": [
    "lead",
    "team lead",
    "principal",
    "staff"
   ],
   "band": "mid"
  },
  {
   "id": "manager",
   "name": "Manager",
   "keywords": [
    "manager",
    "mgr"
   ],
   "band": "mid"
  },
  {
   "id": "senior-manager",
   "name": "Senior Manager",
   "keywords": [
    "senior manager",
    "sr manager",
    "agm",
    "assistant general manager",
    "dgm",
    "deputy general manager"
   ],
   "band": "senior"
  },
  {
   "id": "director",
   "name": "Director",
   "keywords": [
    "director",
    "general manager",
    "gm",
    "avp",
    "associate vice president"
   ],
   "band": "senior"
  },
  {
   "id": "vp",
   "name": "VP",
   "keywords": [
    "vice president",
    "vp",
    "svp",
    "evp"
   ],
   "band": "lead"
  },
  {
   "id": "head",
   "name": "Head",
   "keywords": [
    "head of",
    "head",
    "chief of staff"
   ],
   "band": "lead"
  },
  {
   "id": "cxo",
   "name": "CXO",
   "keywords": [
    "cfo",
    "ceo",
    "coo",
    "cto",
    "cmo",
    "chro",
    "ciso",
    "cpo",
    "cro",
    "chief",
    "managing director",
    "md",
    "partner"
   ],
   "band": "lead"
  }
 ],
 "coverage": {
  "accountant": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-05-21",
   "signals": 1,
   "benchmark": false
  },
  "accounts-payable-receivable": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "financial-controller": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "chartered-accountant": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2025-08-16",
   "signals": 1,
   "benchmark": false
  },
  "ca-newly-qualified": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 6,
   "bands": [
    "entry"
   ],
   "latest": "2026-05-31",
   "signals": 1,
   "benchmark": false
  },
  "cost-accountant": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-01-13",
   "signals": 1,
   "benchmark": false
  },
  "company-secretary": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 2,
   "bands": [
    "entry"
   ],
   "latest": "2026-05-05",
   "signals": 1,
   "benchmark": false
  },
  "financial-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "finance-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "finance-director": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "finance-business-partner": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "tax-consultant": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "tax-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "transfer-pricing-specialist": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "audit-associate": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-05-21",
   "signals": 1,
   "benchmark": false
  },
  "audit-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "internal-auditor": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "forensic-accountant": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "treasury-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "corporate-finance-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "payroll-specialist": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "regular-salaried-all": {
   "state": "VERIFIED",
   "best_grade": "HIGH",
   "observations": 2,
   "bands": [
    "any"
   ],
   "latest": "2025-12-31",
   "signals": 0,
   "benchmark": true
  },
  "mba-graduate-iim-a": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 3,
   "bands": [
    "entry"
   ],
   "latest": "2026-09-03",
   "signals": 0,
   "benchmark": true
  },
  "software-engineer": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 2,
   "bands": [
    "entry",
    "early"
   ],
   "latest": "2026-02-18",
   "signals": 2,
   "benchmark": false
  },
  "backend-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "frontend-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "full-stack-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "mobile-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "engineering-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "software-architect": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "sap-consultant": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "embedded-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "qa-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "devops-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "cloud-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "system-administrator": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-05-05",
   "signals": 2,
   "benchmark": false
  },
  "database-administrator": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "it-support-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "it-project-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "business-analyst-it": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "data-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "data-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "data-scientist": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "analytics-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "statistician": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 2,
   "bands": [
    "entry"
   ],
   "latest": "2026-05-21",
   "signals": 1,
   "benchmark": false
  },
  "ml-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "ai-researcher": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "genai-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "ai-product-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "product-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "product-director": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "product-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "mechanical-engineer": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 2,
   "bands": [
    "entry"
   ],
   "latest": "2026-09-02",
   "signals": 2,
   "benchmark": false
  },
  "automotive-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "electrical-engineer": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 3,
   "bands": [
    "entry",
    "early"
   ],
   "latest": "2026-09-02",
   "signals": 2,
   "benchmark": false
  },
  "electronics-engineer": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 2,
   "bands": [
    "entry"
   ],
   "latest": "2026-09-02",
   "signals": 2,
   "benchmark": false
  },
  "instrumentation-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "civil-engineer": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 3,
   "bands": [
    "entry",
    "early"
   ],
   "latest": "2026-09-02",
   "signals": 2,
   "benchmark": false
  },
  "chemical-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "marine-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "aerospace-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "sales-executive": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 3,
   "benchmark": false
  },
  "sales-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 3,
   "benchmark": false
  },
  "sales-head": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 3,
   "benchmark": false
  },
  "channel-sales-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 3,
   "benchmark": false
  },
  "inside-sales-executive": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 3,
   "benchmark": false
  },
  "presales-consultant": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 3,
   "benchmark": false
  },
  "account-executive": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 3,
   "benchmark": false
  },
  "business-development-executive": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "business-development-manager": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "marketing-executive": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-06-30",
   "signals": 1,
   "benchmark": false
  },
  "marketing-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "marketing-head": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "digital-marketing-specialist": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "performance-marketing-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "seo-specialist": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "social-media-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "marketing-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "pr-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "hr-executive": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-06-30",
   "signals": 1,
   "benchmark": false
  },
  "hr-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "hr-head": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "recruiter": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "ta-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "learning-development": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "compensation-benefits": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "hr-operations": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "operations-executive": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "operations-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "process-excellence": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "project-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "office-administrator": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "supply-chain-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "supply-chain-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "logistics-executive": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "logistics-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "procurement-executive": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "procurement-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "consultant": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "engagement-manager": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "strategy-analyst": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "lawyer": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 2,
   "bands": [
    "entry"
   ],
   "latest": "2026-06-30",
   "signals": 1,
   "benchmark": false
  },
  "legal-counsel": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2025-12-01",
   "signals": 1,
   "benchmark": false
  },
  "paralegal": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "risk-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "risk-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "compliance-officer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "security-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "security-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "security-architect": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "bank-officer": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-04-29",
   "signals": 1,
   "benchmark": false
  },
  "credit-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "wealth-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "investment-banker": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "corporate-banker": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "banking-operations": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "fintech-product-ops": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "insurance-sales-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "underwriter-insurance": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "claims-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "actuary": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2025-08-16",
   "signals": 1,
   "benchmark": false
  },
  "equity-research-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "portfolio-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "trader": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "quant-analyst": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "financial-advisor": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "private-equity-vc": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "customer-success-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "implementation-consultant": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "customer-support-executive": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "team-leader-bpo": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "technical-support-specialist": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "ux-designer": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "design-lead": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "graphic-designer": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "architect": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "interior-designer": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "school-teacher": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 2,
   "bands": [
    "entry",
    "any"
   ],
   "latest": "2025-03-20",
   "signals": 1,
   "benchmark": false
  },
  "professor": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 3,
   "bands": [
    "entry",
    "mid",
    "senior"
   ],
   "latest": "2026-05-18",
   "signals": 1,
   "benchmark": false
  },
  "edtech-instructor": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "research-scientist": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-08-27",
   "signals": 0,
   "benchmark": false
  },
  "lab-technician": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "policy-researcher": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-04-29",
   "signals": 0,
   "benchmark": false
  },
  "journalist": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "producer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "content-writer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "content-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "doctor-mbbs": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-02-28",
   "signals": 1,
   "benchmark": false
  },
  "specialist-doctor": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-03-30",
   "signals": 1,
   "benchmark": false
  },
  "dentist": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "nurse": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-07-24",
   "signals": 1,
   "benchmark": false
  },
  "pharmacist": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "physiotherapist": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "allied-health": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "hospital-administrator": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "clinical-research-associate": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "regulatory-affairs": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "pharma-qa": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "medical-writer": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "production-chemist": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "production-engineer": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-05-05",
   "signals": 2,
   "benchmark": false
  },
  "plant-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "maintenance-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "machine-operator": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 2,
   "benchmark": false
  },
  "quality-engineer": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "quality-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "site-engineer": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "construction-project-manager": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "quantity-surveyor": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "safety-officer": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "real-estate-sales": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "property-manager": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "valuer": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "hotel-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "chef": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "front-office-executive": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "travel-consultant": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "cabin-crew": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "store-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "retail-sales-associate": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "merchandiser": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "ecommerce-manager": {
   "state": "SIGNAL ONLY",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 1,
   "benchmark": false
  },
  "civil-servant": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "psu-officer": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 2,
   "bands": [
    "entry",
    "senior"
   ],
   "latest": "2026-01-13",
   "signals": 0,
   "benchmark": false
  },
  "government-clerk": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 3,
   "bands": [
    "entry"
   ],
   "latest": "2026-09-07",
   "signals": 0,
   "benchmark": false
  },
  "defence-officer": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 4,
   "bands": [
    "entry",
    "any"
   ],
   "latest": "2026-05-20",
   "signals": 0,
   "benchmark": false
  },
  "public-sector-bank": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 5,
   "bands": [
    "entry"
   ],
   "latest": "2026-08-01",
   "signals": 0,
   "benchmark": false
  },
  "pilot": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "agriculture-professional": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 1,
   "bands": [
    "entry"
   ],
   "latest": "2026-06-30",
   "signals": 0,
   "benchmark": false
  },
  "environmental-specialist": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "sports-fitness": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "social-worker": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "librarian-archivist": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "translator": {
   "state": "VERIFIED",
   "best_grade": "MEDIUM",
   "observations": 2,
   "bands": [
    "entry"
   ],
   "latest": "2026-06-30",
   "signals": 0,
   "benchmark": false
  },
  "event-manager": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "photographer": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "driver-delivery": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "security-guard": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  },
  "electrician-plumber": {
   "state": "INSUFFICIENT",
   "best_grade": null,
   "observations": 0,
   "bands": [],
   "latest": null,
   "signals": 0,
   "benchmark": false
  }
 },
 "coverage_totals": {
  "total": 199,
  "VERIFIED": 35,
  "LIMITED": 0,
  "SIGNAL ONLY": 127,
  "INSUFFICIENT": 37
 },
 "coverage_by_function": {
  "finance-accounting": {
   "total": 21,
   "VERIFIED": 6,
   "LIMITED": 0,
   "SIGNAL ONLY": 15,
   "INSUFFICIENT": 0
  },
  "benchmarks": {
   "total": 2,
   "VERIFIED": 2,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 0
  },
  "technology": {
   "total": 17,
   "VERIFIED": 2,
   "LIMITED": 0,
   "SIGNAL ONLY": 15,
   "INSUFFICIENT": 0
  },
  "data-analytics": {
   "total": 5,
   "VERIFIED": 1,
   "LIMITED": 0,
   "SIGNAL ONLY": 4,
   "INSUFFICIENT": 0
  },
  "ai-ml": {
   "total": 4,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 4,
   "INSUFFICIENT": 0
  },
  "product": {
   "total": 3,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 3,
   "INSUFFICIENT": 0
  },
  "engineering-core": {
   "total": 9,
   "VERIFIED": 4,
   "LIMITED": 0,
   "SIGNAL ONLY": 5,
   "INSUFFICIENT": 0
  },
  "sales": {
   "total": 7,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 7,
   "INSUFFICIENT": 0
  },
  "business-development": {
   "total": 2,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 2
  },
  "marketing": {
   "total": 9,
   "VERIFIED": 1,
   "LIMITED": 0,
   "SIGNAL ONLY": 8,
   "INSUFFICIENT": 0
  },
  "hr": {
   "total": 8,
   "VERIFIED": 1,
   "LIMITED": 0,
   "SIGNAL ONLY": 7,
   "INSUFFICIENT": 0
  },
  "operations": {
   "total": 5,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 5,
   "INSUFFICIENT": 0
  },
  "supply-chain": {
   "total": 4,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 4,
   "INSUFFICIENT": 0
  },
  "procurement": {
   "total": 2,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 2,
   "INSUFFICIENT": 0
  },
  "consulting": {
   "total": 3,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 3
  },
  "legal": {
   "total": 3,
   "VERIFIED": 2,
   "LIMITED": 0,
   "SIGNAL ONLY": 1,
   "INSUFFICIENT": 0
  },
  "risk-compliance": {
   "total": 3,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 3,
   "INSUFFICIENT": 0
  },
  "cybersecurity": {
   "total": 3,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 3,
   "INSUFFICIENT": 0
  },
  "banking": {
   "total": 7,
   "VERIFIED": 1,
   "LIMITED": 0,
   "SIGNAL ONLY": 6,
   "INSUFFICIENT": 0
  },
  "insurance": {
   "total": 4,
   "VERIFIED": 1,
   "LIMITED": 0,
   "SIGNAL ONLY": 3,
   "INSUFFICIENT": 0
  },
  "investment-markets": {
   "total": 6,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 6,
   "INSUFFICIENT": 0
  },
  "customer-success": {
   "total": 2,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 2,
   "INSUFFICIENT": 0
  },
  "customer-support": {
   "total": 3,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 3
  },
  "design": {
   "total": 3,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 3
  },
  "architecture": {
   "total": 2,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 2
  },
  "education": {
   "total": 3,
   "VERIFIED": 2,
   "LIMITED": 0,
   "SIGNAL ONLY": 1,
   "INSUFFICIENT": 0
  },
  "research": {
   "total": 3,
   "VERIFIED": 2,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 1
  },
  "media": {
   "total": 2,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 2,
   "INSUFFICIENT": 0
  },
  "content": {
   "total": 2,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 2,
   "INSUFFICIENT": 0
  },
  "healthcare": {
   "total": 8,
   "VERIFIED": 3,
   "LIMITED": 0,
   "SIGNAL ONLY": 5,
   "INSUFFICIENT": 0
  },
  "pharma": {
   "total": 5,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 5
  },
  "manufacturing": {
   "total": 4,
   "VERIFIED": 1,
   "LIMITED": 0,
   "SIGNAL ONLY": 3,
   "INSUFFICIENT": 0
  },
  "quality": {
   "total": 2,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 2,
   "INSUFFICIENT": 0
  },
  "construction": {
   "total": 4,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 4
  },
  "real-estate": {
   "total": 3,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 3
  },
  "hospitality": {
   "total": 5,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 5,
   "INSUFFICIENT": 0
  },
  "retail": {
   "total": 4,
   "VERIFIED": 0,
   "LIMITED": 0,
   "SIGNAL ONLY": 4,
   "INSUFFICIENT": 0
  },
  "government": {
   "total": 5,
   "VERIFIED": 4,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 1
  },
  "other": {
   "total": 12,
   "VERIFIED": 2,
   "LIMITED": 0,
   "SIGNAL ONLY": 0,
   "INSUFFICIENT": 10
  }
 },
 "roadmap": [
  {
   "role": "architect",
   "name": "Architect",
   "function": "architecture",
   "family": "architecture",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "business-development-executive",
   "name": "Business Development Executive",
   "function": "business-development",
   "family": "bd",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "business-development-manager",
   "name": "Business Development Manager",
   "function": "business-development",
   "family": "bd",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "civil-servant",
   "name": "Civil Servant (IAS / IPS / state services)",
   "function": "government",
   "family": "civil-services",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "Pay Commission scales (official)",
    "PSU recruitment notifications (official CTC)"
   ]
  },
  {
   "role": "construction-project-manager",
   "name": "Construction Project Manager",
   "function": "construction",
   "family": "construction",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "consultant",
   "name": "Consultant",
   "function": "consulting",
   "family": "management-consulting",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "customer-support-executive",
   "name": "Customer Support Executive",
   "function": "customer-support",
   "family": "support",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "driver-delivery",
   "name": "Driver / Delivery Partner",
   "function": "other",
   "family": "other",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "electrician-plumber",
   "name": "Electrician / Plumber / Skilled Trades",
   "function": "other",
   "family": "other",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "graphic-designer",
   "name": "Graphic Designer",
   "function": "design",
   "family": "visual-design",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "real-estate-sales",
   "name": "Real Estate Sales / Property Consultant",
   "function": "real-estate",
   "family": "real-estate",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "security-guard",
   "name": "Security Guard / Supervisor",
   "function": "other",
   "family": "other",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "site-engineer",
   "name": "Site Engineer",
   "function": "construction",
   "family": "construction",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "team-leader-bpo",
   "name": "Team Leader / Operations (BPO)",
   "function": "customer-support",
   "family": "support",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "ux-designer",
   "name": "UX / Product Designer",
   "function": "design",
   "family": "product-design",
   "tier": 1,
   "coverage": "INSUFFICIENT",
   "score": 18,
   "why": [
    "high employment relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "account-executive",
   "name": "Account Executive (B2B)",
   "function": "sales",
   "family": "inside-sales",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "backend-engineer",
   "name": "Backend Engineer",
   "function": "technology",
   "family": "software-engineering",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "business-analyst-it",
   "name": "Business Analyst (IT)",
   "function": "technology",
   "family": "it-support",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "chef",
   "name": "Chef",
   "function": "hospitality",
   "family": "hotel",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "cloud-engineer",
   "name": "Cloud Engineer",
   "function": "technology",
   "family": "devops-cloud",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "compliance-officer",
   "name": "Compliance Officer",
   "function": "risk-compliance",
   "family": "compliance",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "content-writer",
   "name": "Content Writer",
   "function": "content",
   "family": "content",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "credit-analyst",
   "name": "Credit Analyst / Underwriter",
   "function": "banking",
   "family": "retail-banking",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "customer-success-manager",
   "name": "Customer Success Manager",
   "function": "customer-success",
   "family": "customer-success",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "data-analyst",
   "name": "Data Analyst",
   "function": "data-analytics",
   "family": "analytics",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "data-engineer",
   "name": "Data Engineer",
   "function": "data-analytics",
   "family": "analytics",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "data-scientist",
   "name": "Data Scientist",
   "function": "data-analytics",
   "family": "analytics",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "devops-engineer",
   "name": "DevOps Engineer",
   "function": "technology",
   "family": "devops-cloud",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "digital-marketing-specialist",
   "name": "Digital Marketing Specialist",
   "function": "marketing",
   "family": "digital-marketing",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "equity-research-analyst",
   "name": "Equity Research Analyst",
   "function": "investment-markets",
   "family": "investment",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "finance-manager",
   "name": "Finance Manager",
   "function": "finance-accounting",
   "family": "fpa",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "financial-analyst",
   "name": "Financial Analyst",
   "function": "finance-accounting",
   "family": "fpa",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "frontend-engineer",
   "name": "Frontend Engineer",
   "function": "technology",
   "family": "software-engineering",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "full-stack-engineer",
   "name": "Full-stack Engineer",
   "function": "technology",
   "family": "software-engineering",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "hotel-manager",
   "name": "Hotel / Restaurant Manager",
   "function": "hospitality",
   "family": "hotel",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "hr-manager",
   "name": "HR Manager",
   "function": "hr",
   "family": "hr-generalist",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "inside-sales-executive",
   "name": "Inside Sales Executive",
   "function": "sales",
   "family": "inside-sales",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "insurance-sales-manager",
   "name": "Insurance Sales / Agency Manager",
   "function": "insurance",
   "family": "insurance",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "journalist",
   "name": "Journalist / Reporter",
   "function": "media",
   "family": "journalism",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "logistics-manager",
   "name": "Logistics / Warehouse Manager",
   "function": "supply-chain",
   "family": "logistics",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "logistics-executive",
   "name": "Logistics Executive",
   "function": "supply-chain",
   "family": "logistics",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "ml-engineer",
   "name": "Machine Learning Engineer",
   "function": "ai-ml",
   "family": "machine-learning",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "machine-operator",
   "name": "Machine Operator / Technician",
   "function": "manufacturing",
   "family": "production",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "marketing-manager",
   "name": "Marketing Manager",
   "function": "marketing",
   "family": "brand-marketing",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "operations-executive",
   "name": "Operations Executive",
   "function": "operations",
   "family": "business-operations",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "operations-manager",
   "name": "Operations Manager",
   "function": "operations",
   "family": "business-operations",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "plant-manager",
   "name": "Plant / Production Manager",
   "function": "manufacturing",
   "family": "production",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "procurement-executive",
   "name": "Procurement / Purchase Executive",
   "function": "procurement",
   "family": "procurement",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "procurement-manager",
   "name": "Procurement / Sourcing Manager",
   "function": "procurement",
   "family": "procurement",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "product-manager",
   "name": "Product Manager",
   "function": "product",
   "family": "product-management",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "project-manager",
   "name": "Project Manager (non-IT)",
   "function": "operations",
   "family": "business-operations",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "qa-engineer",
   "name": "QA / Test Engineer",
   "function": "technology",
   "family": "qa-testing",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "quality-engineer",
   "name": "Quality Engineer",
   "function": "quality",
   "family": "quality",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "recruiter",
   "name": "Recruiter / Talent Acquisition",
   "function": "hr",
   "family": "talent-acquisition",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "retail-sales-associate",
   "name": "Retail Sales Associate",
   "function": "retail",
   "family": "retail",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "risk-analyst",
   "name": "Risk Analyst",
   "function": "risk-compliance",
   "family": "risk",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "sales-executive",
   "name": "Sales Executive",
   "function": "sales",
   "family": "field-sales",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "sales-manager",
   "name": "Sales Manager",
   "function": "sales",
   "family": "field-sales",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "security-analyst",
   "name": "Security Analyst (SOC)",
   "function": "cybersecurity",
   "family": "security",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "security-engineer",
   "name": "Security Engineer",
   "function": "cybersecurity",
   "family": "security",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "store-manager",
   "name": "Store Manager",
   "function": "retail",
   "family": "retail",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "supply-chain-manager",
   "name": "Supply Chain Manager",
   "function": "supply-chain",
   "family": "supply-chain",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "tax-consultant",
   "name": "Tax Consultant",
   "function": "finance-accounting",
   "family": "tax",
   "tier": 1,
   "coverage": "SIGNAL ONLY",
   "score": 13,
   "why": [
    "high employment relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "clinical-research-associate",
   "name": "Clinical Research Associate",
   "function": "pharma",
   "family": "pharma",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "engagement-manager",
   "name": "Engagement Manager / Principal",
   "function": "consulting",
   "family": "management-consulting",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "environmental-specialist",
   "name": "Environmental / Sustainability Specialist",
   "function": "other",
   "family": "other",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "event-manager",
   "name": "Event Manager",
   "function": "other",
   "family": "other",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "interior-designer",
   "name": "Interior Designer",
   "function": "architecture",
   "family": "architecture",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "lab-technician",
   "name": "Lab Technician / Research Assistant",
   "function": "research",
   "family": "research",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "pharma-qa",
   "name": "Pharma QA / QC Analyst",
   "function": "pharma",
   "family": "pharma",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "pilot",
   "name": "Pilot",
   "function": "other",
   "family": "other",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "property-manager",
   "name": "Property / Facility Manager",
   "function": "real-estate",
   "family": "real-estate",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "quantity-surveyor",
   "name": "Quantity Surveyor / Estimator",
   "function": "construction",
   "family": "construction",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "regulatory-affairs",
   "name": "Regulatory Affairs Specialist",
   "function": "pharma",
   "family": "pharma",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "safety-officer",
   "name": "Safety Officer (EHS)",
   "function": "construction",
   "family": "construction",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "social-worker",
   "name": "Social Worker / NGO Professional",
   "function": "other",
   "family": "other",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "strategy-analyst",
   "name": "Strategy / Corporate Strategy Analyst",
   "function": "consulting",
   "family": "management-consulting",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "technical-support-specialist",
   "name": "Technical Support Specialist",
   "function": "customer-support",
   "family": "support",
   "tier": 2,
   "coverage": "INSUFFICIENT",
   "score": 12,
   "why": [
    "medium relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "accounts-payable-receivable",
   "name": "Accounts Payable / Receivable Specialist",
   "function": "finance-accounting",
   "family": "accounting",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "office-administrator",
   "name": "Administration / Office Manager",
   "function": "operations",
   "family": "business-operations",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "ai-researcher",
   "name": "AI / ML Research Scientist",
   "function": "ai-ml",
   "family": "machine-learning",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "allied-health",
   "name": "Allied Health / Paramedical",
   "function": "healthcare",
   "family": "clinical",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "analytics-manager",
   "name": "Analytics Manager",
   "function": "data-analytics",
   "family": "analytics",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "audit-manager",
   "name": "Audit Manager",
   "function": "finance-accounting",
   "family": "audit",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "automotive-engineer",
   "name": "Automotive Engineer",
   "function": "engineering-core",
   "family": "mechanical",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "banking-operations",
   "name": "Banking Operations Analyst",
   "function": "banking",
   "family": "fintech-ops",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "cabin-crew",
   "name": "Cabin Crew / Airline Staff",
   "function": "hospitality",
   "family": "hotel",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "chemical-engineer",
   "name": "Chemical / Process Engineer",
   "function": "engineering-core",
   "family": "chemical",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "claims-manager",
   "name": "Claims Manager / Adjuster",
   "function": "insurance",
   "family": "insurance",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "content-manager",
   "name": "Content / Editorial Manager",
   "function": "content",
   "family": "content",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "corporate-banker",
   "name": "Corporate / Commercial Banker",
   "function": "banking",
   "family": "corporate-banking",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "corporate-finance-analyst",
   "name": "Corporate Finance / M&A Analyst",
   "function": "finance-accounting",
   "family": "treasury",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "dentist",
   "name": "Dentist",
   "function": "healthcare",
   "family": "clinical",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "product-director",
   "name": "Director / Head of Product",
   "function": "product",
   "family": "product-management",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "ecommerce-manager",
   "name": "E-commerce / Marketplace Manager",
   "function": "retail",
   "family": "retail",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "edtech-instructor",
   "name": "EdTech Instructor / Curriculum Designer",
   "function": "education",
   "family": "teaching",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "engineering-manager",
   "name": "Engineering Manager",
   "function": "technology",
   "family": "software-engineering",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "finance-director",
   "name": "Finance Director / CFO",
   "function": "finance-accounting",
   "family": "fpa",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "financial-advisor",
   "name": "Financial Advisor / Planner",
   "function": "investment-markets",
   "family": "investment",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "financial-controller",
   "name": "Financial Controller",
   "function": "finance-accounting",
   "family": "accounting",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "fintech-product-ops",
   "name": "Fintech Product / Operations",
   "function": "banking",
   "family": "fintech-ops",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "front-office-executive",
   "name": "Front Office / Guest Relations",
   "function": "hospitality",
   "family": "hotel",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "portfolio-manager",
   "name": "Fund / Portfolio Manager",
   "function": "investment-markets",
   "family": "investment",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "genai-engineer",
   "name": "Generative AI / LLM Engineer",
   "function": "ai-ml",
   "family": "machine-learning",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "hr-head",
   "name": "Head / VP of HR",
   "function": "hr",
   "family": "hr-generalist",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "marketing-head",
   "name": "Head / VP of Marketing",
   "function": "marketing",
   "family": "brand-marketing",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "sales-head",
   "name": "Head / VP of Sales",
   "function": "sales",
   "family": "field-sales",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "hospital-administrator",
   "name": "Hospital Administrator",
   "function": "healthcare",
   "family": "healthcare-admin",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "implementation-consultant",
   "name": "Implementation / Onboarding Consultant",
   "function": "customer-success",
   "family": "customer-success",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "underwriter-insurance",
   "name": "Insurance Underwriter",
   "function": "insurance",
   "family": "insurance",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "internal-auditor",
   "name": "Internal Auditor",
   "function": "finance-accounting",
   "family": "audit",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "investment-banker",
   "name": "Investment Banking Analyst / Associate",
   "function": "banking",
   "family": "corporate-banking",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "it-project-manager",
   "name": "IT Project / Delivery Manager",
   "function": "technology",
   "family": "it-support",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "it-support-engineer",
   "name": "IT Support / Helpdesk Engineer",
   "function": "technology",
   "family": "it-support",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "maintenance-engineer",
   "name": "Maintenance Engineer",
   "function": "manufacturing",
   "family": "production",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "merchandiser",
   "name": "Merchandiser / Category Manager",
   "function": "retail",
   "family": "retail",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "mobile-engineer",
   "name": "Mobile Engineer",
   "function": "technology",
   "family": "software-engineering",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "performance-marketing-manager",
   "name": "Performance Marketing Manager",
   "function": "marketing",
   "family": "digital-marketing",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "pharmacist",
   "name": "Pharmacist",
   "function": "healthcare",
   "family": "clinical",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "physiotherapist",
   "name": "Physiotherapist",
   "function": "healthcare",
   "family": "clinical",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "presales-consultant",
   "name": "Pre-sales / Solutions Consultant",
   "function": "sales",
   "family": "inside-sales",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "producer",
   "name": "Producer / Broadcast Professional",
   "function": "media",
   "family": "journalism",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "product-analyst",
   "name": "Product Analyst",
   "function": "product",
   "family": "product-management",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "quality-manager",
   "name": "Quality Manager",
   "function": "quality",
   "family": "quality",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "quant-analyst",
   "name": "Quantitative Analyst",
   "function": "investment-markets",
   "family": "investment",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "risk-manager",
   "name": "Risk Manager",
   "function": "risk-compliance",
   "family": "risk",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "sap-consultant",
   "name": "SAP / ERP Consultant",
   "function": "technology",
   "family": "software-engineering",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "security-architect",
   "name": "Security Architect / CISO",
   "function": "cybersecurity",
   "family": "security",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "seo-specialist",
   "name": "SEO Specialist",
   "function": "marketing",
   "family": "digital-marketing",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "social-media-manager",
   "name": "Social Media Manager",
   "function": "marketing",
   "family": "digital-marketing",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "software-architect",
   "name": "Software Architect",
   "function": "technology",
   "family": "software-engineering",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "supply-chain-analyst",
   "name": "Supply Chain Analyst",
   "function": "supply-chain",
   "family": "supply-chain",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "ta-manager",
   "name": "Talent Acquisition Manager",
   "function": "hr",
   "family": "talent-acquisition",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "tax-manager",
   "name": "Tax Manager",
   "function": "finance-accounting",
   "family": "tax",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "trader",
   "name": "Trader / Dealer",
   "function": "investment-markets",
   "family": "investment",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "travel-consultant",
   "name": "Travel Consultant / Tour Manager",
   "function": "hospitality",
   "family": "hotel",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "wealth-manager",
   "name": "Wealth Manager / Private Banker",
   "function": "banking",
   "family": "retail-banking",
   "tier": 2,
   "coverage": "SIGNAL ONLY",
   "score": 9,
   "why": [
    "medium relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "design-lead",
   "name": "Design Lead / Head of Design",
   "function": "design",
   "family": "product-design",
   "tier": 3,
   "coverage": "INSUFFICIENT",
   "score": 6,
   "why": [
    "lower relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "librarian-archivist",
   "name": "Librarian / Information Specialist",
   "function": "other",
   "family": "other",
   "tier": 3,
   "coverage": "INSUFFICIENT",
   "score": 6,
   "why": [
    "lower relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "medical-writer",
   "name": "Medical Writer / Scientific Communications",
   "function": "pharma",
   "family": "pharma",
   "tier": 3,
   "coverage": "INSUFFICIENT",
   "score": 6,
   "why": [
    "lower relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "photographer",
   "name": "Photographer / Videographer",
   "function": "other",
   "family": "other",
   "tier": 3,
   "coverage": "INSUFFICIENT",
   "score": 6,
   "why": [
    "lower relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "production-chemist",
   "name": "Production / Formulation Chemist",
   "function": "pharma",
   "family": "pharma",
   "tier": 3,
   "coverage": "INSUFFICIENT",
   "score": 6,
   "why": [
    "lower relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "sports-fitness",
   "name": "Sports / Fitness Professional",
   "function": "other",
   "family": "other",
   "tier": 3,
   "coverage": "INSUFFICIENT",
   "score": 6,
   "why": [
    "lower relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "valuer",
   "name": "Valuer / Real Estate Analyst",
   "function": "real-estate",
   "family": "real-estate",
   "tier": 3,
   "coverage": "INSUFFICIENT",
   "score": 6,
   "why": [
    "lower relevance",
    "no evidence at all"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "aerospace-engineer",
   "name": "Aerospace Engineer",
   "function": "engineering-core",
   "family": "marine-aero",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "ai-product-manager",
   "name": "AI Product Manager",
   "function": "ai-ml",
   "family": "machine-learning",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "channel-sales-manager",
   "name": "Channel / Distribution Manager",
   "function": "sales",
   "family": "field-sales",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "compensation-benefits",
   "name": "Compensation & Benefits Specialist",
   "function": "hr",
   "family": "ld-comp",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "database-administrator",
   "name": "Database Administrator",
   "function": "technology",
   "family": "devops-cloud",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "embedded-engineer",
   "name": "Embedded Software Engineer",
   "function": "technology",
   "family": "software-engineering",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "finance-business-partner",
   "name": "Finance Business Partner",
   "function": "finance-accounting",
   "family": "fpa",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "forensic-accountant",
   "name": "Forensic Accountant",
   "function": "finance-accounting",
   "family": "audit",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "hr-operations",
   "name": "HR Operations / HRIS",
   "function": "hr",
   "family": "ld-comp",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "instrumentation-engineer",
   "name": "Instrumentation & Control Engineer",
   "function": "engineering-core",
   "family": "electrical",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "learning-development",
   "name": "Learning & Development Specialist",
   "function": "hr",
   "family": "ld-comp",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "marine-engineer",
   "name": "Marine Engineer",
   "function": "engineering-core",
   "family": "marine-aero",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "marketing-analyst",
   "name": "Marketing Analyst",
   "function": "marketing",
   "family": "digital-marketing",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "paralegal",
   "name": "Paralegal / Legal Executive",
   "function": "legal",
   "family": "legal",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "payroll-specialist",
   "name": "Payroll Specialist",
   "function": "finance-accounting",
   "family": "payroll",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "pr-manager",
   "name": "PR / Corporate Communications Manager",
   "function": "marketing",
   "family": "communications",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "private-equity-vc",
   "name": "Private Equity / VC Associate",
   "function": "investment-markets",
   "family": "investment",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "process-excellence",
   "name": "Process Excellence / Six Sigma",
   "function": "operations",
   "family": "business-operations",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "transfer-pricing-specialist",
   "name": "Transfer Pricing Specialist",
   "function": "finance-accounting",
   "family": "tax",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "treasury-analyst",
   "name": "Treasury Analyst",
   "function": "finance-accounting",
   "family": "treasury",
   "tier": 3,
   "coverage": "SIGNAL ONLY",
   "score": 5,
   "why": [
    "lower relevance",
    "demand signal exists, no salary level"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "accountant",
   "name": "Accountant",
   "function": "finance-accounting",
   "family": "accounting",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "actuary",
   "name": "Actuary / Actuarial Analyst",
   "function": "insurance",
   "family": "insurance",
   "tier": 2,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "medium relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "audit-associate",
   "name": "Audit Associate",
   "function": "finance-accounting",
   "family": "audit",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "bank-officer",
   "name": "Bank Officer / Relationship Manager",
   "function": "banking",
   "family": "retail-banking",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "chartered-accountant",
   "name": "Chartered Accountant",
   "function": "finance-accounting",
   "family": "accounting",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "ca-newly-qualified",
   "name": "Chartered Accountant (newly qualified)",
   "function": "finance-accounting",
   "family": "accounting",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "civil-engineer",
   "name": "Civil Engineer",
   "function": "engineering-core",
   "family": "civil",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "company-secretary",
   "name": "Company Secretary",
   "function": "finance-accounting",
   "family": "accounting",
   "tier": 2,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "medium relevance",
    "covered"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "cost-accountant",
   "name": "Cost & Management Accountant",
   "function": "finance-accounting",
   "family": "accounting",
   "tier": 2,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "medium relevance",
    "covered"
   ],
   "candidate_sources": [
    "ICAI/ICSI/ICMAI placement releases",
    "PLFS occupation tables (microdata)"
   ]
  },
  {
   "role": "doctor-mbbs",
   "name": "Doctor (MBBS / Medical Officer)",
   "function": "healthcare",
   "family": "clinical",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "electrical-engineer",
   "name": "Electrical Engineer",
   "function": "engineering-core",
   "family": "electrical",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "electronics-engineer",
   "name": "Electronics / VLSI Engineer",
   "function": "engineering-core",
   "family": "electrical",
   "tier": 2,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "medium relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "hr-executive",
   "name": "HR Executive / Generalist",
   "function": "hr",
   "family": "hr-generalist",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "lawyer",
   "name": "Lawyer / Advocate",
   "function": "legal",
   "family": "legal",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "legal-counsel",
   "name": "Legal Counsel (in-house)",
   "function": "legal",
   "family": "legal",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "marketing-executive",
   "name": "Marketing Executive",
   "function": "marketing",
   "family": "brand-marketing",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "mechanical-engineer",
   "name": "Mechanical Engineer",
   "function": "engineering-core",
   "family": "mechanical",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "nurse",
   "name": "Nurse",
   "function": "healthcare",
   "family": "clinical",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "production-engineer",
   "name": "Production Engineer",
   "function": "manufacturing",
   "family": "production",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "professor",
   "name": "Professor / Lecturer",
   "function": "education",
   "family": "teaching",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "school-teacher",
   "name": "School Teacher",
   "function": "education",
   "family": "teaching",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "software-engineer",
   "name": "Software Engineer",
   "function": "technology",
   "family": "software-engineering",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "specialist-doctor",
   "name": "Specialist Doctor / Consultant",
   "function": "healthcare",
   "family": "clinical",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "statistician",
   "name": "Statistician / Biostatistician",
   "function": "data-analytics",
   "family": "analytics",
   "tier": 3,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "lower relevance",
    "covered"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "system-administrator",
   "name": "System / Network Administrator",
   "function": "technology",
   "family": "devops-cloud",
   "tier": 2,
   "coverage": "VERIFIED",
   "score": 1,
   "why": [
    "medium relevance",
    "covered"
   ],
   "candidate_sources": [
    "NASSCOM/industry reports with stated methodology",
    "Institute placement reports (audited)",
    "PLFS occupation tables"
   ]
  },
  {
   "role": "agriculture-professional",
   "name": "Agriculture / Agronomist",
   "function": "other",
   "family": "other",
   "tier": 2,
   "coverage": "VERIFIED",
   "score": 0,
   "why": [
    "medium relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "defence-officer",
   "name": "Defence Officer",
   "function": "government",
   "family": "civil-services",
   "tier": 2,
   "coverage": "VERIFIED",
   "score": 0,
   "why": [
    "medium relevance",
    "covered"
   ],
   "candidate_sources": [
    "Pay Commission scales (official)",
    "PSU recruitment notifications (official CTC)"
   ]
  },
  {
   "role": "government-clerk",
   "name": "Government Clerk / Assistant",
   "function": "government",
   "family": "civil-services",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 0,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "Pay Commission scales (official)",
    "PSU recruitment notifications (official CTC)"
   ]
  },
  {
   "role": "policy-researcher",
   "name": "Policy / Economic Researcher",
   "function": "research",
   "family": "research",
   "tier": 3,
   "coverage": "VERIFIED",
   "score": 0,
   "why": [
    "lower relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "psu-officer",
   "name": "PSU Officer / Management Trainee",
   "function": "government",
   "family": "civil-services",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 0,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "Pay Commission scales (official)",
    "PSU recruitment notifications (official CTC)"
   ]
  },
  {
   "role": "public-sector-bank",
   "name": "Public Sector Bank Officer / Clerk",
   "function": "government",
   "family": "civil-services",
   "tier": 1,
   "coverage": "VERIFIED",
   "score": 0,
   "why": [
    "high employment relevance",
    "covered"
   ],
   "candidate_sources": [
    "Pay Commission scales (official)",
    "PSU recruitment notifications (official CTC)"
   ]
  },
  {
   "role": "research-scientist",
   "name": "Research Scientist",
   "function": "research",
   "family": "research",
   "tier": 2,
   "coverage": "VERIFIED",
   "score": 0,
   "why": [
    "medium relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  },
  {
   "role": "translator",
   "name": "Translator / Interpreter / Language Specialist",
   "function": "other",
   "family": "other",
   "tier": 3,
   "coverage": "VERIFIED",
   "score": 0,
   "why": [
    "lower relevance",
    "covered"
   ],
   "candidate_sources": [
    "PLFS occupation tables (microdata)",
    "Institute placement reports (audited)",
    "Employer/industry reports with stated methodology"
   ]
  }
 ],
 "dimensions": {
  "accountant": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-05-21",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ssc-2026-accountant",
      "source": "ssc-goi",
      "raw": "raw/ssc-2026/cgl-chsl-notices.json → posts.accountant_junior_accountant.start",
      "effective_date": "2026-05-21"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "accounts-payable-receivable": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "financial-controller": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "chartered-accountant": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2025-08-16",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "lic-2025-aao-ca",
      "source": "lic-careers",
      "raw": "raw/lic-2025/aao-specialist-ae-32nd-batch.json → scale.start",
      "effective_date": "2025-08-16"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "ca-newly-qualified": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 6,
    "bands": [
     "entry"
    ],
    "latest": "2026-05-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_types": [
     "salary-benchmark"
    ],
    "sources": [
     {
      "id": "bntw-icai-65",
      "name": "Business News This Week: ICAI to organise 65th campus placement programme (quotes the April–May 2026 season outcomes)",
      "url": "https://businessnewsthisweek.com/education/icai-to-organise-65th-campus-placement-programme-for-newly-qualified-chartered-accountants-across-29-centres/",
      "evidence_type": "salary-benchmark"
     },
     {
      "id": "careers360-icai-60",
      "name": "Careers360: ICAI 60th campus placement ends, highest domestic package at Rs 26.70 lakh",
      "url": "https://news.careers360.com/icai-60th-campus-placement-ends-highest-domestic-package-at-rs-26-70-lakh-per-annum",
      "evidence_type": "salary-benchmark"
     },
     {
      "id": "careers360-icai-2023",
      "name": "Careers360: ICAI campus placement — over 9,000 take part, highest salary Rs 41 lakh",
      "url": "https://news.careers360.com/icai-ca-jobs-placement-salary-41-lakh-foundation-intermediate-final-chartered-accountant-new-scheme-registration",
      "evidence_type": "salary-benchmark"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "icai-2026-mean",
      "source": "bntw-icai-65",
      "raw": "raw/icai/placements.json → seasons[2].average_lpa",
      "effective_date": "2026-05-31"
     },
     {
      "stage": "observation",
      "id": "icai-2026-max",
      "source": "bntw-icai-65",
      "raw": "raw/icai/placements.json → seasons[2].highest_domestic_lpa",
      "effective_date": "2026-05-31"
     },
     {
      "stage": "observation",
      "id": "icai-60-mean",
      "source": "careers360-icai-60",
      "raw": "raw/icai/placements.json → seasons[1].average_lpa",
      "effective_date": "2024-12-28"
     },
     {
      "stage": "observation",
      "id": "icai-60-max",
      "source": "careers360-icai-60",
      "raw": "raw/icai/placements.json → seasons[1].highest_domestic_lpa",
      "effective_date": "2024-12-28"
     },
     {
      "stage": "observation",
      "id": "icai-2023-mean",
      "source": "careers360-icai-2023",
      "raw": "raw/icai/placements.json → seasons[0].average_lpa",
      "effective_date": "2024-02-21"
     },
     {
      "stage": "observation",
      "id": "icai-2023-max",
      "source": "careers360-icai-2023",
      "raw": "raw/icai/placements.json → seasons[0].highest_domestic_lpa",
      "effective_date": "2024-02-21"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "applied to the salary figure",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "cost-accountant": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-01-13",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ntpc-careers",
      "name": "NTPC Limited — recruitment advertisements 01/26 (Executive Trainee Finance), 15/25 (Assistant Law Officer), 10/25 (Deputy Manager)",
      "url": "https://careers.ntpc.co.in/recruitment/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ntpc-2026-et-finance-cma",
      "source": "ntpc-careers",
      "raw": "raw/ntpc-2025-26/advertisements.json → grades.e1_start",
      "effective_date": "2026-01-13"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "company-secretary": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 2,
    "bands": [
     "entry"
    ],
    "latest": "2026-05-05",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
      "evidence_type": "employer-data"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "url": "https://www.coalindia.in/career-cil/jobs-coal-india/recruitment-of-management-trainee-through-computer-based-test-cbt-26/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "lic-2025-aao-cs",
      "source": "lic-careers",
      "raw": "raw/lic-2025/aao-specialist-ae-32nd-batch.json → scale.start",
      "effective_date": "2025-08-16"
     },
     {
      "stage": "observation",
      "id": "cil-2026-mt-cs",
      "source": "cil-careers",
      "raw": "raw/cil-2026/mt-cbt-26-advt-03-2026.json → e1.start",
      "effective_date": "2026-05-05"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "financial-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "finance-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "finance-director": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "finance-business-partner": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "tax-consultant": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "tax-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "transfer-pricing-specialist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "audit-associate": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-05-21",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ssc-2026-auditor",
      "source": "ssc-goi",
      "raw": "raw/ssc-2026/cgl-chsl-notices.json → posts.auditor.start",
      "effective_date": "2026-05-21"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "audit-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "internal-auditor": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "forensic-accountant": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "treasury-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "corporate-finance-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "payroll-specialist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "accounting-finance",
      "yoy": 0.14,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.accounting-finance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "direct-tax",
      "name": "Direct tax",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "fpa",
      "name": "FP&A / budgeting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "gst",
      "name": "GST compliance",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "ind-as",
      "name": "Ind AS / IFRS reporting",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Finance & Accounting",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Finance & Accounting",
      "signal": null
     }
    ],
    "count": 9,
    "with_signal": 8,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "direct-tax",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "fpa",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "gst",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "ind-as",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "regular-salaried-all": {
   "salary": {
    "state": "VERIFIED",
    "grade": "HIGH",
    "observations": 2,
    "bands": [
     "any"
    ],
    "latest": "2025-12-31",
    "freshness": "fresh",
    "confidence": 0.85,
    "evidence_types": [
     "government-earnings"
    ],
    "sources": [
     {
      "id": "mospi-plfs-2023-24",
      "name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
      "url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
      "evidence_type": "government-earnings"
     },
     {
      "id": "mospi-plfs-2025",
      "name": "Periodic Labour Force Survey — Annual Report 2025 (January – December 2025), press note",
      "url": "https://www.mospi.gov.in/uploads/latestReleases/latest_release_1774607827733_3e8964a9-268b-4cc9-ad65-cfc8a9e32f08_Press_note_AR_PLFS_2025_23032025_V2.1_26032026_final.pdf",
      "evidence_type": "government-earnings"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "plfs-2324-urban-mean",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json → rows['all India'][5]",
      "effective_date": "2024-06-30"
     },
     {
      "stage": "observation",
      "id": "plfs-2025-male-mean",
      "source": "mospi-plfs-2025",
      "raw": "raw/mospi-plfs-2025/press-note-earnings.json → regular_wage_monthly_earnings['2025'].male",
      "effective_date": "2025-12-31"
     }
    ]
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "mba-graduate-iim-a": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 3,
    "bands": [
     "entry"
    ],
    "latest": "2026-09-03",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_types": [
     "salary-benchmark"
    ],
    "sources": [
     {
      "id": "campusutra-iim-a-2026",
      "name": "Campusutra: IIM Ahmedabad releases audited final placement report 2026",
      "url": "https://campusutra.com/iim-ahmedabad-audited-final-placement-report-2026/",
      "evidence_type": "salary-benchmark"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "iim-a-2026-median",
      "source": "campusutra-iim-a-2026",
      "raw": "raw/iim-a-2026/press-report.json → median_domestic_mep_lpa",
      "effective_date": "2026-09-03"
     },
     {
      "stage": "observation",
      "id": "iim-a-2026-mean",
      "source": "campusutra-iim-a-2026",
      "raw": "raw/iim-a-2026/press-report.json → mean_domestic_mep_lpa",
      "effective_date": "2026-09-03"
     },
     {
      "stage": "observation",
      "id": "iim-a-2026-max",
      "source": "campusutra-iim-a-2026",
      "raw": "raw/iim-a-2026/press-report.json → highest_domestic_mep_lpa",
      "effective_date": "2026-09-03"
     }
    ]
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "software-engineer": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 2,
    "bands": [
     "entry",
     "early"
    ],
    "latest": "2026-02-18",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "tcs-careers",
      "name": "Tata Consultancy Services — TCS All India NQT Hiring page (Batch of 2026, 2025, 2024)",
      "url": "https://www.tcs.com/careers/india/tcs-all-india-nqt-hiring",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "tcs-2026-digital-ug",
      "source": "tcs-careers",
      "raw": "raw/tcs-nqt-2026/hiring-page.json → bands_lpa.digital_ug_0_1[0]",
      "effective_date": "2026-02-18"
     },
     {
      "stage": "observation",
      "id": "tcs-2026-digital-ug-1-2",
      "source": "tcs-careers",
      "raw": "raw/tcs-nqt-2026/hiring-page.json → bands_lpa.digital_ug_1_2[0]",
      "effective_date": "2026-02-18"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "backend-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "frontend-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "full-stack-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "mobile-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "engineering-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "software-architect": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "sap-consultant": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "embedded-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "qa-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "devops-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "cloud-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "system-administrator": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-05-05",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "url": "https://www.coalindia.in/career-cil/jobs-coal-india/recruitment-of-management-trainee-through-computer-based-test-cbt-26/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "cil-2026-mt-system",
      "source": "cil-careers",
      "raw": "raw/cil-2026/mt-cbt-26-advt-03-2026.json → e1.start",
      "effective_date": "2026-05-05"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "database-administrator": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "it-support-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "it-project-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "business-analyst-it": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     },
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "devops-kubernetes",
      "name": "DevOps / Kubernetes / CI-CD",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "java",
      "name": "Java / JVM",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "javascript",
      "name": "JavaScript / TypeScript",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Technology & Software",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 10,
    "with_signal": 10,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "devops-kubernetes",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "java",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "javascript",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "data-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "machine-learning",
      "name": "Machine learning",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "statistics-ab-testing",
      "name": "Statistics & experimentation",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 6,
    "with_signal": 6,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "machine-learning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "statistics-ab-testing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "data-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "machine-learning",
      "name": "Machine learning",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "statistics-ab-testing",
      "name": "Statistics & experimentation",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 6,
    "with_signal": 6,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "machine-learning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "statistics-ab-testing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "data-scientist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "machine-learning",
      "name": "Machine learning",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "statistics-ab-testing",
      "name": "Statistics & experimentation",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 6,
    "with_signal": 6,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "machine-learning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "statistics-ab-testing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "analytics-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "machine-learning",
      "name": "Machine learning",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "statistics-ab-testing",
      "name": "Statistics & experimentation",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 6,
    "with_signal": 6,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "machine-learning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "statistics-ab-testing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "statistician": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 2,
    "bands": [
     "entry"
    ],
    "latest": "2026-05-21",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "rbi-grade-b",
      "name": "Reserve Bank of India — Officers in Grade B (DR) recruitment",
      "url": "https://rbidocs.rbi.org.in/rdocs/Content/PDFs/DEPR29042026BE94DEA85E3C4753A82B191EB6A795ED.PDF",
      "evidence_type": "employer-data"
     },
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "rbi-2026-grade-b-dsim",
      "source": "rbi-grade-b",
      "raw": "raw/rbi-2026/grade-b-dr-2026.json → grade_b.start",
      "effective_date": "2026-04-29"
     },
     {
      "stage": "observation",
      "id": "ssc-2026-jso",
      "source": "ssc-goi",
      "raw": "raw/ssc-2026/cgl-2026-jso.json → posts.junior_statistical_officer.start",
      "effective_date": "2026-05-21"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "machine-learning",
      "name": "Machine learning",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "power-bi",
      "name": "Power BI / SQL / analytics",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "statistics-ab-testing",
      "name": "Statistics & experimentation",
      "relevance": "core to Data & Analytics",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 6,
    "with_signal": 6,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "machine-learning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "power-bi",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "statistics-ab-testing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "ml-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "ai-ml",
      "yoy": 0.31,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.ai-ml"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "machine-learning",
      "name": "Machine learning",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 5,
    "with_signal": 5,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "machine-learning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "ai-researcher": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "ai-ml",
      "yoy": 0.31,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.ai-ml"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "machine-learning",
      "name": "Machine learning",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 5,
    "with_signal": 5,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "machine-learning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "genai-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "ai-ml",
      "yoy": 0.31,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.ai-ml"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "machine-learning",
      "name": "Machine learning",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 5,
    "with_signal": 5,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "machine-learning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "ai-product-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "ai-ml",
      "yoy": 0.31,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.ai-ml"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "machine-learning",
      "name": "Machine learning",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "data-engineering",
      "name": "Data engineering (Spark, pipelines)",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "python",
      "name": "Python",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "sql",
      "name": "SQL & databases",
      "relevance": "core to AI / ML",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 5,
    "with_signal": 5,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "machine-learning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "data-engineering",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "python",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "sql",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "product-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Product",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "product-analytics",
      "name": "Product analytics & roadmapping",
      "relevance": "core to Product",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Product",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "statistics-ab-testing",
      "name": "Statistics & experimentation",
      "relevance": "core to Product",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "ux-research-figma",
      "name": "UX research & Figma",
      "relevance": "core to Product",
      "signal": null
     }
    ],
    "count": 5,
    "with_signal": 4,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "product-analytics",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "statistics-ab-testing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "product-director": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Product",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "product-analytics",
      "name": "Product analytics & roadmapping",
      "relevance": "core to Product",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Product",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "statistics-ab-testing",
      "name": "Statistics & experimentation",
      "relevance": "core to Product",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "ux-research-figma",
      "name": "UX research & Figma",
      "relevance": "core to Product",
      "signal": null
     }
    ],
    "count": 5,
    "with_signal": 4,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "product-analytics",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "statistics-ab-testing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "product-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "generative-ai-llm",
      "name": "Generative AI / LLM engineering",
      "relevance": "core to Product",
      "signal": {
       "tag": "ai-ml",
       "yoy": 0.31,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.ai-ml"
       }
      }
     },
     {
      "id": "product-analytics",
      "name": "Product analytics & roadmapping",
      "relevance": "core to Product",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Product",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "statistics-ab-testing",
      "name": "Statistics & experimentation",
      "relevance": "core to Product",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "ux-research-figma",
      "name": "UX research & Figma",
      "relevance": "core to Product",
      "signal": null
     }
    ],
    "count": 5,
    "with_signal": 4,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "generative-ai-llm",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.ai-ml",
      "value": 0.31
     },
     {
      "stage": "observation",
      "skill": "product-analytics",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "statistics-ab-testing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "mechanical-engineer": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 2,
    "bands": [
     "entry"
    ],
    "latest": "2026-09-02",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
      "evidence_type": "employer-data"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "url": "https://www.coalindia.in/career-cil/jobs-coal-india/recruitment-of-management-trainee-through-computer-based-test-cbt-26/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ssc-je-2026-mechanical",
      "source": "ssc-goi",
      "raw": "raw/ssc-2026/je-2026-notice.json → posts.junior_engineer.start",
      "effective_date": "2026-09-02"
     },
     {
      "stage": "observation",
      "id": "cil-2026-mt-mechanical",
      "source": "cil-careers",
      "raw": "raw/cil-2026/mt-cbt-26-advt-03-2026.json → e1.start",
      "effective_date": "2026-05-05"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Engineering (core)",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Engineering (core)",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "automotive-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Engineering (core)",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Engineering (core)",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "electrical-engineer": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 3,
    "bands": [
     "entry",
     "early"
    ],
    "latest": "2026-09-02",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
      "evidence_type": "employer-data"
     },
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
      "evidence_type": "employer-data"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "url": "https://www.coalindia.in/career-cil/jobs-coal-india/recruitment-of-management-trainee-through-computer-based-test-cbt-26/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ssc-je-2026-electrical",
      "source": "ssc-goi",
      "raw": "raw/ssc-2026/je-2026-notice.json → posts.junior_engineer.start",
      "effective_date": "2026-09-02"
     },
     {
      "stage": "observation",
      "id": "lic-2025-ae-electrical",
      "source": "lic-careers",
      "raw": "raw/lic-2025/aao-specialist-ae-32nd-batch.json → scale.start",
      "effective_date": "2025-08-16"
     },
     {
      "stage": "observation",
      "id": "cil-2026-mt-electrical",
      "source": "cil-careers",
      "raw": "raw/cil-2026/mt-cbt-26-advt-03-2026.json → e1.start",
      "effective_date": "2026-05-05"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Engineering (core)",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Engineering (core)",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "electronics-engineer": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 2,
    "bands": [
     "entry"
    ],
    "latest": "2026-09-02",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
      "evidence_type": "employer-data"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "url": "https://www.coalindia.in/career-cil/jobs-coal-india/recruitment-of-management-trainee-through-computer-based-test-cbt-26/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ssc-je-2026-telecom",
      "source": "ssc-goi",
      "raw": "raw/ssc-2026/je-2026-notice.json → posts.junior_engineer.start",
      "effective_date": "2026-09-02"
     },
     {
      "stage": "observation",
      "id": "cil-2026-mt-et",
      "source": "cil-careers",
      "raw": "raw/cil-2026/mt-cbt-26-advt-03-2026.json → e1.start",
      "effective_date": "2026-05-05"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Engineering (core)",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Engineering (core)",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "instrumentation-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Engineering (core)",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Engineering (core)",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "civil-engineer": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 3,
    "bands": [
     "entry",
     "early"
    ],
    "latest": "2026-09-02",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
      "evidence_type": "employer-data"
     },
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
      "evidence_type": "employer-data"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "url": "https://www.coalindia.in/career-cil/jobs-coal-india/recruitment-of-management-trainee-through-computer-based-test-cbt-26/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ssc-je-2026-civil",
      "source": "ssc-goi",
      "raw": "raw/ssc-2026/je-2026-notice.json → posts.junior_engineer.start",
      "effective_date": "2026-09-02"
     },
     {
      "stage": "observation",
      "id": "lic-2025-ae-civil",
      "source": "lic-careers",
      "raw": "raw/lic-2025/aao-specialist-ae-32nd-batch.json → scale.start",
      "effective_date": "2025-08-16"
     },
     {
      "stage": "observation",
      "id": "cil-2026-mt-civil",
      "source": "cil-careers",
      "raw": "raw/cil-2026/mt-cbt-26-advt-03-2026.json → e1.start",
      "effective_date": "2026-05-05"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Engineering (core)",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Engineering (core)",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "chemical-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Engineering (core)",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Engineering (core)",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "marine-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Engineering (core)",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Engineering (core)",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "aerospace-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Engineering (core)",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Engineering (core)",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "sales-executive": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     },
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     },
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "crm-salesforce",
      "name": "CRM (Salesforce / HubSpot)",
      "relevance": "core to Sales",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "b2b-sales",
      "name": "B2B / enterprise sales",
      "relevance": "core to Sales",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "crm-salesforce",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "b2b-sales",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "sales-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     },
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     },
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "crm-salesforce",
      "name": "CRM (Salesforce / HubSpot)",
      "relevance": "core to Sales",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "b2b-sales",
      "name": "B2B / enterprise sales",
      "relevance": "core to Sales",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "crm-salesforce",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "b2b-sales",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "sales-head": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     },
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     },
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "crm-salesforce",
      "name": "CRM (Salesforce / HubSpot)",
      "relevance": "core to Sales",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "b2b-sales",
      "name": "B2B / enterprise sales",
      "relevance": "core to Sales",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "crm-salesforce",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "b2b-sales",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "channel-sales-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     },
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     },
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "crm-salesforce",
      "name": "CRM (Salesforce / HubSpot)",
      "relevance": "core to Sales",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "b2b-sales",
      "name": "B2B / enterprise sales",
      "relevance": "core to Sales",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "crm-salesforce",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "b2b-sales",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "inside-sales-executive": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     },
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     },
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "crm-salesforce",
      "name": "CRM (Salesforce / HubSpot)",
      "relevance": "core to Sales",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "b2b-sales",
      "name": "B2B / enterprise sales",
      "relevance": "core to Sales",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "crm-salesforce",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "b2b-sales",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "presales-consultant": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     },
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     },
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "crm-salesforce",
      "name": "CRM (Salesforce / HubSpot)",
      "relevance": "core to Sales",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "b2b-sales",
      "name": "B2B / enterprise sales",
      "relevance": "core to Sales",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "crm-salesforce",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "b2b-sales",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "account-executive": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     },
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     },
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "crm-salesforce",
      "name": "CRM (Salesforce / HubSpot)",
      "relevance": "core to Sales",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "b2b-sales",
      "name": "B2B / enterprise sales",
      "relevance": "core to Sales",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "crm-salesforce",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "b2b-sales",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "business-development-executive": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "crm-salesforce",
      "name": "CRM (Salesforce / HubSpot)",
      "relevance": "core to Business Development",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "b2b-sales",
      "name": "B2B / enterprise sales",
      "relevance": "core to Business Development",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "crm-salesforce",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "b2b-sales",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "business-development-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "crm-salesforce",
      "name": "CRM (Salesforce / HubSpot)",
      "relevance": "core to Business Development",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     },
     {
      "id": "b2b-sales",
      "name": "B2B / enterprise sales",
      "relevance": "core to Business Development",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "crm-salesforce",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     },
     {
      "stage": "observation",
      "skill": "b2b-sales",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "marketing-executive": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-06-30",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ibps-so",
      "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
      "url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification-CRP-SPL-XVI_Final_V1_30.06.2026.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ibps-so-2026-marketing",
      "source": "ibps-so",
      "raw": "raw/ibps-so-2026/spl-xvi.json → scale_i.start",
      "effective_date": "2026-06-30"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "digital-marketing",
      "name": "Digital marketing (SEO / SEM / paid)",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "digital-marketing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "marketing-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "digital-marketing",
      "name": "Digital marketing (SEO / SEM / paid)",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "digital-marketing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "marketing-head": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "digital-marketing",
      "name": "Digital marketing (SEO / SEM / paid)",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "digital-marketing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "digital-marketing-specialist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "digital-marketing",
      "name": "Digital marketing (SEO / SEM / paid)",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "digital-marketing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "performance-marketing-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "digital-marketing",
      "name": "Digital marketing (SEO / SEM / paid)",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "digital-marketing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "seo-specialist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "digital-marketing",
      "name": "Digital marketing (SEO / SEM / paid)",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "digital-marketing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "social-media-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "digital-marketing",
      "name": "Digital marketing (SEO / SEM / paid)",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "digital-marketing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "marketing-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "digital-marketing",
      "name": "Digital marketing (SEO / SEM / paid)",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "digital-marketing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "pr-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "digital-marketing",
      "name": "Digital marketing (SEO / SEM / paid)",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Marketing",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "digital-marketing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "hr-executive": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-06-30",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ibps-so",
      "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
      "url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification-CRP-SPL-XVI_Final_V1_30.06.2026.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ibps-so-2026-hr",
      "source": "ibps-so",
      "raw": "raw/ibps-so-2026/spl-xvi.json → scale_i.start",
      "effective_date": "2026-06-30"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "recruitment",
      "yoy": 1.09,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.recruitment"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hr-analytics-payroll",
      "name": "HR analytics, payroll & compliance",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     },
     {
      "id": "talent-acquisition",
      "name": "Talent acquisition",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hr-analytics-payroll",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     },
     {
      "stage": "observation",
      "skill": "talent-acquisition",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "hr-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "recruitment",
      "yoy": 1.09,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.recruitment"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hr-analytics-payroll",
      "name": "HR analytics, payroll & compliance",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     },
     {
      "id": "talent-acquisition",
      "name": "Talent acquisition",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hr-analytics-payroll",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     },
     {
      "stage": "observation",
      "skill": "talent-acquisition",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "hr-head": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "recruitment",
      "yoy": 1.09,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.recruitment"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hr-analytics-payroll",
      "name": "HR analytics, payroll & compliance",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     },
     {
      "id": "talent-acquisition",
      "name": "Talent acquisition",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hr-analytics-payroll",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     },
     {
      "stage": "observation",
      "skill": "talent-acquisition",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "recruiter": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "recruitment",
      "yoy": 1.09,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.recruitment"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hr-analytics-payroll",
      "name": "HR analytics, payroll & compliance",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     },
     {
      "id": "talent-acquisition",
      "name": "Talent acquisition",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hr-analytics-payroll",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     },
     {
      "stage": "observation",
      "skill": "talent-acquisition",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "ta-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "recruitment",
      "yoy": 1.09,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.recruitment"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hr-analytics-payroll",
      "name": "HR analytics, payroll & compliance",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     },
     {
      "id": "talent-acquisition",
      "name": "Talent acquisition",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hr-analytics-payroll",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     },
     {
      "stage": "observation",
      "skill": "talent-acquisition",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "learning-development": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "recruitment",
      "yoy": 1.09,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.recruitment"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hr-analytics-payroll",
      "name": "HR analytics, payroll & compliance",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     },
     {
      "id": "talent-acquisition",
      "name": "Talent acquisition",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hr-analytics-payroll",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     },
     {
      "stage": "observation",
      "skill": "talent-acquisition",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "compensation-benefits": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "recruitment",
      "yoy": 1.09,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.recruitment"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hr-analytics-payroll",
      "name": "HR analytics, payroll & compliance",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     },
     {
      "id": "talent-acquisition",
      "name": "Talent acquisition",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hr-analytics-payroll",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     },
     {
      "stage": "observation",
      "skill": "talent-acquisition",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "hr-operations": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "recruitment",
      "yoy": 1.09,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.recruitment"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hr-analytics-payroll",
      "name": "HR analytics, payroll & compliance",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     },
     {
      "id": "talent-acquisition",
      "name": "Talent acquisition",
      "relevance": "core to Human Resources",
      "signal": {
       "tag": "recruitment",
       "yoy": 1.09,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.recruitment"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hr-analytics-payroll",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     },
     {
      "stage": "observation",
      "skill": "talent-acquisition",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.recruitment",
      "value": 1.09
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "operations-executive": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "lean-six-sigma",
      "name": "Lean / Six Sigma",
      "relevance": "core to Operations",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "supply-chain-planning",
      "name": "Supply-chain planning & logistics",
      "relevance": "core to Operations",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Operations",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Operations",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 4,
    "with_signal": 4,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "lean-six-sigma",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     },
     {
      "stage": "observation",
      "skill": "supply-chain-planning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "operations-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "lean-six-sigma",
      "name": "Lean / Six Sigma",
      "relevance": "core to Operations",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "supply-chain-planning",
      "name": "Supply-chain planning & logistics",
      "relevance": "core to Operations",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Operations",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Operations",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 4,
    "with_signal": 4,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "lean-six-sigma",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     },
     {
      "stage": "observation",
      "skill": "supply-chain-planning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "process-excellence": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "lean-six-sigma",
      "name": "Lean / Six Sigma",
      "relevance": "core to Operations",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "supply-chain-planning",
      "name": "Supply-chain planning & logistics",
      "relevance": "core to Operations",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Operations",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Operations",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 4,
    "with_signal": 4,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "lean-six-sigma",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     },
     {
      "stage": "observation",
      "skill": "supply-chain-planning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "project-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "lean-six-sigma",
      "name": "Lean / Six Sigma",
      "relevance": "core to Operations",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "supply-chain-planning",
      "name": "Supply-chain planning & logistics",
      "relevance": "core to Operations",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Operations",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Operations",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 4,
    "with_signal": 4,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "lean-six-sigma",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     },
     {
      "stage": "observation",
      "skill": "supply-chain-planning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "office-administrator": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "lean-six-sigma",
      "name": "Lean / Six Sigma",
      "relevance": "core to Operations",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "supply-chain-planning",
      "name": "Supply-chain planning & logistics",
      "relevance": "core to Operations",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Operations",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Operations",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 4,
    "with_signal": 4,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "lean-six-sigma",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     },
     {
      "stage": "observation",
      "skill": "supply-chain-planning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "supply-chain-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "supply-chain-planning",
      "name": "Supply-chain planning & logistics",
      "relevance": "core to Supply Chain & Logistics",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Supply Chain & Logistics",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "supply-chain-planning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "supply-chain-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "supply-chain-planning",
      "name": "Supply-chain planning & logistics",
      "relevance": "core to Supply Chain & Logistics",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Supply Chain & Logistics",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "supply-chain-planning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "logistics-executive": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "supply-chain-planning",
      "name": "Supply-chain planning & logistics",
      "relevance": "core to Supply Chain & Logistics",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Supply Chain & Logistics",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "supply-chain-planning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "logistics-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "supply-chain-planning",
      "name": "Supply-chain planning & logistics",
      "relevance": "core to Supply Chain & Logistics",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     },
     {
      "id": "sap",
      "name": "SAP FICO / ERP",
      "relevance": "core to Supply Chain & Logistics",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "supply-chain-planning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     },
     {
      "stage": "observation",
      "skill": "sap",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "procurement-executive": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "supply-chain-planning",
      "name": "Supply-chain planning & logistics",
      "relevance": "core to Procurement",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "supply-chain-planning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "procurement-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "supply-chain-planning",
      "name": "Supply-chain planning & logistics",
      "relevance": "core to Procurement",
      "signal": {
       "tag": "retail",
       "yoy": 0.15,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.retail"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "supply-chain-planning",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "consultant": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Consulting & Strategy",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Consulting & Strategy",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "engagement-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Consulting & Strategy",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Consulting & Strategy",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "strategy-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Consulting & Strategy",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "project-management",
      "name": "Project management (PMP / Agile)",
      "relevance": "core to Consulting & Strategy",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "project-management",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "lawyer": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 2,
    "bands": [
     "entry"
    ],
    "latest": "2026-06-30",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ibps-so",
      "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
      "url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification-CRP-SPL-XVI_Final_V1_30.06.2026.pdf",
      "evidence_type": "employer-data"
     },
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ibps-so-2026-law",
      "source": "ibps-so",
      "raw": "raw/ibps-so-2026/spl-xvi.json → scale_i.start",
      "effective_date": "2026-06-30"
     },
     {
      "stage": "observation",
      "id": "lic-2025-aao-legal",
      "source": "lic-careers",
      "raw": "raw/lic-2025/aao-specialist-ae-32nd-batch.json → scale.start",
      "effective_date": "2025-08-16"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "legal",
      "yoy": -0.07,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.legal"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.legal",
      "value": -0.07
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "contract-drafting",
      "name": "Contract drafting & corporate law",
      "relevance": "core to Legal",
      "signal": {
       "tag": "legal",
       "yoy": -0.07,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.legal"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "contract-drafting",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.legal",
      "value": -0.07
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "legal-counsel": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2025-12-01",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ntpc-careers",
      "name": "NTPC Limited — recruitment advertisements 01/26 (Executive Trainee Finance), 15/25 (Assistant Law Officer), 10/25 (Deputy Manager)",
      "url": "https://careers.ntpc.co.in/recruitment/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ntpc-2025-alo-e0",
      "source": "ntpc-careers",
      "raw": "raw/ntpc-2025-26/advertisements.json → grades.e0_start",
      "effective_date": "2025-12-01"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "legal",
      "yoy": -0.07,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.legal"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.legal",
      "value": -0.07
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "contract-drafting",
      "name": "Contract drafting & corporate law",
      "relevance": "core to Legal",
      "signal": {
       "tag": "legal",
       "yoy": -0.07,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.legal"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "contract-drafting",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.legal",
      "value": -0.07
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "paralegal": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "legal",
      "yoy": -0.07,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.legal"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.legal",
      "value": -0.07
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "contract-drafting",
      "name": "Contract drafting & corporate law",
      "relevance": "core to Legal",
      "signal": {
       "tag": "legal",
       "yoy": -0.07,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.legal"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "contract-drafting",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.legal",
      "value": -0.07
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "risk-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     },
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "grc-iso27001",
      "name": "Governance, risk & compliance (ISO 27001, SOC 2)",
      "relevance": "core to Risk & Compliance",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "credit-analysis",
      "name": "Credit analysis & underwriting",
      "relevance": "core to Risk & Compliance",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "contract-drafting",
      "name": "Contract drafting & corporate law",
      "relevance": "core to Risk & Compliance",
      "signal": {
       "tag": "legal",
       "yoy": -0.07,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.legal"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Risk & Compliance",
      "signal": null
     }
    ],
    "count": 4,
    "with_signal": 3,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "grc-iso27001",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "credit-analysis",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "skill": "contract-drafting",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.legal",
      "value": -0.07
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "risk-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     },
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "grc-iso27001",
      "name": "Governance, risk & compliance (ISO 27001, SOC 2)",
      "relevance": "core to Risk & Compliance",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "credit-analysis",
      "name": "Credit analysis & underwriting",
      "relevance": "core to Risk & Compliance",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "contract-drafting",
      "name": "Contract drafting & corporate law",
      "relevance": "core to Risk & Compliance",
      "signal": {
       "tag": "legal",
       "yoy": -0.07,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.legal"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Risk & Compliance",
      "signal": null
     }
    ],
    "count": 4,
    "with_signal": 3,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "grc-iso27001",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "credit-analysis",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "skill": "contract-drafting",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.legal",
      "value": -0.07
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "compliance-officer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     },
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "grc-iso27001",
      "name": "Governance, risk & compliance (ISO 27001, SOC 2)",
      "relevance": "core to Risk & Compliance",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "credit-analysis",
      "name": "Credit analysis & underwriting",
      "relevance": "core to Risk & Compliance",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "contract-drafting",
      "name": "Contract drafting & corporate law",
      "relevance": "core to Risk & Compliance",
      "signal": {
       "tag": "legal",
       "yoy": -0.07,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.legal"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Risk & Compliance",
      "signal": null
     }
    ],
    "count": 4,
    "with_signal": 3,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "grc-iso27001",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "credit-analysis",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "skill": "contract-drafting",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.legal",
      "value": -0.07
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "security-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "grc-iso27001",
      "name": "Governance, risk & compliance (ISO 27001, SOC 2)",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "cybersecurity-ops",
      "name": "Security operations / SIEM",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 4,
    "with_signal": 4,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "grc-iso27001",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "cybersecurity-ops",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "security-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "grc-iso27001",
      "name": "Governance, risk & compliance (ISO 27001, SOC 2)",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "cybersecurity-ops",
      "name": "Security operations / SIEM",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 4,
    "with_signal": 4,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "grc-iso27001",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "cybersecurity-ops",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "security-architect": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-security",
      "yoy": 0.32,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-security"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "cloud-security",
      "name": "Cloud & application security",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "grc-iso27001",
      "name": "Governance, risk & compliance (ISO 27001, SOC 2)",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "cybersecurity-ops",
      "name": "Security operations / SIEM",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-security",
       "yoy": 0.32,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-security"
       }
      }
     },
     {
      "id": "cloud-aws-azure",
      "name": "Cloud (AWS / Azure / GCP)",
      "relevance": "core to Cybersecurity",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 4,
    "with_signal": 4,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "cloud-security",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "grc-iso27001",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "cybersecurity-ops",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-security",
      "value": 0.32
     },
     {
      "stage": "observation",
      "skill": "cloud-aws-azure",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "bank-officer": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-04-29",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "rbi-grade-b",
      "name": "Reserve Bank of India — Officers in Grade B (DR) recruitment",
      "url": "https://rbidocs.rbi.org.in/rdocs/Content/PDFs/DEPR29042026BE94DEA85E3C4753A82B191EB6A795ED.PDF",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "rbi-2026-grade-b-general",
      "source": "rbi-grade-b",
      "raw": "raw/rbi-2026/grade-b-dr-2026.json → grade_b.start",
      "effective_date": "2026-04-29"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "credit-analysis",
      "name": "Credit analysis & underwriting",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Banking",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "credit-analysis",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "credit-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "credit-analysis",
      "name": "Credit analysis & underwriting",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Banking",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "credit-analysis",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "wealth-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "credit-analysis",
      "name": "Credit analysis & underwriting",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Banking",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "credit-analysis",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "investment-banker": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "credit-analysis",
      "name": "Credit analysis & underwriting",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Banking",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "credit-analysis",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "corporate-banker": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "credit-analysis",
      "name": "Credit analysis & underwriting",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Banking",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "credit-analysis",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "banking-operations": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "credit-analysis",
      "name": "Credit analysis & underwriting",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Banking",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "credit-analysis",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "fintech-product-ops": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "credit-analysis",
      "name": "Credit analysis & underwriting",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "treasury",
      "name": "Treasury & cash management",
      "relevance": "core to Banking",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Banking",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "credit-analysis",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     },
     {
      "stage": "observation",
      "skill": "treasury",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "insurance-sales-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "insurance-underwriting",
      "name": "Insurance underwriting & claims",
      "relevance": "core to Insurance",
      "signal": {
       "tag": "insurance",
       "yoy": 0.12,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.insurance"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Insurance",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "insurance-underwriting",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "underwriter-insurance": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "insurance-underwriting",
      "name": "Insurance underwriting & claims",
      "relevance": "core to Insurance",
      "signal": {
       "tag": "insurance",
       "yoy": 0.12,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.insurance"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Insurance",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "insurance-underwriting",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "claims-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "insurance-underwriting",
      "name": "Insurance underwriting & claims",
      "relevance": "core to Insurance",
      "signal": {
       "tag": "insurance",
       "yoy": 0.12,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.insurance"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Insurance",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "insurance-underwriting",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "actuary": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2025-08-16",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "lic-careers",
      "name": "Life Insurance Corporation of India — Recruitment of AAO (Specialist) and Assistant Engineers, 32nd Batch, 2025",
      "url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "lic-2025-aao-actuarial",
      "source": "lic-careers",
      "raw": "raw/lic-2025/aao-specialist-ae-32nd-batch.json → scale.start",
      "effective_date": "2025-08-16"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "insurance",
      "yoy": 0.12,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.insurance"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "insurance-underwriting",
      "name": "Insurance underwriting & claims",
      "relevance": "core to Insurance",
      "signal": {
       "tag": "insurance",
       "yoy": 0.12,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.insurance"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Insurance",
      "signal": null
     }
    ],
    "count": 2,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "insurance-underwriting",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.insurance",
      "value": 0.12
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "equity-research-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "equity-research",
      "name": "Equity research & valuation",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Investment & Markets",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "equity-research",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "portfolio-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "equity-research",
      "name": "Equity research & valuation",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Investment & Markets",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "equity-research",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "trader": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "equity-research",
      "name": "Equity research & valuation",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Investment & Markets",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "equity-research",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "quant-analyst": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "equity-research",
      "name": "Equity research & valuation",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Investment & Markets",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "equity-research",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "financial-advisor": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "equity-research",
      "name": "Equity research & valuation",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Investment & Markets",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "equity-research",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "private-equity-vc": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "bfsi",
      "yoy": 0.1,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.bfsi"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "excel-modelling",
      "name": "Excel & financial modelling",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "accounting-finance",
       "yoy": 0.14,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.accounting-finance"
       }
      }
     },
     {
      "id": "equity-research",
      "name": "Equity research & valuation",
      "relevance": "core to Investment & Markets",
      "signal": {
       "tag": "bfsi",
       "yoy": 0.1,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.bfsi"
       }
      }
     },
     {
      "id": "internal-audit",
      "name": "Internal audit / controls",
      "relevance": "core to Investment & Markets",
      "signal": null
     }
    ],
    "count": 3,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "excel-modelling",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.accounting-finance",
      "value": 0.14
     },
     {
      "stage": "observation",
      "skill": "equity-research",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.bfsi",
      "value": 0.1
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "customer-success-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "crm-salesforce",
      "name": "CRM (Salesforce / HubSpot)",
      "relevance": "core to Customer Success",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "crm-salesforce",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "implementation-consultant": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "it-software",
      "yoy": 0.11,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.it-software"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "crm-salesforce",
      "name": "CRM (Salesforce / HubSpot)",
      "relevance": "core to Customer Success",
      "signal": {
       "tag": "it-software",
       "yoy": 0.11,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.it-software"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "crm-salesforce",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.it-software",
      "value": 0.11
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "customer-support-executive": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "team-leader-bpo": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "technical-support-specialist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "ux-designer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "LISTED",
    "skills": [
     {
      "id": "ux-research-figma",
      "name": "UX research & Figma",
      "relevance": "core to Design",
      "signal": null
     }
    ],
    "count": 1,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "design-lead": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "LISTED",
    "skills": [
     {
      "id": "ux-research-figma",
      "name": "UX research & Figma",
      "relevance": "core to Design",
      "signal": null
     }
    ],
    "count": 1,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "graphic-designer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "LISTED",
    "skills": [
     {
      "id": "ux-research-figma",
      "name": "UX research & Figma",
      "relevance": "core to Design",
      "signal": null
     }
    ],
    "count": 1,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "architect": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "LISTED",
    "skills": [
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Architecture & Interiors",
      "signal": null
     }
    ],
    "count": 1,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "interior-designer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "LISTED",
    "skills": [
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Architecture & Interiors",
      "signal": null
     }
    ],
    "count": 1,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "school-teacher": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 2,
    "bands": [
     "entry",
     "any"
    ],
    "latest": "2025-03-20",
    "freshness": "ageing",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "kvs",
      "name": "Kendriya Vidyalaya Sangathan — amended Recruitment Rules for teaching posts (2025)",
      "url": "https://cdnbbsr.s3waas.gov.in/s32d2ca7eedf739ef4c3800713ec482e1a/uploads/2026/01/2026012368.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "kvs-2025-teacher-band",
      "source": "kvs",
      "raw": "raw/kvs-2025/recruitment-rules.json → posts.tgt.start",
      "effective_date": "2025-03-20"
     },
     {
      "stage": "observation",
      "id": "kvs-2025-principal",
      "source": "kvs",
      "raw": "raw/kvs-2025/recruitment-rules.json → posts.principal.start",
      "effective_date": "2025-03-20"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "education",
      "yoy": -0.08,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.education"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.education",
      "value": -0.08
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "teaching-pedagogy",
      "name": "Pedagogy & curriculum",
      "relevance": "core to Education & Training",
      "signal": {
       "tag": "education",
       "yoy": -0.08,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.education"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "teaching-pedagogy",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.education",
      "value": -0.08
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "professor": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 3,
    "bands": [
     "entry",
     "mid",
     "senior"
    ],
    "latest": "2026-05-18",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "jnu",
      "name": "Jawaharlal Nehru University — faculty advertisement RC/75/2026 (UGC Regulations 2018 scales)",
      "url": "https://www.jnu.ac.in/sites/default/files/inline-files/JNU_AdvtNo_RC_75_2026.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "jnu-2026-assistant-professor",
      "source": "jnu",
      "raw": "raw/jnu-2026/rc-75-2026.json → cadres.assistant_professor.start",
      "effective_date": "2026-05-18"
     },
     {
      "stage": "observation",
      "id": "jnu-2026-associate-professor",
      "source": "jnu",
      "raw": "raw/jnu-2026/rc-75-2026.json → cadres.associate_professor.start",
      "effective_date": "2026-05-18"
     },
     {
      "stage": "observation",
      "id": "jnu-2026-professor",
      "source": "jnu",
      "raw": "raw/jnu-2026/rc-75-2026.json → cadres.professor.start",
      "effective_date": "2026-05-18"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "education",
      "yoy": -0.08,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.education"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.education",
      "value": -0.08
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "teaching-pedagogy",
      "name": "Pedagogy & curriculum",
      "relevance": "core to Education & Training",
      "signal": {
       "tag": "education",
       "yoy": -0.08,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.education"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "teaching-pedagogy",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.education",
      "value": -0.08
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "edtech-instructor": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "education",
      "yoy": -0.08,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.education"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.education",
      "value": -0.08
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "teaching-pedagogy",
      "name": "Pedagogy & curriculum",
      "relevance": "core to Education & Training",
      "signal": {
       "tag": "education",
       "yoy": -0.08,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.education"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "teaching-pedagogy",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.education",
      "value": -0.08
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "research-scientist": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-08-27",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "isro",
      "name": "ISRO Centralised Recruitment Board — Advt. ISRO:ICRB:03(EMC):2026",
      "url": "https://www.isro.gov.in/media_isro/pdf/recruitmentNotice/2026/August/Bilingual_Advertisement_27082026.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "isro-2026-scientist-sc",
      "source": "isro",
      "raw": "raw/isro-2026/icrb-03-emc-2026.json → basic_monthly",
      "effective_date": "2026-08-27"
     }
    ]
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "pharma-regulatory",
      "name": "Pharma regulatory affairs & GMP",
      "relevance": "core to Research & Science",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "pharma-regulatory",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "lab-technician": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "pharma-regulatory",
      "name": "Pharma regulatory affairs & GMP",
      "relevance": "core to Research & Science",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "pharma-regulatory",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "policy-researcher": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-04-29",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "rbi-grade-b",
      "name": "Reserve Bank of India — Officers in Grade B (DR) recruitment",
      "url": "https://rbidocs.rbi.org.in/rdocs/Content/PDFs/DEPR29042026BE94DEA85E3C4753A82B191EB6A795ED.PDF",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "rbi-2026-grade-b-depr",
      "source": "rbi-grade-b",
      "raw": "raw/rbi-2026/grade-b-dr-2026.json → grade_b.start",
      "effective_date": "2026-04-29"
     }
    ]
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "pharma-regulatory",
      "name": "Pharma regulatory affairs & GMP",
      "relevance": "core to Research & Science",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "pharma-regulatory",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "journalist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "media",
      "yoy": -0.14,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.media"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Media & Journalism",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "producer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "media",
      "yoy": -0.14,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.media"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Media & Journalism",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "content-writer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "media",
      "yoy": -0.14,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.media"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Content & Communications",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "content-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "media",
      "yoy": -0.14,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.media"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "brand-content",
      "name": "Brand & content marketing",
      "relevance": "core to Content & Communications",
      "signal": {
       "tag": "media",
       "yoy": -0.14,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.media"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "brand-content",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.media",
      "value": -0.14
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "doctor-mbbs": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-02-28",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "aiims-jammu",
      "name": "AIIMS Vijaypur, Jammu — Junior Resident (Non-Academic) and Senior Resident / Demonstrator notifications, 2026",
      "url": "https://www.aiimsjammu.edu.in/recruitment/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "aiims-jammu-2026-jr",
      "source": "aiims-jammu",
      "raw": "raw/aiims-jammu-2026/jr-sr-2026.json → posts.junior_resident.start",
      "effective_date": "2026-02-28"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "healthcare",
      "yoy": 0.16,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.healthcare"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "clinical-nursing",
      "name": "Clinical care & patient safety",
      "relevance": "core to Healthcare",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "clinical-nursing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "specialist-doctor": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-03-30",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "aiims-jammu",
      "name": "AIIMS Vijaypur, Jammu — Junior Resident (Non-Academic) and Senior Resident / Demonstrator notifications, 2026",
      "url": "https://www.aiimsjammu.edu.in/recruitment/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "aiims-jammu-2026-sr",
      "source": "aiims-jammu",
      "raw": "raw/aiims-jammu-2026/jr-sr-2026.json → posts.senior_resident_medical.start",
      "effective_date": "2026-03-30"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "healthcare",
      "yoy": 0.16,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.healthcare"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "clinical-nursing",
      "name": "Clinical care & patient safety",
      "relevance": "core to Healthcare",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "clinical-nursing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "dentist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "healthcare",
      "yoy": 0.16,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.healthcare"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "clinical-nursing",
      "name": "Clinical care & patient safety",
      "relevance": "core to Healthcare",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "clinical-nursing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "nurse": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-07-24",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "aiims-exams",
      "name": "AIIMS New Delhi — NORCET-11 Notice No. 103/2026",
      "url": "https://www.aiimsexams.ac.in/advertisement/6a6350f7e5a81c4267f4ff04",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "aiims-2026-nursing-officer",
      "source": "aiims-exams",
      "raw": "raw/goi-pay-matrix-2026/levels.json → levels.level_7.start",
      "effective_date": "2026-07-24"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "healthcare",
      "yoy": 0.16,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.healthcare"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "clinical-nursing",
      "name": "Clinical care & patient safety",
      "relevance": "core to Healthcare",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "clinical-nursing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "pharmacist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "healthcare",
      "yoy": 0.16,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.healthcare"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "clinical-nursing",
      "name": "Clinical care & patient safety",
      "relevance": "core to Healthcare",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "clinical-nursing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "physiotherapist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "healthcare",
      "yoy": 0.16,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.healthcare"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "clinical-nursing",
      "name": "Clinical care & patient safety",
      "relevance": "core to Healthcare",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "clinical-nursing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "allied-health": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "healthcare",
      "yoy": 0.16,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.healthcare"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "clinical-nursing",
      "name": "Clinical care & patient safety",
      "relevance": "core to Healthcare",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "clinical-nursing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "hospital-administrator": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "healthcare",
      "yoy": 0.16,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.healthcare"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "clinical-nursing",
      "name": "Clinical care & patient safety",
      "relevance": "core to Healthcare",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "clinical-nursing",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "clinical-research-associate": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "pharma-regulatory",
      "name": "Pharma regulatory affairs & GMP",
      "relevance": "core to Pharma & Life Sciences",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "pharma-regulatory",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "regulatory-affairs": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "pharma-regulatory",
      "name": "Pharma regulatory affairs & GMP",
      "relevance": "core to Pharma & Life Sciences",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "pharma-regulatory",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "pharma-qa": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "pharma-regulatory",
      "name": "Pharma regulatory affairs & GMP",
      "relevance": "core to Pharma & Life Sciences",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "pharma-regulatory",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "medical-writer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "pharma-regulatory",
      "name": "Pharma regulatory affairs & GMP",
      "relevance": "core to Pharma & Life Sciences",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "pharma-regulatory",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "production-chemist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "pharma-regulatory",
      "name": "Pharma regulatory affairs & GMP",
      "relevance": "core to Pharma & Life Sciences",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "pharma-regulatory",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "production-engineer": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-05-05",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "url": "https://www.coalindia.in/career-cil/jobs-coal-india/recruitment-of-management-trainee-through-computer-based-test-cbt-26/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "cil-2026-mt-industrial",
      "source": "cil-careers",
      "raw": "raw/cil-2026/mt-cbt-26-advt-03-2026.json → e1.start",
      "effective_date": "2026-05-05"
     }
    ]
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "lean-six-sigma",
      "name": "Lean / Six Sigma",
      "relevance": "core to Manufacturing & Production",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Manufacturing & Production",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "lean-six-sigma",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     },
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "plant-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "lean-six-sigma",
      "name": "Lean / Six Sigma",
      "relevance": "core to Manufacturing & Production",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Manufacturing & Production",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "lean-six-sigma",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     },
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "maintenance-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "lean-six-sigma",
      "name": "Lean / Six Sigma",
      "relevance": "core to Manufacturing & Production",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Manufacturing & Production",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "lean-six-sigma",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     },
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "machine-operator": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "auto",
      "yoy": 0.19,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.auto"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "lean-six-sigma",
      "name": "Lean / Six Sigma",
      "relevance": "core to Manufacturing & Production",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "plc-automation",
      "name": "PLC / industrial automation",
      "relevance": "core to Manufacturing & Production",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "lean-six-sigma",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     },
     {
      "stage": "observation",
      "skill": "plc-automation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "quality-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "lean-six-sigma",
      "name": "Lean / Six Sigma",
      "relevance": "core to Quality",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "pharma-regulatory",
      "name": "Pharma regulatory affairs & GMP",
      "relevance": "core to Quality",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "lean-six-sigma",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     },
     {
      "stage": "observation",
      "skill": "pharma-regulatory",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "quality-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "lean-six-sigma",
      "name": "Lean / Six Sigma",
      "relevance": "core to Quality",
      "signal": {
       "tag": "auto",
       "yoy": 0.19,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.auto"
       }
      }
     },
     {
      "id": "pharma-regulatory",
      "name": "Pharma regulatory affairs & GMP",
      "relevance": "core to Quality",
      "signal": {
       "tag": "healthcare",
       "yoy": 0.16,
       "direction": "up",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.healthcare"
       }
      }
     }
    ],
    "count": 2,
    "with_signal": 2,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "lean-six-sigma",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.auto",
      "value": 0.19
     },
     {
      "stage": "observation",
      "skill": "pharma-regulatory",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.healthcare",
      "value": 0.16
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "site-engineer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "LISTED",
    "skills": [
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Construction & Infrastructure",
      "signal": null
     }
    ],
    "count": 1,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "construction-project-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "LISTED",
    "skills": [
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Construction & Infrastructure",
      "signal": null
     }
    ],
    "count": 1,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "quantity-surveyor": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "LISTED",
    "skills": [
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Construction & Infrastructure",
      "signal": null
     }
    ],
    "count": 1,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "safety-officer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "LISTED",
    "skills": [
     {
      "id": "autocad-revit",
      "name": "AutoCAD / Revit / BIM",
      "relevance": "core to Construction & Infrastructure",
      "signal": null
     }
    ],
    "count": 1,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "real-estate-sales": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "property-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "valuer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "hotel-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "hospitality",
      "yoy": -0.04,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.hospitality"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.hospitality",
      "value": -0.04
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hospitality-ops",
      "name": "Hospitality operations & F&B",
      "relevance": "core to Hospitality & Travel",
      "signal": {
       "tag": "hospitality",
       "yoy": -0.04,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.hospitality"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hospitality-ops",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.hospitality",
      "value": -0.04
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "chef": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "hospitality",
      "yoy": -0.04,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.hospitality"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.hospitality",
      "value": -0.04
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hospitality-ops",
      "name": "Hospitality operations & F&B",
      "relevance": "core to Hospitality & Travel",
      "signal": {
       "tag": "hospitality",
       "yoy": -0.04,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.hospitality"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hospitality-ops",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.hospitality",
      "value": -0.04
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "front-office-executive": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "hospitality",
      "yoy": -0.04,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.hospitality"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.hospitality",
      "value": -0.04
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hospitality-ops",
      "name": "Hospitality operations & F&B",
      "relevance": "core to Hospitality & Travel",
      "signal": {
       "tag": "hospitality",
       "yoy": -0.04,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.hospitality"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hospitality-ops",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.hospitality",
      "value": -0.04
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "travel-consultant": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "hospitality",
      "yoy": -0.04,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.hospitality"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.hospitality",
      "value": -0.04
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hospitality-ops",
      "name": "Hospitality operations & F&B",
      "relevance": "core to Hospitality & Travel",
      "signal": {
       "tag": "hospitality",
       "yoy": -0.04,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.hospitality"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hospitality-ops",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.hospitality",
      "value": -0.04
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "cabin-crew": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "hospitality",
      "yoy": -0.04,
      "direction": "down",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.hospitality"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.hospitality",
      "value": -0.04
     }
    ]
   },
   "skills": {
    "state": "SIGNAL",
    "skills": [
     {
      "id": "hospitality-ops",
      "name": "Hospitality operations & F&B",
      "relevance": "core to Hospitality & Travel",
      "signal": {
       "tag": "hospitality",
       "yoy": -0.04,
       "direction": "down",
       "provenance": {
        "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
        "raw_ref": "yoy_by_sector.hospitality"
       }
      }
     }
    ],
    "count": 1,
    "with_signal": 1,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": [
     {
      "stage": "observation",
      "skill": "hospitality-ops",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.hospitality",
      "value": -0.04
     }
    ]
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "store-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "retail-sales-associate": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "merchandiser": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "ecommerce-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "SIGNAL",
    "sectors": [
     {
      "tag": "retail",
      "yoy": 0.15,
      "direction": "up",
      "provenance": {
       "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
       "raw_ref": "yoy_by_sector.retail"
      }
     }
    ],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": 0.6,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-demand-signals v1.0.0",
      "raw": "raw/naukri-jobspeak-2026-08/press-report.json → yoy_by_sector.retail",
      "value": 0.15
     }
    ]
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "civil-servant": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "psu-officer": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 2,
    "bands": [
     "entry",
     "senior"
    ],
    "latest": "2026-01-13",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ntpc-careers",
      "name": "NTPC Limited — recruitment advertisements 01/26 (Executive Trainee Finance), 15/25 (Assistant Law Officer), 10/25 (Deputy Manager)",
      "url": "https://careers.ntpc.co.in/recruitment/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ntpc-2026-et-finance",
      "source": "ntpc-careers",
      "raw": "raw/ntpc-2025-26/advertisements.json → grades.e1_start",
      "effective_date": "2026-01-13"
     },
     {
      "stage": "observation",
      "id": "ntpc-2025-dy-manager-e4",
      "source": "ntpc-careers",
      "raw": "raw/ntpc-2025-26/advertisements.json → grades.e4_start",
      "effective_date": "2025-10-01"
     }
    ]
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "government-clerk": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 3,
    "bands": [
     "entry"
    ],
    "latest": "2026-09-07",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ssc-goi",
      "name": "Staff Selection Commission — CGLE 2026, CHSLE 2026 and JE 2026 notices (Government of India posts)",
      "url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ssc-2026-clerk-band",
      "source": "ssc-goi",
      "raw": "raw/ssc-2026/cgl-chsl-notices.json → posts.upper_division_clerk.start",
      "effective_date": "2026-05-21"
     },
     {
      "stage": "observation",
      "id": "ssc-2026-aso-basic",
      "source": "ssc-goi",
      "raw": "raw/ssc-2026/cgl-chsl-notices.json → posts.assistant_section_officer.start",
      "effective_date": "2026-05-21"
     },
     {
      "stage": "observation",
      "id": "ssc-2026-ldc-basic",
      "source": "ssc-goi",
      "raw": "raw/ssc-2026/cgl-chsl-notices.json → posts.lower_division_clerk.start",
      "effective_date": "2026-09-07"
     }
    ]
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "defence-officer": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 4,
    "bands": [
     "entry",
     "any"
    ],
    "latest": "2026-05-20",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "upsc",
      "name": "Union Public Service Commission — CDS (II) 2026 Examination Notice, Appendix IV",
      "url": "https://www.upsc.gov.in/sites/default/files/Notif-CDS-II-2026-Engl-200526.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "cds-2026-lieutenant",
      "source": "upsc",
      "raw": "raw/upsc-cds-2026/cds-ii-notice.json → ranks.lieutenant",
      "effective_date": "2026-05-20"
     },
     {
      "stage": "observation",
      "id": "cds-2026-msp",
      "source": "upsc",
      "raw": "raw/upsc-cds-2026/cds-ii-notice.json → msp_monthly",
      "effective_date": "2026-05-20"
     },
     {
      "stage": "observation",
      "id": "cds-2026-major",
      "source": "upsc",
      "raw": "raw/upsc-cds-2026/cds-ii-notice.json → ranks.major",
      "effective_date": "2026-05-20"
     },
     {
      "stage": "observation",
      "id": "cds-2026-lt-colonel",
      "source": "upsc",
      "raw": "raw/upsc-cds-2026/cds-ii-notice.json → ranks.lieutenant_colonel",
      "effective_date": "2026-05-20"
     }
    ]
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "public-sector-bank": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 5,
    "bands": [
     "entry"
    ],
    "latest": "2026-08-01",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "sbi-careers",
      "name": "State Bank of India — recruitment advertisements (Probationary Officers 2026-27; Junior Associates 2026)",
      "url": "https://bank.sbi/web/careers/current-openings",
      "evidence_type": "employer-data"
     },
     {
      "id": "ibps",
      "name": "Institute of Banking Personnel Selection — CRP PO/MT-XVI and CRP CSA-XVI notifications",
      "url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification_CRP-PO-XVI_Final_V1_30.06.2026.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "sbi-po-2026-ctc",
      "source": "sbi-careers",
      "raw": "raw/sbi-2026/po-advt-26-27.json → approx_ctc_mumbai_lpa",
      "effective_date": "2026-06-23"
     },
     {
      "stage": "observation",
      "id": "sbi-po-2026-basic",
      "source": "sbi-careers",
      "raw": "raw/sbi-2026/po-advt-26-27.json → basic_pay_monthly",
      "effective_date": "2026-06-23"
     },
     {
      "stage": "observation",
      "id": "sbi-ja-2026-emoluments",
      "source": "sbi-careers",
      "raw": "raw/sbi-2026/ja-advt-2026.json → starting_emoluments_monthly_mumbai",
      "effective_date": "2026-08-01"
     },
     {
      "stage": "observation",
      "id": "ibps-2026-po-basic",
      "source": "ibps",
      "raw": "raw/ibps-2026/po-xvi-csa-xvi.json → po_basic_monthly",
      "effective_date": "2026-06-30"
     },
     {
      "stage": "observation",
      "id": "ibps-2026-csa-basic",
      "source": "ibps",
      "raw": "raw/ibps-2026/po-xvi-csa-xvi.json → csa_basic_monthly",
      "effective_date": "2026-08-01"
     }
    ]
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "pilot": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "agriculture-professional": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 1,
    "bands": [
     "entry"
    ],
    "latest": "2026-06-30",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ibps-so",
      "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
      "url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification-CRP-SPL-XVI_Final_V1_30.06.2026.pdf",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ibps-so-2026-afo",
      "source": "ibps-so",
      "raw": "raw/ibps-so-2026/spl-xvi.json → scale_i.start",
      "effective_date": "2026-06-30"
     }
    ]
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "environmental-specialist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "sports-fitness": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "social-worker": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "librarian-archivist": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "translator": {
   "salary": {
    "state": "VERIFIED",
    "grade": "MEDIUM",
    "observations": 2,
    "bands": [
     "entry"
    ],
    "latest": "2026-06-30",
    "freshness": "fresh",
    "confidence": 0.75,
    "evidence_types": [
     "employer-data"
    ],
    "sources": [
     {
      "id": "ibps-so",
      "name": "Institute of Banking Personnel Selection — CRP SPL-XVI notification (Specialist Officers, Scale I)",
      "url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification-CRP-SPL-XVI_Final_V1_30.06.2026.pdf",
      "evidence_type": "employer-data"
     },
     {
      "id": "cil-careers",
      "name": "Coal India Limited — Advertisement No. 03/2026, Management Trainees (CBT-26)",
      "url": "https://www.coalindia.in/career-cil/jobs-coal-india/recruitment-of-management-trainee-through-computer-based-test-cbt-26/",
      "evidence_type": "employer-data"
     }
    ],
    "methodology": "Role-level observations, graded from source confidence with press-report, single-employer and freshness caps; the best grade sets the state.",
    "provenance": [
     {
      "stage": "observation",
      "id": "ibps-so-2026-rajbhasha",
      "source": "ibps-so",
      "raw": "raw/ibps-so-2026/spl-xvi.json → scale_i.start",
      "effective_date": "2026-06-30"
     },
     {
      "stage": "observation",
      "id": "cil-2026-mt-rajbhasha",
      "source": "cil-careers",
      "raw": "raw/cil-2026/mt-cbt-26-advt-03-2026.json → e1.start",
      "effective_date": "2026-05-05"
     }
    ]
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — an employer pay scale is not location-adjusted",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "event-manager": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "photographer": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "driver-delivery": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "security-guard": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  },
  "electrician-plumber": {
   "salary": {
    "state": "INSUFFICIENT",
    "grade": null,
    "observations": 0,
    "bands": [],
    "latest": null,
    "freshness": null,
    "confidence": null,
    "evidence_types": [],
    "sources": [],
    "methodology": "No role-level salary observation in any verified dataset. No figure is estimated.",
    "provenance": []
   },
   "demand": {
    "state": "NONE",
    "sectors": [],
    "overall": 0.14,
    "dataset": "adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
    "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
    "provenance": []
   },
   "skills": {
    "state": "NONE",
    "skills": [],
    "count": 0,
    "with_signal": 0,
    "dataset": "skills v1.1.0 + adjust-demand-signals v1.0.0",
    "source": "naukri-jobspeak",
    "source_name": "Naukri JobSpeak Index (Info Edge India)",
    "period": "August 2026, year-on-year",
    "effective_date": "2026-08-31",
    "freshness": "fresh",
    "confidence": null,
    "evidence_type": "job-posting-signal",
    "methodology": "Skills are assigned to functions in the taxonomy. The signal beside a skill is the year-on-year posting change of the sector it sits in — a sector signal attached to the skill, not a measurement of demand for the skill itself and never a salary premium.",
    "limitations": "No skill-level demand or premium dataset is integrated; premiums are not applied anywhere.",
    "provenance": []
   },
   "location": {
    "state": "LIMITED",
    "applies": "context only — no salary figure to adjust",
    "cities": 32,
    "dataset": "adjust-location v1.1.0",
    "source": "mospi-plfs-2023-24",
    "source_name": "Periodic Labour Force Survey — Annual Report 2023-24 (July 2023 – June 2024)",
    "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
    "period": "Apr–Jun 2024",
    "effective_date": "2024-06-30",
    "freshness": "ageing",
    "confidence": 0.6,
    "evidence_type": "government-earnings",
    "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
    "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
    "provenance": [
     {
      "stage": "dataset",
      "dataset": "adjust-location v1.1.0",
      "source": "mospi-plfs-2023-24",
      "raw": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json"
     }
    ]
   },
   "industry": {
    "state": "SIGNAL",
    "overall": 0.091,
    "industries": 4,
    "dataset": "adjust-industry-growth v1.0.0",
    "source": "aon-sis-2026",
    "source_name": "Aon Annual Salary Increase and Turnover Survey 2025-26, India — press release",
    "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
    "period": "2026 projection",
    "effective_date": "2026-12-31",
    "freshness": "fresh",
    "confidence": 0.7,
    "evidence_type": "job-market-signal",
    "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
    "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row). No industry level differential exists; the factor stays 1.00.",
    "provenance": [
     {
      "stage": "observation",
      "dataset": "adjust-industry-growth v1.0.0",
      "raw": "raw/aon-2026/press-release.json → projected_increase_2026.overall",
      "value": 0.091
     }
    ]
   }
  }
 },
 "dimension_totals": {
  "total": 199,
  "salary_verified": 35,
  "salary_limited": 0,
  "demand_covered": 143,
  "skill_signal": 161,
  "needs_research": 26
 },
 "dimensions_by_function": {
  "finance-accounting": {
   "roles": 21,
   "salary": true,
   "salary_verified": 6,
   "demand": true,
   "demand_yoy": 0.14,
   "skills": true,
   "skills_count": 9
  },
  "benchmarks": {
   "roles": 2,
   "salary": true,
   "salary_verified": 2,
   "demand": false,
   "skills": false,
   "skills_count": 0
  },
  "technology": {
   "roles": 17,
   "salary": true,
   "salary_verified": 2,
   "demand": true,
   "demand_yoy": 0.11,
   "skills": true,
   "skills_count": 10
  },
  "data-analytics": {
   "roles": 5,
   "salary": true,
   "salary_verified": 1,
   "demand": true,
   "demand_yoy": 0.11,
   "skills": true,
   "skills_count": 6
  },
  "ai-ml": {
   "roles": 4,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": 0.31,
   "skills": true,
   "skills_count": 5
  },
  "product": {
   "roles": 3,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": 0.11,
   "skills": true,
   "skills_count": 5
  },
  "engineering-core": {
   "roles": 9,
   "salary": true,
   "salary_verified": 4,
   "demand": true,
   "demand_yoy": 0.19,
   "skills": true,
   "skills_count": 2
  },
  "sales": {
   "roles": 7,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": 0.1,
   "skills": true,
   "skills_count": 2
  },
  "business-development": {
   "roles": 2,
   "salary": false,
   "salary_verified": 0,
   "demand": false,
   "skills": true,
   "skills_count": 2
  },
  "marketing": {
   "roles": 9,
   "salary": true,
   "salary_verified": 1,
   "demand": true,
   "demand_yoy": 0.15,
   "skills": true,
   "skills_count": 2
  },
  "hr": {
   "roles": 8,
   "salary": true,
   "salary_verified": 1,
   "demand": true,
   "demand_yoy": 1.09,
   "skills": true,
   "skills_count": 2
  },
  "operations": {
   "roles": 5,
   "salary": false,
   "salary_verified": 0,
   "demand": false,
   "skills": true,
   "skills_count": 4
  },
  "supply-chain": {
   "roles": 4,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": 0.15,
   "skills": true,
   "skills_count": 2
  },
  "procurement": {
   "roles": 2,
   "salary": false,
   "salary_verified": 0,
   "demand": false,
   "skills": true,
   "skills_count": 1
  },
  "consulting": {
   "roles": 3,
   "salary": false,
   "salary_verified": 0,
   "demand": false,
   "skills": true,
   "skills_count": 2
  },
  "legal": {
   "roles": 3,
   "salary": true,
   "salary_verified": 2,
   "demand": true,
   "demand_yoy": -0.07,
   "skills": true,
   "skills_count": 1
  },
  "risk-compliance": {
   "roles": 3,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": 0.1,
   "skills": true,
   "skills_count": 4
  },
  "cybersecurity": {
   "roles": 3,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": 0.32,
   "skills": true,
   "skills_count": 4
  },
  "banking": {
   "roles": 7,
   "salary": true,
   "salary_verified": 1,
   "demand": true,
   "demand_yoy": 0.1,
   "skills": true,
   "skills_count": 3
  },
  "insurance": {
   "roles": 4,
   "salary": true,
   "salary_verified": 1,
   "demand": true,
   "demand_yoy": 0.12,
   "skills": true,
   "skills_count": 2
  },
  "investment-markets": {
   "roles": 6,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": 0.1,
   "skills": true,
   "skills_count": 3
  },
  "customer-success": {
   "roles": 2,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": 0.11,
   "skills": true,
   "skills_count": 1
  },
  "customer-support": {
   "roles": 3,
   "salary": false,
   "salary_verified": 0,
   "demand": false,
   "skills": false,
   "skills_count": 0
  },
  "design": {
   "roles": 3,
   "salary": false,
   "salary_verified": 0,
   "demand": false,
   "skills": false,
   "skills_count": 1
  },
  "architecture": {
   "roles": 2,
   "salary": false,
   "salary_verified": 0,
   "demand": false,
   "skills": false,
   "skills_count": 1
  },
  "education": {
   "roles": 3,
   "salary": true,
   "salary_verified": 2,
   "demand": true,
   "demand_yoy": -0.08,
   "skills": true,
   "skills_count": 1
  },
  "research": {
   "roles": 3,
   "salary": true,
   "salary_verified": 2,
   "demand": false,
   "skills": true,
   "skills_count": 1
  },
  "media": {
   "roles": 2,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": -0.14,
   "skills": true,
   "skills_count": 1
  },
  "content": {
   "roles": 2,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": -0.14,
   "skills": true,
   "skills_count": 1
  },
  "healthcare": {
   "roles": 8,
   "salary": true,
   "salary_verified": 3,
   "demand": true,
   "demand_yoy": 0.16,
   "skills": true,
   "skills_count": 1
  },
  "pharma": {
   "roles": 5,
   "salary": false,
   "salary_verified": 0,
   "demand": false,
   "skills": true,
   "skills_count": 1
  },
  "manufacturing": {
   "roles": 4,
   "salary": true,
   "salary_verified": 1,
   "demand": true,
   "demand_yoy": 0.19,
   "skills": true,
   "skills_count": 2
  },
  "quality": {
   "roles": 2,
   "salary": false,
   "salary_verified": 0,
   "demand": false,
   "skills": true,
   "skills_count": 2
  },
  "construction": {
   "roles": 4,
   "salary": false,
   "salary_verified": 0,
   "demand": false,
   "skills": false,
   "skills_count": 1
  },
  "real-estate": {
   "roles": 3,
   "salary": false,
   "salary_verified": 0,
   "demand": false,
   "skills": false,
   "skills_count": 0
  },
  "hospitality": {
   "roles": 5,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": -0.04,
   "skills": true,
   "skills_count": 1
  },
  "retail": {
   "roles": 4,
   "salary": false,
   "salary_verified": 0,
   "demand": true,
   "demand_yoy": 0.15,
   "skills": false,
   "skills_count": 0
  },
  "government": {
   "roles": 5,
   "salary": true,
   "salary_verified": 4,
   "demand": false,
   "skills": false,
   "skills_count": 0
  },
  "other": {
   "roles": 12,
   "salary": true,
   "salary_verified": 2,
   "demand": false,
   "skills": false,
   "skills_count": 0
  }
 },
 "skills": [
  {
   "id": "ind-as",
   "name": "Ind AS / IFRS reporting",
   "aliases": [
    "ind as",
    "ifrs",
    "indas",
    "financial reporting",
    "consolidation"
   ],
   "functions": [
    "finance-accounting"
   ],
   "signal_tag": "accounting-finance"
  },
  {
   "id": "gst",
   "name": "GST compliance",
   "aliases": [
    "gst",
    "indirect tax"
   ],
   "functions": [
    "finance-accounting"
   ],
   "signal_tag": "accounting-finance"
  },
  {
   "id": "direct-tax",
   "name": "Direct tax",
   "aliases": [
    "income tax",
    "direct tax",
    "tds",
    "transfer pricing",
    "tax"
   ],
   "functions": [
    "finance-accounting"
   ],
   "signal_tag": "accounting-finance"
  },
  {
   "id": "fpa",
   "name": "FP&A / budgeting",
   "aliases": [
    "fp&a",
    "fpa",
    "budgeting",
    "forecasting",
    "mis",
    "budget"
   ],
   "functions": [
    "finance-accounting"
   ],
   "signal_tag": "accounting-finance"
  },
  {
   "id": "sap",
   "name": "SAP FICO / ERP",
   "aliases": [
    "sap",
    "sap fico",
    "oracle",
    "erp",
    "netsuite",
    "tally"
   ],
   "functions": [
    "finance-accounting",
    "operations",
    "supply-chain"
   ],
   "signal_tag": "accounting-finance"
  },
  {
   "id": "excel-modelling",
   "name": "Excel & financial modelling",
   "aliases": [
    "excel",
    "financial modelling",
    "financial modeling",
    "valuation",
    "modelling"
   ],
   "functions": [
    "finance-accounting",
    "investment-markets",
    "consulting"
   ],
   "signal_tag": "accounting-finance"
  },
  {
   "id": "power-bi",
   "name": "Power BI / SQL / analytics",
   "aliases": [
    "power bi",
    "powerbi",
    "tableau",
    "analytics"
   ],
   "functions": [
    "finance-accounting",
    "data-analytics"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "internal-audit",
   "name": "Internal audit / controls",
   "aliases": [
    "internal audit",
    "sox",
    "ifc",
    "controls",
    "risk"
   ],
   "functions": [
    "finance-accounting",
    "banking",
    "investment-markets",
    "risk-compliance",
    "insurance"
   ]
  },
  {
   "id": "treasury",
   "name": "Treasury & cash management",
   "aliases": [
    "treasury",
    "cash management",
    "forex",
    "hedging"
   ],
   "functions": [
    "finance-accounting",
    "banking"
   ],
   "signal_tag": "bfsi"
  },
  {
   "id": "credit-analysis",
   "name": "Credit analysis & underwriting",
   "aliases": [
    "credit",
    "underwriting",
    "credit analysis",
    "loan appraisal"
   ],
   "functions": [
    "banking",
    "risk-compliance"
   ],
   "signal_tag": "bfsi"
  },
  {
   "id": "python",
   "name": "Python",
   "aliases": [
    "python",
    "pandas"
   ],
   "functions": [
    "data-analytics",
    "ai-ml",
    "technology"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "sql",
   "name": "SQL & databases",
   "aliases": [
    "sql",
    "postgres",
    "mysql",
    "database"
   ],
   "functions": [
    "data-analytics",
    "technology",
    "ai-ml"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "java",
   "name": "Java / JVM",
   "aliases": [
    "java",
    "spring",
    "kotlin"
   ],
   "functions": [
    "technology"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "javascript",
   "name": "JavaScript / TypeScript",
   "aliases": [
    "javascript",
    "typescript",
    "react",
    "node",
    "angular"
   ],
   "functions": [
    "technology"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "cloud-aws-azure",
   "name": "Cloud (AWS / Azure / GCP)",
   "aliases": [
    "aws",
    "azure",
    "gcp",
    "cloud"
   ],
   "functions": [
    "technology",
    "cybersecurity"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "devops-kubernetes",
   "name": "DevOps / Kubernetes / CI-CD",
   "aliases": [
    "devops",
    "kubernetes",
    "docker",
    "ci/cd",
    "terraform"
   ],
   "functions": [
    "technology"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "machine-learning",
   "name": "Machine learning",
   "aliases": [
    "machine learning",
    "ml",
    "deep learning",
    "pytorch",
    "tensorflow"
   ],
   "functions": [
    "ai-ml",
    "data-analytics"
   ],
   "signal_tag": "ai-ml"
  },
  {
   "id": "generative-ai-llm",
   "name": "Generative AI / LLM engineering",
   "aliases": [
    "llm",
    "generative ai",
    "genai",
    "prompt engineering",
    "rag"
   ],
   "functions": [
    "ai-ml",
    "technology",
    "product"
   ],
   "signal_tag": "ai-ml"
  },
  {
   "id": "data-engineering",
   "name": "Data engineering (Spark, pipelines)",
   "aliases": [
    "spark",
    "data engineering",
    "etl",
    "airflow",
    "databricks",
    "snowflake"
   ],
   "functions": [
    "data-analytics",
    "ai-ml",
    "technology"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "statistics-ab-testing",
   "name": "Statistics & experimentation",
   "aliases": [
    "statistics",
    "a/b testing",
    "experimentation",
    "hypothesis testing"
   ],
   "functions": [
    "data-analytics",
    "product"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "cybersecurity-ops",
   "name": "Security operations / SIEM",
   "aliases": [
    "siem",
    "soc",
    "incident response",
    "threat hunting"
   ],
   "functions": [
    "cybersecurity"
   ],
   "signal_tag": "it-security"
  },
  {
   "id": "cloud-security",
   "name": "Cloud & application security",
   "aliases": [
    "cloud security",
    "appsec",
    "devsecops",
    "penetration testing",
    "vapt"
   ],
   "functions": [
    "cybersecurity",
    "technology"
   ],
   "signal_tag": "it-security"
  },
  {
   "id": "grc-iso27001",
   "name": "Governance, risk & compliance (ISO 27001, SOC 2)",
   "aliases": [
    "iso 27001",
    "soc 2",
    "grc",
    "information security compliance"
   ],
   "functions": [
    "cybersecurity",
    "risk-compliance"
   ],
   "signal_tag": "it-security"
  },
  {
   "id": "product-analytics",
   "name": "Product analytics & roadmapping",
   "aliases": [
    "product analytics",
    "roadmap",
    "prd",
    "user stories",
    "mixpanel",
    "amplitude"
   ],
   "functions": [
    "product"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "ux-research-figma",
   "name": "UX research & Figma",
   "aliases": [
    "figma",
    "ux research",
    "wireframing",
    "prototyping",
    "design systems"
   ],
   "functions": [
    "design",
    "product"
   ]
  },
  {
   "id": "digital-marketing",
   "name": "Digital marketing (SEO / SEM / paid)",
   "aliases": [
    "seo",
    "sem",
    "google ads",
    "meta ads",
    "performance marketing",
    "digital marketing"
   ],
   "functions": [
    "marketing"
   ],
   "signal_tag": "retail"
  },
  {
   "id": "brand-content",
   "name": "Brand & content marketing",
   "aliases": [
    "brand",
    "content marketing",
    "copywriting",
    "social media"
   ],
   "functions": [
    "marketing",
    "content",
    "media"
   ],
   "signal_tag": "media"
  },
  {
   "id": "crm-salesforce",
   "name": "CRM (Salesforce / HubSpot)",
   "aliases": [
    "salesforce",
    "hubspot",
    "crm"
   ],
   "functions": [
    "sales",
    "business-development",
    "customer-success"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "b2b-sales",
   "name": "B2B / enterprise sales",
   "aliases": [
    "b2b sales",
    "enterprise sales",
    "account management",
    "key accounts"
   ],
   "functions": [
    "sales",
    "business-development"
   ],
   "signal_tag": "bfsi"
  },
  {
   "id": "talent-acquisition",
   "name": "Talent acquisition",
   "aliases": [
    "talent acquisition",
    "recruiting",
    "sourcing",
    "ats"
   ],
   "functions": [
    "hr"
   ],
   "signal_tag": "recruitment"
  },
  {
   "id": "hr-analytics-payroll",
   "name": "HR analytics, payroll & compliance",
   "aliases": [
    "payroll",
    "hr analytics",
    "hrms",
    "labour law",
    "pf",
    "esi"
   ],
   "functions": [
    "hr"
   ],
   "signal_tag": "recruitment"
  },
  {
   "id": "supply-chain-planning",
   "name": "Supply-chain planning & logistics",
   "aliases": [
    "supply chain",
    "logistics",
    "demand planning",
    "inventory",
    "warehouse"
   ],
   "functions": [
    "supply-chain",
    "operations",
    "procurement"
   ],
   "signal_tag": "retail"
  },
  {
   "id": "lean-six-sigma",
   "name": "Lean / Six Sigma",
   "aliases": [
    "lean",
    "six sigma",
    "kaizen",
    "continuous improvement"
   ],
   "functions": [
    "operations",
    "manufacturing",
    "quality"
   ],
   "signal_tag": "auto"
  },
  {
   "id": "project-management",
   "name": "Project management (PMP / Agile)",
   "aliases": [
    "pmp",
    "agile",
    "scrum",
    "jira",
    "project management"
   ],
   "functions": [
    "technology",
    "operations",
    "consulting",
    "product"
   ],
   "signal_tag": "it-software"
  },
  {
   "id": "contract-drafting",
   "name": "Contract drafting & corporate law",
   "aliases": [
    "contract drafting",
    "corporate law",
    "companies act",
    "compliance"
   ],
   "functions": [
    "legal",
    "risk-compliance"
   ],
   "signal_tag": "legal"
  },
  {
   "id": "clinical-nursing",
   "name": "Clinical care & patient safety",
   "aliases": [
    "clinical",
    "patient care",
    "nursing",
    "icu"
   ],
   "functions": [
    "healthcare"
   ],
   "signal_tag": "healthcare"
  },
  {
   "id": "pharma-regulatory",
   "name": "Pharma regulatory affairs & GMP",
   "aliases": [
    "regulatory affairs",
    "gmp",
    "pharmacovigilance",
    "clinical research"
   ],
   "functions": [
    "pharma",
    "research",
    "quality"
   ],
   "signal_tag": "healthcare"
  },
  {
   "id": "autocad-revit",
   "name": "AutoCAD / Revit / BIM",
   "aliases": [
    "autocad",
    "revit",
    "bim",
    "staad"
   ],
   "functions": [
    "architecture",
    "construction",
    "engineering-core"
   ]
  },
  {
   "id": "plc-automation",
   "name": "PLC / industrial automation",
   "aliases": [
    "plc",
    "scada",
    "automation",
    "industrial automation"
   ],
   "functions": [
    "engineering-core",
    "manufacturing"
   ],
   "signal_tag": "auto"
  },
  {
   "id": "teaching-pedagogy",
   "name": "Pedagogy & curriculum",
   "aliases": [
    "pedagogy",
    "curriculum",
    "b.ed",
    "classroom"
   ],
   "functions": [
    "education"
   ],
   "signal_tag": "education"
  },
  {
   "id": "hospitality-ops",
   "name": "Hospitality operations & F&B",
   "aliases": [
    "f&b",
    "front office",
    "hospitality",
    "guest relations"
   ],
   "functions": [
    "hospitality"
   ],
   "signal_tag": "hospitality"
  },
  {
   "id": "insurance-underwriting",
   "name": "Insurance underwriting & claims",
   "aliases": [
    "insurance underwriting",
    "claims",
    "actuarial",
    "irdai"
   ],
   "functions": [
    "insurance"
   ],
   "signal_tag": "insurance"
  },
  {
   "id": "equity-research",
   "name": "Equity research & valuation",
   "aliases": [
    "equity research",
    "dcf",
    "cfa"
   ],
   "functions": [
    "investment-markets"
   ],
   "signal_tag": "bfsi"
  }
 ],
 "locations": [
  {
   "id": "in",
   "name": "India (national)",
   "tier": "national",
   "aliases": [
    "india",
    "pan india",
    "national"
   ]
  },
  {
   "id": "mumbai",
   "name": "Mumbai",
   "state": "Maharashtra",
   "tier": 1,
   "aliases": [
    "mumbai",
    "bombay",
    "navi mumbai",
    "thane"
   ]
  },
  {
   "id": "delhi",
   "name": "Delhi",
   "state": "Delhi",
   "tier": 1,
   "aliases": [
    "delhi",
    "new delhi",
    "delhi ncr",
    "ncr"
   ]
  },
  {
   "id": "gurugram",
   "name": "Gurugram",
   "state": "Haryana",
   "tier": 1,
   "aliases": [
    "gurgaon",
    "gurugram",
    "faridabad",
    "haryana"
   ]
  },
  {
   "id": "noida",
   "name": "Noida",
   "state": "Uttar Pradesh",
   "tier": 1,
   "aliases": [
    "noida",
    "greater noida",
    "ghaziabad"
   ]
  },
  {
   "id": "bengaluru",
   "name": "Bengaluru",
   "state": "Karnataka",
   "tier": 1,
   "aliases": [
    "bangalore",
    "bengaluru",
    "karnataka"
   ]
  },
  {
   "id": "hyderabad",
   "name": "Hyderabad",
   "state": "Telangana",
   "tier": 1,
   "aliases": [
    "hyderabad",
    "secunderabad",
    "telangana"
   ]
  },
  {
   "id": "chennai",
   "name": "Chennai",
   "state": "Tamil Nadu",
   "tier": 1,
   "aliases": [
    "chennai",
    "madras"
   ]
  },
  {
   "id": "pune",
   "name": "Pune",
   "state": "Maharashtra",
   "tier": 1,
   "aliases": [
    "pune"
   ]
  },
  {
   "id": "kolkata",
   "name": "Kolkata",
   "state": "West Bengal",
   "tier": 1,
   "aliases": [
    "kolkata",
    "calcutta"
   ]
  },
  {
   "id": "ahmedabad",
   "name": "Ahmedabad",
   "state": "Gujarat",
   "tier": 2,
   "aliases": [
    "ahmedabad",
    "gandhinagar"
   ]
  },
  {
   "id": "jaipur",
   "name": "Jaipur",
   "state": "Rajasthan",
   "tier": 2,
   "aliases": [
    "jaipur"
   ]
  },
  {
   "id": "lucknow",
   "name": "Lucknow",
   "state": "Uttar Pradesh",
   "tier": 2,
   "aliases": [
    "lucknow",
    "kanpur"
   ]
  },
  {
   "id": "chandigarh",
   "name": "Chandigarh",
   "state": "Chandigarh",
   "tier": 2,
   "aliases": [
    "chandigarh",
    "mohali",
    "panchkula"
   ]
  },
  {
   "id": "indore",
   "name": "Indore",
   "state": "Madhya Pradesh",
   "tier": 2,
   "aliases": [
    "indore"
   ]
  },
  {
   "id": "bhopal",
   "name": "Bhopal",
   "state": "Madhya Pradesh",
   "tier": 2,
   "aliases": [
    "bhopal"
   ]
  },
  {
   "id": "kochi",
   "name": "Kochi",
   "state": "Kerala",
   "tier": 2,
   "aliases": [
    "kochi",
    "cochin",
    "thiruvananthapuram",
    "kerala"
   ]
  },
  {
   "id": "nagpur",
   "name": "Nagpur",
   "state": "Maharashtra",
   "tier": 2,
   "aliases": [
    "nagpur"
   ]
  },
  {
   "id": "coimbatore",
   "name": "Coimbatore",
   "state": "Tamil Nadu",
   "tier": 2,
   "aliases": [
    "coimbatore"
   ]
  },
  {
   "id": "surat",
   "name": "Surat",
   "state": "Gujarat",
   "tier": 2,
   "aliases": [
    "surat"
   ]
  },
  {
   "id": "vadodara",
   "name": "Vadodara",
   "state": "Gujarat",
   "tier": 2,
   "aliases": [
    "vadodara",
    "baroda"
   ]
  },
  {
   "id": "visakhapatnam",
   "name": "Visakhapatnam",
   "state": "Andhra Pradesh",
   "tier": 2,
   "aliases": [
    "visakhapatnam",
    "vizag",
    "vijayawada",
    "andhra"
   ]
  },
  {
   "id": "bhubaneswar",
   "name": "Bhubaneswar",
   "state": "Odisha",
   "tier": 2,
   "aliases": [
    "bhubaneswar",
    "odisha",
    "cuttack"
   ]
  },
  {
   "id": "patna",
   "name": "Patna",
   "state": "Bihar",
   "tier": 2,
   "aliases": [
    "patna",
    "bihar"
   ]
  },
  {
   "id": "guwahati",
   "name": "Guwahati",
   "state": "Assam",
   "tier": 2,
   "aliases": [
    "guwahati",
    "assam"
   ]
  },
  {
   "id": "dehradun",
   "name": "Dehradun",
   "state": "Uttarakhand",
   "tier": 2,
   "aliases": [
    "dehradun",
    "uttarakhand"
   ]
  },
  {
   "id": "ranchi",
   "name": "Ranchi",
   "state": "Jharkhand",
   "tier": 2,
   "aliases": [
    "ranchi",
    "jamshedpur",
    "jharkhand"
   ]
  },
  {
   "id": "raipur",
   "name": "Raipur",
   "state": "Chhattisgarh",
   "tier": 2,
   "aliases": [
    "raipur",
    "chhattisgarh"
   ]
  },
  {
   "id": "panaji",
   "name": "Goa",
   "state": "Goa",
   "tier": 2,
   "aliases": [
    "goa",
    "panaji"
   ]
  },
  {
   "id": "mysuru",
   "name": "Mysuru",
   "state": "Karnataka",
   "tier": 2,
   "aliases": [
    "mysuru",
    "mysore",
    "mangaluru",
    "mangalore"
   ]
  },
  {
   "id": "ludhiana",
   "name": "Ludhiana",
   "state": "Punjab",
   "tier": 2,
   "aliases": [
    "ludhiana",
    "amritsar",
    "punjab"
   ]
  },
  {
   "id": "shimla",
   "name": "Shimla",
   "state": "Himachal Pradesh",
   "tier": 2,
   "aliases": [
    "shimla",
    "himachal"
   ]
  },
  {
   "id": "jammu",
   "name": "Jammu",
   "state": "Jammu & Kashmir",
   "tier": 2,
   "aliases": [
    "jammu",
    "srinagar",
    "kashmir"
   ]
  },
  {
   "id": "other",
   "name": "Other / remote",
   "tier": 3,
   "aliases": [
    "remote",
    "other",
    "work from home"
   ]
  }
 ],
 "national": "in",
 "industries": [
  {
   "id": "big4-consulting",
   "name": "Big 4 / professional services",
   "aliases": [
    "big 4",
    "big4",
    "consulting",
    "ca firm",
    "audit firm",
    "professional services"
   ]
  },
  {
   "id": "banking-nbfc",
   "name": "Banking, NBFC & fintech",
   "aliases": [
    "bank",
    "banking",
    "nbfc",
    "fintech",
    "financial services",
    "insurance"
   ]
  },
  {
   "id": "it-saas",
   "name": "IT services & SaaS",
   "aliases": [
    "it",
    "software",
    "saas",
    "technology",
    "tech"
   ]
  },
  {
   "id": "manufacturing",
   "name": "Manufacturing & engineering",
   "aliases": [
    "manufacturing",
    "auto",
    "engineering",
    "pharma",
    "chemicals"
   ]
  },
  {
   "id": "fmcg-retail",
   "name": "FMCG, retail & e-commerce",
   "aliases": [
    "fmcg",
    "retail",
    "e-commerce",
    "ecommerce",
    "consumer"
   ]
  },
  {
   "id": "psu-govt",
   "name": "PSU & government",
   "aliases": [
    "psu",
    "government",
    "public sector"
   ]
  },
  {
   "id": "startup",
   "name": "Start-up / digital",
   "aliases": [
    "startup",
    "start-up",
    "digital",
    "edtech"
   ]
  },
  {
   "id": "other",
   "name": "Other",
   "aliases": []
  }
 ],
 "company_types": [
  {
   "id": "mnc",
   "name": "Multinational"
  },
  {
   "id": "large-indian",
   "name": "Large Indian company (listed / 1,000+ staff)"
  },
  {
   "id": "mid",
   "name": "Mid-size (100–1,000 staff)"
  },
  {
   "id": "small",
   "name": "Small (under 100 staff)"
  },
  {
   "id": "startup",
   "name": "Funded start-up"
  },
  {
   "id": "psu",
   "name": "PSU / government"
  },
  {
   "id": "firm",
   "name": "CA / consulting firm"
  }
 ],
 "salary": [
  {
   "id": "salary-observations",
   "file": "salary/observations.v2.json",
   "version": "2.4.0",
   "status": "verified",
   "updated": "2026-09-15",
   "review_after": "2027-03-31",
   "banner": null,
   "currency": "INR",
   "observations": [
    {
     "id": "icai-2026-mean",
     "role": "ca-newly-qualified",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "stat": "mean",
     "value": 1300000,
     "unit": "per-annum",
     "source": "bntw-icai-65",
     "source_url": "https://businessnewsthisweek.com/education/icai-to-organise-65th-campus-placement-programme-for-newly-qualified-chartered-accountants-across-29-centres/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-05-31",
     "period": "ICAI campus placement, April–May 2026 season",
     "sample": "over 2,570 candidates placed",
     "methodology": "Average CTC offered, as announced by ICAI and reported in the press.",
     "confidence": 0.5,
     "limitations": "Reported by a secondary outlet whose edition numbering conflicts with others; ICAI release to be archived. Mean and maximum only.",
     "last_verified": "2026-09-13",
     "provenance": {
      "raw_file": "raw/icai/placements.json",
      "raw_ref": "seasons[2].average_lpa"
     },
     "evidence_type": "salary-benchmark",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "id": "icai-2026-max",
     "role": "ca-newly-qualified",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "stat": "max",
     "value": 2750000,
     "unit": "per-annum",
     "source": "bntw-icai-65",
     "source_url": "https://businessnewsthisweek.com/education/icai-to-organise-65th-campus-placement-programme-for-newly-qualified-chartered-accountants-across-29-centres/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-05-31",
     "period": "ICAI campus placement, April–May 2026 season",
     "sample": "single highest domestic offer",
     "methodology": "Highest domestic package, as reported.",
     "confidence": 0.5,
     "limitations": "A single offer, not a percentile.",
     "last_verified": "2026-09-13",
     "provenance": {
      "raw_file": "raw/icai/placements.json",
      "raw_ref": "seasons[2].highest_domestic_lpa"
     },
     "evidence_type": "salary-benchmark",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "id": "icai-60-mean",
     "role": "ca-newly-qualified",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "stat": "mean",
     "value": 1249000,
     "unit": "per-annum",
     "source": "careers360-icai-60",
     "source_url": "https://news.careers360.com/icai-60th-campus-placement-ends-highest-domestic-package-at-rs-26-70-lakh-per-annum",
     "collection_date": "2026-09-13",
     "effective_date": "2024-12-28",
     "period": "ICAI 60th campus placement (Aug–Dec 2024 season)",
     "sample": "240 companies; \"over 8,000 newly qualified CAs\" placed across the last two seasons",
     "methodology": "Average of salary offers accepted through the ICAI campus placement programme, as announced by ICAI and reported by Careers360.",
     "confidence": 0.7,
     "limitations": "Campus placements cover only CAs who opt in; offers are cost-to-company as stated by recruiters; no distribution beyond the mean and the maximum is published.",
     "last_verified": "2026-09-13",
     "provenance": {
      "raw_file": "raw/icai/placements.json",
      "raw_ref": "seasons[1].average_lpa"
     },
     "evidence_type": "salary-benchmark",
     "freshness": "ageing",
     "months_old": 21
    },
    {
     "id": "icai-60-max",
     "role": "ca-newly-qualified",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "stat": "max",
     "value": 2670000,
     "unit": "per-annum",
     "source": "careers360-icai-60",
     "source_url": "https://news.careers360.com/icai-60th-campus-placement-ends-highest-domestic-package-at-rs-26-70-lakh-per-annum",
     "collection_date": "2026-09-13",
     "effective_date": "2024-12-28",
     "period": "ICAI 60th campus placement (Aug–Dec 2024 season)",
     "sample": "Single highest domestic offer (Power Finance Corporation)",
     "methodology": "Highest domestic offer announced by ICAI, reported by Careers360.",
     "confidence": 0.7,
     "limitations": "A single offer, not a percentile.",
     "last_verified": "2026-09-13",
     "provenance": {
      "raw_file": "raw/icai/placements.json",
      "raw_ref": "seasons[1].highest_domestic_lpa"
     },
     "evidence_type": "salary-benchmark",
     "freshness": "ageing",
     "months_old": 21
    },
    {
     "id": "icai-2023-mean",
     "role": "ca-newly-qualified",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "stat": "mean",
     "value": 1250000,
     "unit": "per-annum",
     "source": "careers360-icai-2023",
     "source_url": "https://news.careers360.com/icai-ca-jobs-placement-salary-41-lakh-foundation-intermediate-final-chartered-accountant-new-scheme-registration",
     "collection_date": "2026-09-13",
     "effective_date": "2024-02-21",
     "period": "ICAI campus placement, 2023 qualifiers (reported Feb 2024)",
     "sample": "More than 9,000 candidates opted in; 138 companies",
     "methodology": "Average package offered, as stated by ICAI and reported by Careers360.",
     "confidence": 0.6,
     "limitations": "The report does not name the edition; treated as the season preceding the 60th.",
     "last_verified": "2026-09-13",
     "provenance": {
      "raw_file": "raw/icai/placements.json",
      "raw_ref": "seasons[0].average_lpa"
     },
     "evidence_type": "salary-benchmark",
     "freshness": "stale",
     "months_old": 31
    },
    {
     "id": "icai-2023-max",
     "role": "ca-newly-qualified",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "stat": "max",
     "value": 2400000,
     "unit": "per-annum",
     "source": "careers360-icai-2023",
     "source_url": "https://news.careers360.com/icai-ca-jobs-placement-salary-41-lakh-foundation-intermediate-final-chartered-accountant-new-scheme-registration",
     "collection_date": "2026-09-13",
     "effective_date": "2024-02-21",
     "period": "ICAI campus placement, 2023 qualifiers",
     "sample": "Single highest domestic offer",
     "methodology": "As reported.",
     "confidence": 0.6,
     "limitations": "A single offer; the international maximum (₹41 lakh) is excluded as it is not an Indian-market figure.",
     "last_verified": "2026-09-13",
     "provenance": {
      "raw_file": "raw/icai/placements.json",
      "raw_ref": "seasons[0].highest_domestic_lpa"
     },
     "evidence_type": "salary-benchmark",
     "freshness": "stale",
     "months_old": 31
    },
    {
     "id": "plfs-2324-urban-mean",
     "role": "regular-salaried-all",
     "experience_band": "any",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "stat": "mean",
     "value": 293208,
     "unit": "per-annum",
     "source": "mospi-plfs-2023-24",
     "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
     "collection_date": "2026-09-13",
     "effective_date": "2024-06-30",
     "period": "PLFS 2023-24, Apr–Jun 2024, urban, all regular wage/salaried employees",
     "sample": "29,371 urban regular wage/salaried employees reporting earnings",
     "methodology": "Average monthly earnings during the preceding calendar month (Table 38, urban, person) × 12.",
     "confidence": 0.85,
     "limitations": "All occupations and all ages; a general wage level, not a professional benchmark. Monthly earnings as reported by households, annualised.",
     "last_verified": "2026-09-13",
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['all India'][5]"
     },
     "benchmark": true,
     "evidence_type": "government-earnings",
     "freshness": "ageing",
     "months_old": 27
    },
    {
     "id": "plfs-2025-male-mean",
     "role": "regular-salaried-all",
     "experience_band": "any",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "stat": "mean",
     "value": 290604,
     "unit": "per-annum",
     "source": "mospi-plfs-2025",
     "source_url": "https://www.mospi.gov.in/uploads/latestReleases/latest_release_1774607827733_3e8964a9-268b-4cc9-ad65-cfc8a9e32f08_Press_note_AR_PLFS_2025_23032025_V2.1_26032026_final.pdf",
     "collection_date": "2026-09-13",
     "effective_date": "2025-12-31",
     "period": "PLFS 2025 (calendar year), regular wage/salaried employment, male",
     "sample": "about 2.72 lakh households",
     "methodology": "Average monthly earnings, male, from the press note × 12.",
     "confidence": 0.85,
     "limitations": "Male series only (combined figure not printed in the press note); rural+urban; all occupations.",
     "last_verified": "2026-09-13",
     "provenance": {
      "raw_file": "raw/mospi-plfs-2025/press-note-earnings.json",
      "raw_ref": "regular_wage_monthly_earnings['2025'].male"
     },
     "benchmark": true,
     "sex": "male",
     "evidence_type": "government-earnings",
     "freshness": "fresh",
     "months_old": 9
    },
    {
     "id": "iim-a-2026-median",
     "role": "mba-graduate-iim-a",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "stat": "median",
     "value": 3700000,
     "unit": "per-annum",
     "source": "campusutra-iim-a-2026",
     "source_url": "https://campusutra.com/iim-ahmedabad-audited-final-placement-report-2026/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-03",
     "period": "IIM Ahmedabad PGP Class of 2026, audited final placements",
     "sample": "392 offers accepted",
     "methodology": "Median domestic Maximum Earning Potential from the audited IPRS report, as reported.",
     "confidence": 0.6,
     "limitations": "MEP includes variable pay at its maximum; one institution; not a role-level figure.",
     "last_verified": "2026-09-13",
     "provenance": {
      "raw_file": "raw/iim-a-2026/press-report.json",
      "raw_ref": "median_domestic_mep_lpa"
     },
     "evidence_type": "salary-benchmark",
     "benchmark": true,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "id": "iim-a-2026-mean",
     "role": "mba-graduate-iim-a",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "stat": "mean",
     "value": 3698000,
     "unit": "per-annum",
     "source": "campusutra-iim-a-2026",
     "source_url": "https://campusutra.com/iim-ahmedabad-audited-final-placement-report-2026/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-03",
     "period": "IIM Ahmedabad PGP Class of 2026, audited final placements",
     "sample": "392 offers accepted",
     "methodology": "Mean domestic MEP, as reported.",
     "confidence": 0.6,
     "limitations": "As above.",
     "last_verified": "2026-09-13",
     "provenance": {
      "raw_file": "raw/iim-a-2026/press-report.json",
      "raw_ref": "mean_domestic_mep_lpa"
     },
     "evidence_type": "salary-benchmark",
     "benchmark": true,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "id": "iim-a-2026-max",
     "role": "mba-graduate-iim-a",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "stat": "max",
     "value": 8160000,
     "unit": "per-annum",
     "source": "campusutra-iim-a-2026",
     "source_url": "https://campusutra.com/iim-ahmedabad-audited-final-placement-report-2026/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-03",
     "period": "IIM Ahmedabad PGP Class of 2026, audited final placements",
     "sample": "392 offers accepted",
     "methodology": "Highest domestic MEP, as reported.",
     "confidence": 0.6,
     "limitations": "A single offer.",
     "last_verified": "2026-09-13",
     "provenance": {
      "raw_file": "raw/iim-a-2026/press-report.json",
      "raw_ref": "highest_domestic_mep_lpa"
     },
     "evidence_type": "salary-benchmark",
     "benchmark": true,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-13",
     "last_verified": "2026-09-13",
     "evidence_type": "employer-data",
     "id": "sbi-po-2026-ctc",
     "role": "public-sector-bank",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "entry-ctc",
     "value": 2197000,
     "source": "sbi-careers",
     "source_url": "https://bank.sbi/documents/77530/57941334/23062026_SBI+_+Detailed+Advt.+PO+26-27_09+-+Hindi.pdf/0f0ff4e1-2ef6-1e3f-719f-bb95ec1a2e13",
     "effective_date": "2026-06-23",
     "period": "SBI Probationary Officer recruitment 2026-27",
     "sample": "One employer; the bank's stated approximation at Mumbai",
     "methodology": "Approximate CTC at the starting pay scale at Mumbai centre, as stated in the advertisement (₹21.97 lakh).",
     "confidence": 0.75,
     "limitations": "Single employer, entry cadre, Mumbai example; allowances vary by posting. Employer data, not a market benchmark.",
     "provenance": {
      "raw_file": "raw/sbi-2026/po-advt-26-27.json",
      "raw_ref": "approx_ctc_mumbai_lpa"
     },
     "employer": "State Bank of India",
     "cadre": "Probationary Officer (JMGS-I)",
     "stat_label": "Employer-stated approximate CTC at entry (Mumbai)",
     "freshness": "fresh",
     "months_old": 3
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-13",
     "last_verified": "2026-09-13",
     "evidence_type": "employer-data",
     "id": "sbi-po-2026-basic",
     "role": "public-sector-bank",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "entry-basic",
     "value": 581760,
     "source": "sbi-careers",
     "source_url": "https://bank.sbi/documents/77530/57941334/23062026_SBI+_+Detailed+Advt.+PO+26-27_09+-+Hindi.pdf/0f0ff4e1-2ef6-1e3f-719f-bb95ec1a2e13",
     "effective_date": "2026-06-23",
     "period": "SBI Probationary Officer recruitment 2026-27",
     "sample": "One employer",
     "methodology": "Starting basic pay ₹48,480 per month (with 4 advance increments) × 12; excludes DA, HRA and other allowances.",
     "confidence": 0.75,
     "limitations": "Basic pay only.",
     "provenance": {
      "raw_file": "raw/sbi-2026/po-advt-26-27.json",
      "raw_ref": "basic_pay_monthly"
     },
     "employer": "State Bank of India",
     "cadre": "Probationary Officer (JMGS-I)",
     "stat_label": "Starting basic pay × 12",
     "freshness": "fresh",
     "months_old": 3
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-13",
     "last_verified": "2026-09-13",
     "evidence_type": "employer-data",
     "id": "sbi-ja-2026-emoluments",
     "role": "public-sector-bank",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "entry-gross-clerical",
     "value": 552000,
     "source": "sbi-careers",
     "source_url": "https://sbi.bank.in/webfiles/uploads/files_2627/08/JA_2026_Detailed_Advt_Eng.pdf",
     "effective_date": "2026-08-01",
     "period": "SBI Junior Associate (clerical) recruitment 2026",
     "sample": "One employer; the bank's stated figure at Mumbai",
     "methodology": "Total starting emoluments of a clerical-cadre employee at a metro like Mumbai, around ₹46,000 per month inclusive of DA and allowances, × 12.",
     "confidence": 0.75,
     "limitations": "Clerical cadre, not officer; Mumbai figure; \"around\". Listed as evidence, not used as the role headline.",
     "provenance": {
      "raw_file": "raw/sbi-2026/ja-advt-2026.json",
      "raw_ref": "starting_emoluments_monthly_mumbai"
     },
     "employer": "State Bank of India",
     "cadre": "Junior Associate (clerical)",
     "stat_label": "Clerical cadre starting emoluments × 12 (Mumbai)",
     "freshness": "fresh",
     "months_old": 1
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-13",
     "last_verified": "2026-09-13",
     "evidence_type": "employer-data",
     "id": "tcs-2026-digital-ug",
     "role": "software-engineer",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 709000,
     "low": 340000,
     "high": 930000,
     "source": "tcs-careers",
     "source_url": "https://www.tcs.com/careers/india/tcs-all-india-nqt-hiring",
     "effective_date": "2026-02-18",
     "period": "TCS All India NQT hiring, 2026 batch, 0–1 year, UG",
     "sample": "One employer's published cadre bands",
     "methodology": "Value is the low end of the Digital cadre CTC range for UG candidates with 0–1 year (₹7.09 LPA); band low is the minimum Ninja CTC for a UG candidate (₹3.4 LPA); band high is the top of the Prime UG 0–1 year range (₹9.30 LPA). All from the employer's page.",
     "confidence": 0.75,
     "limitations": "One employer; the cadre offered depends on test performance; \"actual compensation basis relevant work experience and job location\". Employer data, not a market benchmark.",
     "provenance": {
      "raw_file": "raw/tcs-nqt-2026/hiring-page.json",
      "raw_ref": "bands_lpa.digital_ug_0_1[0]"
     },
     "provenance_low": {
      "raw_file": "raw/tcs-nqt-2026/hiring-page.json",
      "raw_ref": "bands_lpa.ninja_ug_min"
     },
     "provenance_high": {
      "raw_file": "raw/tcs-nqt-2026/hiring-page.json",
      "raw_ref": "bands_lpa.prime_ug_0_1[1]"
     },
     "employer": "Tata Consultancy Services",
     "cadre": "Ninja · Digital · Prime (UG, 0–1 year)",
     "stat_label": "Employer cadre bands: Ninja ₹3.4L min · Digital ₹7.09–7.30L · Prime ₹9.09–9.30L",
     "freshness": "fresh",
     "months_old": 7
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-13",
     "last_verified": "2026-09-13",
     "evidence_type": "employer-data",
     "id": "tcs-2026-digital-ug-1-2",
     "role": "software-engineer",
     "experience_band": "early",
     "seniority": "junior",
     "stat": "employer-band",
     "value": 750000,
     "low": 750000,
     "high": 966000,
     "source": "tcs-careers",
     "source_url": "https://www.tcs.com/careers/india/tcs-all-india-nqt-hiring",
     "effective_date": "2026-02-18",
     "period": "TCS All India NQT hiring, 2026 batch, 1–2 years, UG",
     "sample": "One employer's published cadre bands",
     "methodology": "Low end of the Digital cadre range for UG candidates with 1–2 years (₹7.50 LPA); band high is the top of the Prime UG 1–2 year range (₹9.66 LPA).",
     "confidence": 0.75,
     "limitations": "One employer; NQT lateral cadres only; 1–2 years is the lower edge of the 2–4 year band this site uses, so the match is approximate.",
     "provenance": {
      "raw_file": "raw/tcs-nqt-2026/hiring-page.json",
      "raw_ref": "bands_lpa.digital_ug_1_2[0]"
     },
     "provenance_low": {
      "raw_file": "raw/tcs-nqt-2026/hiring-page.json",
      "raw_ref": "bands_lpa.digital_ug_1_2[0]"
     },
     "provenance_high": {
      "raw_file": "raw/tcs-nqt-2026/hiring-page.json",
      "raw_ref": "bands_lpa.prime_ug_1_2[1]"
     },
     "employer": "Tata Consultancy Services",
     "cadre": "Digital · Prime (UG, 1–2 years)",
     "stat_label": "Employer cadre bands: Digital ₹7.50–7.72L · Prime ₹9.45–9.66L",
     "freshness": "fresh",
     "months_old": 7
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "ssc-2026-clerk-band",
     "role": "government-clerk",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 306000,
     "low": 238800,
     "high": 538800,
     "source": "ssc-goi",
     "source_url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
     "effective_date": "2026-05-21",
     "period": "SSC CGLE 2026 and CHSLE 2026 notices",
     "sample": "Government of India Group B/C posts filled through SSC",
     "methodology": "Upper Division Clerk / Tax Assistant (Pay Level 4, ₹25,500) × 12 as the figure; band from Lower Division Clerk (Level 2, ₹19,900) to Assistant Section Officer (Level 7, ₹44,900). Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only; DA (about half of basic) and HRA are excluded. One employer (Government of India); a band across cadres, not a distribution.",
     "provenance": {
      "raw_file": "raw/ssc-2026/cgl-chsl-notices.json",
      "raw_ref": "posts.upper_division_clerk.start"
     },
     "provenance_low": {
      "raw_file": "raw/ssc-2026/cgl-chsl-notices.json",
      "raw_ref": "posts.lower_division_clerk.start"
     },
     "provenance_high": {
      "raw_file": "raw/ssc-2026/cgl-chsl-notices.json",
      "raw_ref": "posts.assistant_section_officer.start"
     },
     "employer": "Government of India (via SSC)",
     "cadre": "LDC (L2) · UDC / Tax Assistant (L4) · Assistant (L6) · ASO / Inspector (L7)",
     "stat_label": "Basic pay × 12: LDC ₹19,900 · UDC ₹25,500 · ASO ₹44,900 per month",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "ssc-2026-aso-basic",
     "role": "government-clerk",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "entry-basic",
     "value": 538800,
     "source": "ssc-goi",
     "source_url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
     "effective_date": "2026-05-21",
     "period": "SSC CGLE 2026",
     "sample": "Group B posts",
     "methodology": "Assistant Section Officer / Inspector of Income Tax, Pay Level 7. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only.",
     "provenance": {
      "raw_file": "raw/ssc-2026/cgl-chsl-notices.json",
      "raw_ref": "posts.assistant_section_officer.start"
     },
     "employer": "Government of India (via SSC)",
     "cadre": "Assistant Section Officer / Inspector (Level 7)",
     "stat_label": "ASO / Inspector basic pay × 12 (Level 7)",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "ssc-2026-ldc-basic",
     "role": "government-clerk",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "entry-basic",
     "value": 238800,
     "source": "ssc-goi",
     "source_url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_chsle_2026.pdf",
     "effective_date": "2026-09-07",
     "period": "SSC CHSLE 2026",
     "sample": "Group C posts",
     "methodology": "Lower Division Clerk / Junior Secretariat Assistant, Pay Level 2. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only.",
     "provenance": {
      "raw_file": "raw/ssc-2026/cgl-chsl-notices.json",
      "raw_ref": "posts.lower_division_clerk.start"
     },
     "employer": "Government of India (via SSC)",
     "cadre": "Lower Division Clerk (Level 2)",
     "stat_label": "LDC basic pay × 12 (Level 2)",
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "ssc-2026-accountant",
     "role": "accountant",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 350400,
     "low": 350400,
     "high": 571200,
     "source": "ssc-goi",
     "source_url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
     "effective_date": "2026-05-21",
     "period": "SSC CGLE 2026",
     "sample": "Accountant / Junior Accountant posts under C&AG, CGA and other Ministries; Assistant Accounts/Audit Officer under C&AG",
     "methodology": "Accountant / Junior Accountant, Pay Level 5 (₹29,200) × 12 as the figure; band to Assistant Accounts Officer, Level 8 (₹47,600). Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Government accountant cadres only — says nothing about private-sector accountant pay. Basic pay only.",
     "provenance": {
      "raw_file": "raw/ssc-2026/cgl-chsl-notices.json",
      "raw_ref": "posts.accountant_junior_accountant.start"
     },
     "provenance_low": {
      "raw_file": "raw/ssc-2026/cgl-chsl-notices.json",
      "raw_ref": "posts.accountant_junior_accountant.start"
     },
     "provenance_high": {
      "raw_file": "raw/ssc-2026/cgl-chsl-notices.json",
      "raw_ref": "posts.assistant_audit_officer.start"
     },
     "employer": "Government of India (via SSC)",
     "cadre": "Accountant / Junior Accountant (L5) · Assistant Accounts Officer (L8)",
     "stat_label": "Basic pay × 12: Accountant ₹29,200 · Assistant Accounts Officer ₹47,600 per month",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "ssc-2026-auditor",
     "role": "audit-associate",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 350400,
     "low": 350400,
     "high": 571200,
     "source": "ssc-goi",
     "source_url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
     "effective_date": "2026-05-21",
     "period": "SSC CGLE 2026",
     "sample": "Auditor posts under C&AG and CGDA; Assistant Audit Officer under C&AG",
     "methodology": "Auditor, Pay Level 5 (₹29,200) × 12 as the figure; band to Assistant Audit Officer, Level 8 (₹47,600). Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Government audit cadres only — not audit-firm pay. Basic pay only.",
     "provenance": {
      "raw_file": "raw/ssc-2026/cgl-chsl-notices.json",
      "raw_ref": "posts.auditor.start"
     },
     "provenance_low": {
      "raw_file": "raw/ssc-2026/cgl-chsl-notices.json",
      "raw_ref": "posts.auditor.start"
     },
     "provenance_high": {
      "raw_file": "raw/ssc-2026/cgl-chsl-notices.json",
      "raw_ref": "posts.assistant_audit_officer.start"
     },
     "employer": "Government of India (via SSC)",
     "cadre": "Auditor (L5) · Assistant Audit Officer (L8)",
     "stat_label": "Basic pay × 12: Auditor ₹29,200 · Assistant Audit Officer ₹47,600 per month",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "ibps-2026-po-basic",
     "role": "public-sector-bank",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "entry-basic",
     "value": 581760,
     "source": "ibps",
     "source_url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification_CRP-PO-XVI_Final_V1_30.06.2026.pdf",
     "effective_date": "2026-06-30",
     "period": "IBPS CRP PO/MT-XVI (vacancies of 2027-28)",
     "sample": "11 participating public sector banks",
     "methodology": "Probationary Officer / Management Trainee starting basic ₹48,480 per month × 12; allowances per participating bank. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only; allowances vary by bank and posting.",
     "provenance": {
      "raw_file": "raw/ibps-2026/po-xvi-csa-xvi.json",
      "raw_ref": "po_basic_monthly"
     },
     "employer": "11 public sector banks (via IBPS)",
     "cadre": "Probationary Officer / Management Trainee (JMGS-I)",
     "stat_label": "PO starting basic × 12, 11 banks (IBPS)",
     "freshness": "fresh",
     "months_old": 3
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "ibps-2026-csa-basic",
     "role": "public-sector-bank",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "entry-basic",
     "value": 288600,
     "source": "ibps",
     "source_url": "https://www.ibps.in/wp-content/uploads/Notification_CRP_CSA_XVI-Final.pdf",
     "effective_date": "2026-08-01",
     "period": "IBPS CRP CSA-XVI (vacancies of 2027-28)",
     "sample": "11 participating public sector banks",
     "methodology": "Customer Service Associate (clerical) scale starting at ₹24,050 per month × 12. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Clerical cadre; basic pay only.",
     "provenance": {
      "raw_file": "raw/ibps-2026/po-xvi-csa-xvi.json",
      "raw_ref": "csa_basic_monthly"
     },
     "employer": "11 public sector banks (via IBPS)",
     "cadre": "Customer Service Associate (clerical)",
     "stat_label": "CSA scale start × 12, 11 banks (IBPS)",
     "freshness": "fresh",
     "months_old": 1
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "ntpc-2026-et-finance",
     "role": "psu-officer",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 480000,
     "low": 360000,
     "high": 480000,
     "source": "ntpc-careers",
     "source_url": "https://careers.ntpc.co.in/recruitment/",
     "effective_date": "2026-01-13",
     "period": "NTPC Advt. 01/26 (Executive Trainee – Finance, CA/CMA) and 15/25 (Assistant Law Officer, E0)",
     "sample": "One Maharatna PSU, entry executive grades",
     "methodology": "Executive Trainee E1 basic ₹40,000 per month × 12 as the figure; band from E0 (₹30,000, Assistant Law Officer) to E1. IDA scale: E0 ₹30,000–1,20,000; E1 ₹40,000–1,40,000. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only; IDA DA, HRA/lease, PRP and perquisites excluded. One employer.",
     "provenance": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e1_start"
     },
     "provenance_low": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e0_start"
     },
     "provenance_high": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e1_start"
     },
     "employer": "NTPC Limited",
     "cadre": "Executive Trainee (E1) · Assistant Officer (E0)",
     "stat_label": "Basic pay × 12: E0 ₹30,000 · E1 ₹40,000 per month (IDA)",
     "freshness": "fresh",
     "months_old": 8
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "ntpc-2025-dy-manager-e4",
     "role": "psu-officer",
     "experience_band": "senior",
     "seniority": "manager",
     "stat": "employer-band",
     "value": 840000,
     "low": 720000,
     "high": 840000,
     "source": "ntpc-careers",
     "source_url": "https://careers.ntpc.co.in/recruitment/",
     "effective_date": "2025-10-01",
     "period": "NTPC Advt. 10/25 (Deputy Manager, E4; minimum 10 years post-qualification executive experience)",
     "sample": "One Maharatna PSU, lateral recruitment of 150 Deputy Managers",
     "methodology": "E4 grade IDA scale ₹70,000–2,00,000: scale start × 12 as the figure; band from E3 start (₹60,000) to E4 start. Banded as senior (9–14 years) because the advertisement requires a minimum of 10 years. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Scale start, not the pay actually fixed for a lateral entrant (which may be higher within the scale). Basic pay only. One employer, one advertisement.",
     "provenance": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e4_start"
     },
     "provenance_low": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e3_start"
     },
     "provenance_high": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e4_start"
     },
     "employer": "NTPC Limited",
     "cadre": "Deputy Manager, Electrical / Mechanical / C&I (E4, 10+ years)",
     "stat_label": "Basic pay × 12: E3 ₹60,000 · E4 ₹70,000 per month (IDA scale start)",
     "freshness": "fresh",
     "months_old": 11
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "ntpc-2026-et-finance-cma",
     "role": "cost-accountant",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 480000,
     "low": 480000,
     "high": 480000,
     "source": "ntpc-careers",
     "source_url": "https://careers.ntpc.co.in/recruitment/",
     "effective_date": "2026-01-13",
     "period": "NTPC Advt. 01/26 — Executive Trainee – Finance (CA/CMA)",
     "sample": "One PSU, 25 posts open to CA and CMA",
     "methodology": "E1 basic ₹40,000 per month × 12; IDA scale ₹40,000–1,40,000. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "One employer; the post is open to CAs as well as CMAs; basic pay only.",
     "provenance": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e1_start"
     },
     "provenance_low": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e1_start"
     },
     "provenance_high": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e1_start"
     },
     "employer": "NTPC Limited",
     "cadre": "Executive Trainee – Finance (E1)",
     "stat_label": "Executive Trainee basic × 12 (IDA E1)",
     "freshness": "fresh",
     "months_old": 8
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "ntpc-2025-alo-e0",
     "role": "legal-counsel",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 360000,
     "low": 360000,
     "high": 360000,
     "source": "ntpc-careers",
     "source_url": "https://careers.ntpc.co.in/recruitment/",
     "effective_date": "2025-12-01",
     "period": "NTPC Advt. 15/25 — Assistant Law Officer (E0) through CLAT-2026",
     "sample": "One PSU, 6 posts",
     "methodology": "E0 IDA scale ₹30,000–1,20,000; scale start × 12. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "One employer; basic pay only; PSU in-house counsel, not law-firm pay.",
     "provenance": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e0_start"
     },
     "provenance_low": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e0_start"
     },
     "provenance_high": {
      "raw_file": "raw/ntpc-2025-26/advertisements.json",
      "raw_ref": "grades.e0_start"
     },
     "employer": "NTPC Limited",
     "cadre": "Assistant Law Officer (E0)",
     "stat_label": "Assistant Law Officer basic × 12 (IDA E0)",
     "freshness": "fresh",
     "months_old": 9
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "aiims-2026-nursing-officer",
     "role": "nurse",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 538800,
     "low": 538800,
     "high": 538800,
     "source": "aiims-exams",
     "source_url": "https://www.aiimsexams.ac.in/advertisement/6a6350f7e5a81c4267f4ff04",
     "effective_date": "2026-07-24",
     "period": "AIIMS NORCET-11, Notice No. 103/2026",
     "sample": "2,218 Nursing Officer posts, AIIMS New Delhi and participating institutes",
     "methodology": "Nursing Officer, Pay Level 7; level start ₹44,900 per month (Government of India pay matrix, as printed in the SSC CGLE 2026 notice) × 12. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only; nursing allowance, DA and HRA excluded. Public-sector nursing at AIIMS, not private hospitals.",
     "provenance": {
      "raw_file": "raw/goi-pay-matrix-2026/levels.json",
      "raw_ref": "levels.level_7.start"
     },
     "provenance_low": {
      "raw_file": "raw/goi-pay-matrix-2026/levels.json",
      "raw_ref": "levels.level_7.start"
     },
     "provenance_high": {
      "raw_file": "raw/goi-pay-matrix-2026/levels.json",
      "raw_ref": "levels.level_7.start"
     },
     "cadre_provenance": {
      "raw_file": "raw/aiims-2026/norcet-11.json",
      "raw_ref": "pay_level"
     },
     "employer": "AIIMS (Government of India)",
     "cadre": "Nursing Officer, Group B (Level 7)",
     "stat_label": "Nursing Officer basic × 12 (Level 7)",
     "freshness": "fresh",
     "months_old": 2
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "cds-2026-lieutenant",
     "role": "defence-officer",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 673200,
     "low": 673200,
     "high": 735600,
     "source": "upsc",
     "source_url": "https://www.upsc.gov.in/sites/default/files/Notif-CDS-II-2026-Engl-200526.pdf",
     "effective_date": "2026-05-20",
     "period": "UPSC CDS (II) 2026 notice, Appendix IV",
     "sample": "Commissioned officers, Army/Navy/Air Force",
     "methodology": "Lieutenant, Level 10, ₹56,100 per month × 12 as the figure; band to Captain, Level 10B, ₹61,300. Military Service Pay of ₹15,500 per month is additional and shown as context. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only; MSP, DA, HRA and risk/hardship allowances excluded. Promotion timelines are not stated by the source, so higher ranks are not assigned to experience bands.",
     "provenance": {
      "raw_file": "raw/upsc-cds-2026/cds-ii-notice.json",
      "raw_ref": "ranks.lieutenant"
     },
     "provenance_low": {
      "raw_file": "raw/upsc-cds-2026/cds-ii-notice.json",
      "raw_ref": "ranks.lieutenant"
     },
     "provenance_high": {
      "raw_file": "raw/upsc-cds-2026/cds-ii-notice.json",
      "raw_ref": "ranks.captain"
     },
     "employer": "Indian Armed Forces (Government of India)",
     "cadre": "Lieutenant (Level 10) · Captain (Level 10B)",
     "stat_label": "Basic pay × 12: Lieutenant ₹56,100 · Captain ₹61,300 per month (+ MSP)",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "cds-2026-msp",
     "role": "defence-officer",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "allowance-msp",
     "value": 186000,
     "source": "upsc",
     "source_url": "https://www.upsc.gov.in/sites/default/files/Notif-CDS-II-2026-Engl-200526.pdf",
     "effective_date": "2026-05-20",
     "period": "UPSC CDS (II) 2026 notice, Appendix IV",
     "sample": "Officers from Lieutenant to Brigadier",
     "methodology": "Military Service Pay, ₹15,500 per month fixed, × 12.",
     "limitations": "An allowance in addition to basic pay; not pay.",
     "provenance": {
      "raw_file": "raw/upsc-cds-2026/cds-ii-notice.json",
      "raw_ref": "msp_monthly"
     },
     "employer": "Indian Armed Forces (Government of India)",
     "cadre": "Lieutenant to Brigadier",
     "stat_label": "Military Service Pay × 12 (fixed, in addition to basic)",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "cds-2026-major",
     "role": "defence-officer",
     "experience_band": "any",
     "stat": "rank-basic",
     "value": 832800,
     "source": "upsc",
     "source_url": "https://www.upsc.gov.in/sites/default/files/Notif-CDS-II-2026-Engl-200526.pdf",
     "effective_date": "2026-05-20",
     "period": "UPSC CDS (II) 2026 notice, Appendix IV",
     "sample": "Rank pay ladder",
     "methodology": "Major, Level 11, ₹69,400 per month × 12. Years to reach the rank are not stated by the source; not assigned to a band.",
     "limitations": "Context only; basic pay only.",
     "provenance": {
      "raw_file": "raw/upsc-cds-2026/cds-ii-notice.json",
      "raw_ref": "ranks.major"
     },
     "employer": "Indian Armed Forces (Government of India)",
     "cadre": "Major (Level 11)",
     "stat_label": "Major basic × 12 (Level 11)",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "cds-2026-lt-colonel",
     "role": "defence-officer",
     "experience_band": "any",
     "stat": "rank-basic",
     "value": 1454400,
     "source": "upsc",
     "source_url": "https://www.upsc.gov.in/sites/default/files/Notif-CDS-II-2026-Engl-200526.pdf",
     "effective_date": "2026-05-20",
     "period": "UPSC CDS (II) 2026 notice, Appendix IV",
     "sample": "Rank pay ladder",
     "methodology": "Lieutenant Colonel, Level 12A, ₹1,21,200 per month × 12. Years to reach the rank are not stated by the source; not assigned to a band.",
     "limitations": "Context only; basic pay only.",
     "provenance": {
      "raw_file": "raw/upsc-cds-2026/cds-ii-notice.json",
      "raw_ref": "ranks.lieutenant_colonel"
     },
     "employer": "Indian Armed Forces (Government of India)",
     "cadre": "Lieutenant Colonel (Level 12A)",
     "stat_label": "Lieutenant Colonel basic × 12 (Level 12A)",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "isro-2026-scientist-sc",
     "role": "research-scientist",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 673200,
     "low": 673200,
     "high": 673200,
     "source": "isro",
     "source_url": "https://www.isro.gov.in/media_isro/pdf/recruitmentNotice/2026/August/Bilingual_Advertisement_27082026.pdf",
     "effective_date": "2026-08-27",
     "period": "ISRO ICRB Advt. 03(EMC):2026",
     "sample": "175 posts, Electronics / Mechanical / Computer Science",
     "methodology": "Scientist/Engineer \"SC\", Level 10, minimum basic ₹56,100 per month × 12. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only; DA, HRA and transport allowance excluded. One employer (ISRO); an engineering entry grade, not a research-fellow or private R&D figure.",
     "provenance": {
      "raw_file": "raw/isro-2026/icrb-03-emc-2026.json",
      "raw_ref": "basic_monthly"
     },
     "provenance_low": {
      "raw_file": "raw/isro-2026/icrb-03-emc-2026.json",
      "raw_ref": "basic_monthly"
     },
     "provenance_high": {
      "raw_file": "raw/isro-2026/icrb-03-emc-2026.json",
      "raw_ref": "basic_monthly"
     },
     "employer": "ISRO (Department of Space)",
     "cadre": "Scientist/Engineer SC (Level 10)",
     "stat_label": "Scientist/Engineer SC minimum basic × 12 (Level 10)",
     "freshness": "fresh",
     "months_old": 1
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "jnu-2026-assistant-professor",
     "role": "professor",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 692400,
     "low": 692400,
     "high": 692400,
     "source": "jnu",
     "source_url": "https://www.jnu.ac.in/sites/default/files/inline-files/JNU_AdvtNo_RC_75_2026.pdf",
     "effective_date": "2026-05-18",
     "period": "JNU Advt. RC/75/2026 (UGC Regulations 2018 scales)",
     "sample": "One central university; UGC-prescribed scale",
     "methodology": "Assistant Professor, Academic Level 10, ₹57,700 per month × 12. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only. Central/UGC-scale universities; private and state-scale institutions differ.",
     "provenance": {
      "raw_file": "raw/jnu-2026/rc-75-2026.json",
      "raw_ref": "cadres.assistant_professor.start"
     },
     "provenance_low": {
      "raw_file": "raw/jnu-2026/rc-75-2026.json",
      "raw_ref": "cadres.assistant_professor.start"
     },
     "provenance_high": {
      "raw_file": "raw/jnu-2026/rc-75-2026.json",
      "raw_ref": "cadres.assistant_professor.start"
     },
     "employer": "Jawaharlal Nehru University (UGC scale)",
     "cadre": "Assistant Professor (Academic Level 10)",
     "stat_label": "Assistant Professor basic × 12 (AL10, UGC)",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "jnu-2026-associate-professor",
     "role": "professor",
     "experience_band": "mid",
     "seniority": "senior",
     "stat": "employer-band",
     "value": 1576800,
     "low": 1576800,
     "high": 1576800,
     "source": "jnu",
     "source_url": "https://www.jnu.ac.in/sites/default/files/inline-files/JNU_AdvtNo_RC_75_2026.pdf",
     "effective_date": "2026-05-18",
     "period": "JNU Advt. RC/75/2026 (UGC Regulations 2018 scales)",
     "sample": "One central university; UGC-prescribed scale",
     "methodology": "Associate Professor, Academic Level 13A, ₹1,31,400 per month × 12. Banded at 5–8 years because the advertisement requires a minimum of eight years of teaching/research experience. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "The band reflects the minimum experience the source states, not the experience of actual appointees. Basic pay only.",
     "provenance": {
      "raw_file": "raw/jnu-2026/rc-75-2026.json",
      "raw_ref": "cadres.associate_professor.start"
     },
     "provenance_low": {
      "raw_file": "raw/jnu-2026/rc-75-2026.json",
      "raw_ref": "cadres.associate_professor.start"
     },
     "provenance_high": {
      "raw_file": "raw/jnu-2026/rc-75-2026.json",
      "raw_ref": "cadres.associate_professor.start"
     },
     "employer": "Jawaharlal Nehru University (UGC scale)",
     "cadre": "Associate Professor (Academic Level 13A, 8+ years)",
     "stat_label": "Associate Professor basic × 12 (AL13A, UGC)",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "jnu-2026-professor",
     "role": "professor",
     "experience_band": "senior",
     "seniority": "senior",
     "stat": "employer-band",
     "value": 1730400,
     "low": 1730400,
     "high": 1730400,
     "source": "jnu",
     "source_url": "https://www.jnu.ac.in/sites/default/files/inline-files/JNU_AdvtNo_RC_75_2026.pdf",
     "effective_date": "2026-05-18",
     "period": "JNU Advt. RC/75/2026 (UGC Regulations 2018 scales)",
     "sample": "One central university; UGC-prescribed scale",
     "methodology": "Professor, Academic Level 14, ₹1,44,200 per month × 12. Banded at 9–14 years because the advertisement requires a minimum of ten years of teaching experience. Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "The band reflects the minimum experience the source states. Basic pay only.",
     "provenance": {
      "raw_file": "raw/jnu-2026/rc-75-2026.json",
      "raw_ref": "cadres.professor.start"
     },
     "provenance_low": {
      "raw_file": "raw/jnu-2026/rc-75-2026.json",
      "raw_ref": "cadres.professor.start"
     },
     "provenance_high": {
      "raw_file": "raw/jnu-2026/rc-75-2026.json",
      "raw_ref": "cadres.professor.start"
     },
     "employer": "Jawaharlal Nehru University (UGC scale)",
     "cadre": "Professor (Academic Level 14, 10+ years)",
     "stat_label": "Professor basic × 12 (AL14, UGC)",
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "kvs-2025-teacher-band",
     "role": "school-teacher",
     "experience_band": "entry",
     "seniority": "entry-level",
     "stat": "employer-band",
     "value": 538800,
     "low": 424800,
     "high": 571200,
     "source": "kvs",
     "source_url": "https://cdnbbsr.s3waas.gov.in/s32d2ca7eedf739ef4c3800713ec482e1a/uploads/2026/01/2026012368.pdf",
     "effective_date": "2025-03-20",
     "period": "KVS amended Recruitment Rules, 2025",
     "sample": "Kendriya Vidyalayas nationwide",
     "methodology": "TGT entry scale, Level 7 (₹44,900) × 12 as the figure; band from PRT, Level 6 (₹35,400) to PGT, Level 8 (₹47,600). Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only. Central government schools; private-school pay is not covered.",
     "provenance": {
      "raw_file": "raw/kvs-2025/recruitment-rules.json",
      "raw_ref": "posts.tgt.start"
     },
     "provenance_low": {
      "raw_file": "raw/kvs-2025/recruitment-rules.json",
      "raw_ref": "posts.prt.start"
     },
     "provenance_high": {
      "raw_file": "raw/kvs-2025/recruitment-rules.json",
      "raw_ref": "posts.pgt.start"
     },
     "employer": "Kendriya Vidyalaya Sangathan",
     "cadre": "PRT (L6) · TGT (L7) · PGT (L8)",
     "stat_label": "Basic pay × 12: PRT ₹35,400 · TGT ₹44,900 · PGT ₹47,600 per month",
     "freshness": "ageing",
     "months_old": 18
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-14",
     "last_verified": "2026-09-14",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "id": "kvs-2025-principal",
     "role": "school-teacher",
     "experience_band": "any",
     "stat": "rank-basic",
     "value": 945600,
     "source": "kvs",
     "source_url": "https://cdnbbsr.s3waas.gov.in/s32d2ca7eedf739ef4c3800713ec482e1a/uploads/2026/01/2026012368.pdf",
     "effective_date": "2025-03-20",
     "period": "KVS amended Recruitment Rules, 2025",
     "sample": "Principal posts (1,184)",
     "methodology": "Principal, Level 12, ₹78,800 per month × 12. The rules set an age window (35–50) rather than years of experience for direct recruits, so no band is assigned.",
     "limitations": "Context only; basic pay only.",
     "provenance": {
      "raw_file": "raw/kvs-2025/recruitment-rules.json",
      "raw_ref": "posts.principal.start"
     },
     "employer": "Kendriya Vidyalaya Sangathan",
     "cadre": "Principal (Level 12)",
     "stat_label": "Principal basic × 12 (Level 12)",
     "freshness": "ageing",
     "months_old": 18
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "ibps-so-2026-afo",
     "role": "agriculture-professional",
     "value": 581760,
     "source": "ibps-so",
     "source_url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification-CRP-SPL-XVI_Final_V1_30.06.2026.pdf",
     "effective_date": "2026-06-30",
     "period": "IBPS CRP SPL-XVI (vacancies of 2027-28)",
     "sample": "11 participating public sector banks",
     "methodology": "Agricultural Field Officer (Scale I): starting basic ₹48,480 per month × 12; scale ₹48,480–85,920; allowances per participating bank. Starting basic pay × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only; allowances vary by bank and posting. A public-sector-bank officer scale — not a private-sector benchmark for this role.",
     "provenance": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "employer": "11 public sector banks (via IBPS)",
     "cadre": "Agricultural Field Officer, Scale I",
     "stat_label": "Basic pay × 12: ₹48,480 per month (scale to ₹85,920)",
     "low": 581760,
     "high": 581760,
     "provenance_low": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "provenance_high": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "freshness": "fresh",
     "months_old": 3
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "ibps-so-2026-rajbhasha",
     "role": "translator",
     "value": 581760,
     "source": "ibps-so",
     "source_url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification-CRP-SPL-XVI_Final_V1_30.06.2026.pdf",
     "effective_date": "2026-06-30",
     "period": "IBPS CRP SPL-XVI (vacancies of 2027-28)",
     "sample": "11 participating public sector banks",
     "methodology": "Rajbhasha Adhikari (Scale I): starting basic ₹48,480 per month × 12; scale ₹48,480–85,920; allowances per participating bank. Starting basic pay × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only; allowances vary by bank and posting. A public-sector-bank officer scale — not a private-sector benchmark for this role.",
     "provenance": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "employer": "11 public sector banks (via IBPS)",
     "cadre": "Rajbhasha Adhikari, Scale I",
     "stat_label": "Basic pay × 12: ₹48,480 per month (scale to ₹85,920)",
     "low": 581760,
     "high": 581760,
     "provenance_low": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "provenance_high": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "freshness": "fresh",
     "months_old": 3
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "ibps-so-2026-law",
     "role": "lawyer",
     "value": 581760,
     "source": "ibps-so",
     "source_url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification-CRP-SPL-XVI_Final_V1_30.06.2026.pdf",
     "effective_date": "2026-06-30",
     "period": "IBPS CRP SPL-XVI (vacancies of 2027-28)",
     "sample": "11 participating public sector banks",
     "methodology": "Law Officer (Scale I): starting basic ₹48,480 per month × 12; scale ₹48,480–85,920; allowances per participating bank. Starting basic pay × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only; allowances vary by bank and posting. A public-sector-bank officer scale — not a private-sector benchmark for this role.",
     "provenance": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "employer": "11 public sector banks (via IBPS)",
     "cadre": "Law Officer, Scale I",
     "stat_label": "Basic pay × 12: ₹48,480 per month (scale to ₹85,920)",
     "low": 581760,
     "high": 581760,
     "provenance_low": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "provenance_high": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "freshness": "fresh",
     "months_old": 3
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "ibps-so-2026-hr",
     "role": "hr-executive",
     "value": 581760,
     "source": "ibps-so",
     "source_url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification-CRP-SPL-XVI_Final_V1_30.06.2026.pdf",
     "effective_date": "2026-06-30",
     "period": "IBPS CRP SPL-XVI (vacancies of 2027-28)",
     "sample": "11 participating public sector banks",
     "methodology": "HR/Personnel Officer (Scale I): starting basic ₹48,480 per month × 12; scale ₹48,480–85,920; allowances per participating bank. Starting basic pay × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only; allowances vary by bank and posting. A public-sector-bank officer scale — not a private-sector benchmark for this role.",
     "provenance": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "employer": "11 public sector banks (via IBPS)",
     "cadre": "HR/Personnel Officer, Scale I",
     "stat_label": "Basic pay × 12: ₹48,480 per month (scale to ₹85,920)",
     "low": 581760,
     "high": 581760,
     "provenance_low": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "provenance_high": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "freshness": "fresh",
     "months_old": 3
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "ibps-so-2026-marketing",
     "role": "marketing-executive",
     "value": 581760,
     "source": "ibps-so",
     "source_url": "https://www.ibps.in/wp-content/uploads/Detailed-Notification-CRP-SPL-XVI_Final_V1_30.06.2026.pdf",
     "effective_date": "2026-06-30",
     "period": "IBPS CRP SPL-XVI (vacancies of 2027-28)",
     "sample": "11 participating public sector banks",
     "methodology": "Marketing Officer (Scale I): starting basic ₹48,480 per month × 12; scale ₹48,480–85,920; allowances per participating bank. Starting basic pay × 12; excludes DA, HRA and other allowances.",
     "limitations": "Basic pay only; allowances vary by bank and posting. A public-sector-bank officer scale — not a private-sector benchmark for this role.",
     "provenance": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "employer": "11 public sector banks (via IBPS)",
     "cadre": "Marketing Officer, Scale I",
     "stat_label": "Basic pay × 12: ₹48,480 per month (scale to ₹85,920)",
     "low": 581760,
     "high": 581760,
     "provenance_low": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "provenance_high": {
      "raw_file": "raw/ibps-so-2026/spl-xvi.json",
      "raw_ref": "scale_i.start"
     },
     "freshness": "fresh",
     "months_old": 3
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "rbi-2026-grade-b-general",
     "role": "bank-officer",
     "value": 941400,
     "source": "rbi-grade-b",
     "source_url": "https://rbidocs.rbi.org.in/rdocs/Content/PDFs/DEPR29042026BE94DEA85E3C4753A82B191EB6A795ED.PDF",
     "effective_date": "2026-04-29",
     "period": "RBI Grade B (DR) 2026, Advt. RBISB/DA/01/2026-27",
     "sample": "Reserve Bank of India, Grade B direct recruits",
     "methodology": "General: starting basic ₹78,450 per month × 12; scale ₹78,450–1,41,600 (16 years); initial gross without HRA about ₹1,54,936 per month as stated. Starting basic pay × 12; excludes allowances.",
     "limitations": "Central-bank officer scale, one employer; basic pay only. The gross figure is stated for context and is not the value.",
     "provenance": {
      "raw_file": "raw/rbi-2026/grade-b-dr-2026.json",
      "raw_ref": "grade_b.start"
     },
     "employer": "Reserve Bank of India",
     "cadre": "Officer Grade B (DR) — General",
     "stat_label": "Basic pay × 12: ₹78,450 per month (gross without HRA ≈ ₹1,54,936)",
     "low": 941400,
     "high": 941400,
     "provenance_low": {
      "raw_file": "raw/rbi-2026/grade-b-dr-2026.json",
      "raw_ref": "grade_b.start"
     },
     "provenance_high": {
      "raw_file": "raw/rbi-2026/grade-b-dr-2026.json",
      "raw_ref": "grade_b.start"
     },
     "freshness": "fresh",
     "months_old": 5
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "rbi-2026-grade-b-depr",
     "role": "policy-researcher",
     "value": 941400,
     "source": "rbi-grade-b",
     "source_url": "https://rbidocs.rbi.org.in/rdocs/Content/PDFs/DEPR29042026BE94DEA85E3C4753A82B191EB6A795ED.PDF",
     "effective_date": "2026-04-29",
     "period": "RBI Grade B (DR) 2026, Advt. RBISB/DA/01/2026-27",
     "sample": "Reserve Bank of India, Grade B direct recruits",
     "methodology": "DEPR (Department of Economic and Policy Research): starting basic ₹78,450 per month × 12; scale ₹78,450–1,41,600 (16 years); initial gross without HRA about ₹1,54,936 per month as stated. Starting basic pay × 12; excludes allowances.",
     "limitations": "Central-bank officer scale, one employer; basic pay only. The gross figure is stated for context and is not the value.",
     "provenance": {
      "raw_file": "raw/rbi-2026/grade-b-dr-2026.json",
      "raw_ref": "grade_b.start"
     },
     "employer": "Reserve Bank of India",
     "cadre": "Officer Grade B (DR) — DEPR (Department of Economic and Policy Research)",
     "stat_label": "Basic pay × 12: ₹78,450 per month (gross without HRA ≈ ₹1,54,936)",
     "low": 941400,
     "high": 941400,
     "provenance_low": {
      "raw_file": "raw/rbi-2026/grade-b-dr-2026.json",
      "raw_ref": "grade_b.start"
     },
     "provenance_high": {
      "raw_file": "raw/rbi-2026/grade-b-dr-2026.json",
      "raw_ref": "grade_b.start"
     },
     "freshness": "fresh",
     "months_old": 5
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "rbi-2026-grade-b-dsim",
     "role": "statistician",
     "value": 941400,
     "source": "rbi-grade-b",
     "source_url": "https://rbidocs.rbi.org.in/rdocs/Content/PDFs/DEPR29042026BE94DEA85E3C4753A82B191EB6A795ED.PDF",
     "effective_date": "2026-04-29",
     "period": "RBI Grade B (DR) 2026, Advt. RBISB/DA/01/2026-27",
     "sample": "Reserve Bank of India, Grade B direct recruits",
     "methodology": "DSIM (Department of Statistics and Information Management): starting basic ₹78,450 per month × 12; scale ₹78,450–1,41,600 (16 years); initial gross without HRA about ₹1,54,936 per month as stated. Starting basic pay × 12; excludes allowances.",
     "limitations": "Central-bank officer scale, one employer; basic pay only. The gross figure is stated for context and is not the value.",
     "provenance": {
      "raw_file": "raw/rbi-2026/grade-b-dr-2026.json",
      "raw_ref": "grade_b.start"
     },
     "employer": "Reserve Bank of India",
     "cadre": "Officer Grade B (DR) — DSIM (Department of Statistics and Information Management)",
     "stat_label": "Basic pay × 12: ₹78,450 per month (gross without HRA ≈ ₹1,54,936)",
     "low": 941400,
     "high": 941400,
     "provenance_low": {
      "raw_file": "raw/rbi-2026/grade-b-dr-2026.json",
      "raw_ref": "grade_b.start"
     },
     "provenance_high": {
      "raw_file": "raw/rbi-2026/grade-b-dr-2026.json",
      "raw_ref": "grade_b.start"
     },
     "freshness": "fresh",
     "months_old": 5
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "ssc-je-2026-civil",
     "role": "civil-engineer",
     "value": 424800,
     "source": "ssc-goi",
     "source_url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_je_2026.pdf",
     "effective_date": "2026-09-02",
     "period": "SSC Junior Engineer Examination 2026",
     "sample": "Junior Engineer posts in Government of India organisations and offices",
     "methodology": "Junior Engineer (Civil): Group B, Pay Level-6, starting basic ₹35,400 per month × 12 (level range ₹35,400–1,12,400). Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Government junior engineer cadre only — says nothing about private-sector engineering pay. Basic pay only.",
     "provenance": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "employer": "Government of India (via SSC)",
     "cadre": "Junior Engineer (Civil) (L6)",
     "stat_label": "Basic pay × 12: ₹35,400 per month (Level 6)",
     "low": 424800,
     "high": 424800,
     "provenance_low": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "provenance_high": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "ssc-je-2026-mechanical",
     "role": "mechanical-engineer",
     "value": 424800,
     "source": "ssc-goi",
     "source_url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_je_2026.pdf",
     "effective_date": "2026-09-02",
     "period": "SSC Junior Engineer Examination 2026",
     "sample": "Junior Engineer posts in Government of India organisations and offices",
     "methodology": "Junior Engineer (Mechanical): Group B, Pay Level-6, starting basic ₹35,400 per month × 12 (level range ₹35,400–1,12,400). Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Government junior engineer cadre only — says nothing about private-sector engineering pay. Basic pay only.",
     "provenance": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "employer": "Government of India (via SSC)",
     "cadre": "Junior Engineer (Mechanical) (L6)",
     "stat_label": "Basic pay × 12: ₹35,400 per month (Level 6)",
     "low": 424800,
     "high": 424800,
     "provenance_low": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "provenance_high": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "ssc-je-2026-electrical",
     "role": "electrical-engineer",
     "value": 424800,
     "source": "ssc-goi",
     "source_url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_je_2026.pdf",
     "effective_date": "2026-09-02",
     "period": "SSC Junior Engineer Examination 2026",
     "sample": "Junior Engineer posts in Government of India organisations and offices",
     "methodology": "Junior Engineer (Electrical): Group B, Pay Level-6, starting basic ₹35,400 per month × 12 (level range ₹35,400–1,12,400). Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Government junior engineer cadre only — says nothing about private-sector engineering pay. Basic pay only.",
     "provenance": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "employer": "Government of India (via SSC)",
     "cadre": "Junior Engineer (Electrical) (L6)",
     "stat_label": "Basic pay × 12: ₹35,400 per month (Level 6)",
     "low": 424800,
     "high": 424800,
     "provenance_low": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "provenance_high": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "ssc-je-2026-telecom",
     "role": "electronics-engineer",
     "value": 424800,
     "source": "ssc-goi",
     "source_url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_je_2026.pdf",
     "effective_date": "2026-09-02",
     "period": "SSC Junior Engineer Examination 2026",
     "sample": "Junior Engineer posts in Government of India organisations and offices",
     "methodology": "Junior Engineer (Telecom): Group B, Pay Level-6, starting basic ₹35,400 per month × 12 (level range ₹35,400–1,12,400). Starting basic pay of the level × 12; excludes DA, HRA and other allowances.",
     "limitations": "Government junior engineer cadre only — says nothing about private-sector engineering pay. Basic pay only.",
     "provenance": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "employer": "Government of India (via SSC)",
     "cadre": "Junior Engineer (Telecom) (L6)",
     "stat_label": "Basic pay × 12: ₹35,400 per month (Level 6)",
     "low": 424800,
     "high": 424800,
     "provenance_low": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "provenance_high": {
      "raw_file": "raw/ssc-2026/je-2026-notice.json",
      "raw_ref": "posts.junior_engineer.start"
     },
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "ssc-2026-jso",
     "role": "statistician",
     "value": 424800,
     "source": "ssc-goi",
     "source_url": "https://ssc.gov.in/api/attachment/uploads/masterData/NoticeBoards/Notice_of_adv_cgl_2026.pdf",
     "effective_date": "2026-05-21",
     "period": "SSC CGLE 2026",
     "sample": "Junior Statistical Officer posts, Ministry of Statistics and Programme Implementation",
     "methodology": "Junior Statistical Officer (MoSPI): Pay Level-6, starting basic ₹35,400 per month × 12. Starting basic pay of the level × 12; excludes allowances.",
     "limitations": "Government statistical cadre only; basic pay only.",
     "provenance": {
      "raw_file": "raw/ssc-2026/cgl-2026-jso.json",
      "raw_ref": "posts.junior_statistical_officer.start"
     },
     "employer": "Government of India (via SSC)",
     "cadre": "Junior Statistical Officer (L6)",
     "stat_label": "Basic pay × 12: ₹35,400 per month (Level 6)",
     "low": 424800,
     "high": 424800,
     "provenance_low": {
      "raw_file": "raw/ssc-2026/cgl-2026-jso.json",
      "raw_ref": "posts.junior_statistical_officer.start"
     },
     "provenance_high": {
      "raw_file": "raw/ssc-2026/cgl-2026-jso.json",
      "raw_ref": "posts.junior_statistical_officer.start"
     },
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "lic-2025-aao-ca",
     "role": "chartered-accountant",
     "value": 1063620,
     "source": "lic-careers",
     "source_url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
     "effective_date": "2025-08-16",
     "period": "LIC AAO (Specialist) / AE, 32nd Batch, notified 16.08.2025",
     "sample": "One public-sector life insurer, Class I officer entry",
     "methodology": "AAO (Chartered Accountant): basic ₹88,635 per month × 12; scale ₹88,635–1,69,025; total emoluments at the minimum of the scale about ₹1,26,000 per month in an A-class city as stated. Starting basic pay × 12; allowances excluded from the value.",
     "limitations": "One employer; basic pay only. Public-sector officer scale, not a market benchmark for the profession.",
     "provenance": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "employer": "Life Insurance Corporation of India",
     "cadre": "AAO (Chartered Accountant)",
     "stat_label": "Basic pay × 12: ₹88,635 per month (total ≈ ₹1,26,000 in an A-class city)",
     "low": 1063620,
     "high": 1063620,
     "provenance_low": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "provenance_high": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "freshness": "fresh",
     "months_old": 13
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "lic-2025-aao-cs",
     "role": "company-secretary",
     "value": 1063620,
     "source": "lic-careers",
     "source_url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
     "effective_date": "2025-08-16",
     "period": "LIC AAO (Specialist) / AE, 32nd Batch, notified 16.08.2025",
     "sample": "One public-sector life insurer, Class I officer entry",
     "methodology": "AAO (Company Secretary): basic ₹88,635 per month × 12; scale ₹88,635–1,69,025; total emoluments at the minimum of the scale about ₹1,26,000 per month in an A-class city as stated. Starting basic pay × 12; allowances excluded from the value.",
     "limitations": "One employer; basic pay only. Public-sector officer scale, not a market benchmark for the profession.",
     "provenance": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "employer": "Life Insurance Corporation of India",
     "cadre": "AAO (Company Secretary)",
     "stat_label": "Basic pay × 12: ₹88,635 per month (total ≈ ₹1,26,000 in an A-class city)",
     "low": 1063620,
     "high": 1063620,
     "provenance_low": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "provenance_high": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "freshness": "fresh",
     "months_old": 13
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "lic-2025-aao-actuarial",
     "role": "actuary",
     "value": 1063620,
     "source": "lic-careers",
     "source_url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
     "effective_date": "2025-08-16",
     "period": "LIC AAO (Specialist) / AE, 32nd Batch, notified 16.08.2025",
     "sample": "One public-sector life insurer, Class I officer entry",
     "methodology": "AAO (Actuarial): basic ₹88,635 per month × 12; scale ₹88,635–1,69,025; total emoluments at the minimum of the scale about ₹1,26,000 per month in an A-class city as stated. Starting basic pay × 12; allowances excluded from the value.",
     "limitations": "One employer; basic pay only. Public-sector officer scale, not a market benchmark for the profession.",
     "provenance": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "employer": "Life Insurance Corporation of India",
     "cadre": "AAO (Actuarial)",
     "stat_label": "Basic pay × 12: ₹88,635 per month (total ≈ ₹1,26,000 in an A-class city)",
     "low": 1063620,
     "high": 1063620,
     "provenance_low": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "provenance_high": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "freshness": "fresh",
     "months_old": 13
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "lic-2025-aao-legal",
     "role": "lawyer",
     "value": 1063620,
     "source": "lic-careers",
     "source_url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
     "effective_date": "2025-08-16",
     "period": "LIC AAO (Specialist) / AE, 32nd Batch, notified 16.08.2025",
     "sample": "One public-sector life insurer, Class I officer entry",
     "methodology": "AAO (Legal): basic ₹88,635 per month × 12; scale ₹88,635–1,69,025; total emoluments at the minimum of the scale about ₹1,26,000 per month in an A-class city as stated. Starting basic pay × 12; allowances excluded from the value.",
     "limitations": "One employer; basic pay only. Public-sector officer scale, not a market benchmark for the profession.",
     "provenance": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "employer": "Life Insurance Corporation of India",
     "cadre": "AAO (Legal)",
     "stat_label": "Basic pay × 12: ₹88,635 per month (total ≈ ₹1,26,000 in an A-class city)",
     "low": 1063620,
     "high": 1063620,
     "provenance_low": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "provenance_high": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "freshness": "fresh",
     "months_old": 13
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "early-career",
     "experience_band": "early",
     "stat": "employer-band",
     "id": "lic-2025-ae-civil",
     "role": "civil-engineer",
     "value": 1063620,
     "source": "lic-careers",
     "source_url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
     "effective_date": "2025-08-16",
     "period": "LIC AAO (Specialist) / AE, 32nd Batch, notified 16.08.2025",
     "sample": "One public-sector life insurer, Class I officer entry",
     "methodology": "Assistant Engineer (Civil): basic ₹88,635 per month × 12; scale ₹88,635–1,69,025; total emoluments at the minimum of the scale about ₹1,26,000 per month in an A-class city as stated. Starting basic pay × 12; allowances excluded from the value.",
     "limitations": "One employer; basic pay only. The AE post requires three years of post-qualification experience, so it is recorded at the 2–4 year band.",
     "provenance": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "employer": "Life Insurance Corporation of India",
     "cadre": "Assistant Engineer (Civil)",
     "stat_label": "Basic pay × 12: ₹88,635 per month (total ≈ ₹1,26,000 in an A-class city)",
     "low": 1063620,
     "high": 1063620,
     "provenance_low": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "provenance_high": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "freshness": "fresh",
     "months_old": 13
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "early-career",
     "experience_band": "early",
     "stat": "employer-band",
     "id": "lic-2025-ae-electrical",
     "role": "electrical-engineer",
     "value": 1063620,
     "source": "lic-careers",
     "source_url": "https://licindia.in/documents/d/guest/aao-specialist-notification-2025-final",
     "effective_date": "2025-08-16",
     "period": "LIC AAO (Specialist) / AE, 32nd Batch, notified 16.08.2025",
     "sample": "One public-sector life insurer, Class I officer entry",
     "methodology": "Assistant Engineer (Electrical): basic ₹88,635 per month × 12; scale ₹88,635–1,69,025; total emoluments at the minimum of the scale about ₹1,26,000 per month in an A-class city as stated. Starting basic pay × 12; allowances excluded from the value.",
     "limitations": "One employer; basic pay only. The AE post requires three years of post-qualification experience, so it is recorded at the 2–4 year band.",
     "provenance": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "employer": "Life Insurance Corporation of India",
     "cadre": "Assistant Engineer (Electrical)",
     "stat_label": "Basic pay × 12: ₹88,635 per month (total ≈ ₹1,26,000 in an A-class city)",
     "low": 1063620,
     "high": 1063620,
     "provenance_low": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "provenance_high": {
      "raw_file": "raw/lic-2025/aao-specialist-ae-32nd-batch.json",
      "raw_ref": "scale.start"
     },
     "freshness": "fresh",
     "months_old": 13
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "aiims-jammu-2026-jr",
     "role": "doctor-mbbs",
     "value": 673200,
     "source": "aiims-jammu",
     "source_url": "https://www.aiimsjammu.edu.in/wp-content/uploads/2026/02/Draft-Advertisement-28.02.2026.pdf",
     "effective_date": "2026-02-28",
     "period": "AIIMS Jammu Employment Notification 02/2026",
     "sample": "Junior Resident (Non-Academic), one AIIMS",
     "methodology": "Junior Resident (Non-Academic): Pay Level 10, ₹56,100 per month × 12 with other usual allowances. Starting basic pay of the level × 12; NPA and allowances excluded.",
     "limitations": "Residency post under the Central Residency Scheme (tenure), one institute; basic pay only.",
     "provenance": {
      "raw_file": "raw/aiims-jammu-2026/jr-sr-2026.json",
      "raw_ref": "posts.junior_resident.start"
     },
     "employer": "AIIMS Vijaypur, Jammu",
     "cadre": "Junior Resident (L10)",
     "stat_label": "Basic pay × 12: ₹56,100 per month (Level 10)",
     "low": 673200,
     "high": 673200,
     "provenance_low": {
      "raw_file": "raw/aiims-jammu-2026/jr-sr-2026.json",
      "raw_ref": "posts.junior_resident.start"
     },
     "provenance_high": {
      "raw_file": "raw/aiims-jammu-2026/jr-sr-2026.json",
      "raw_ref": "posts.junior_resident.start"
     },
     "freshness": "fresh",
     "months_old": 7
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "aiims-jammu-2026-sr",
     "role": "specialist-doctor",
     "value": 812400,
     "source": "aiims-jammu",
     "source_url": "https://www.aiimsjammu.edu.in/wp-content/uploads/2026/03/Draft-Advertisement.pdf",
     "effective_date": "2026-03-30",
     "period": "AIIMS Jammu Employment Notification 03/2026",
     "sample": "Senior Resident (medical), one AIIMS",
     "methodology": "Senior Resident (medical candidates): Pay Level 11, ₹67,700 per month × 12 with other usual allowances. Starting basic pay of the level × 12; NPA and allowances excluded.",
     "limitations": "Post-PG residency post (tenure), one institute; basic pay only. Recorded at the entry band of the specialist role.",
     "provenance": {
      "raw_file": "raw/aiims-jammu-2026/jr-sr-2026.json",
      "raw_ref": "posts.senior_resident_medical.start"
     },
     "employer": "AIIMS Vijaypur, Jammu",
     "cadre": "Senior Resident (L11)",
     "stat_label": "Basic pay × 12: ₹67,700 per month (Level 11)",
     "low": 812400,
     "high": 812400,
     "provenance_low": {
      "raw_file": "raw/aiims-jammu-2026/jr-sr-2026.json",
      "raw_ref": "posts.senior_resident_medical.start"
     },
     "provenance_high": {
      "raw_file": "raw/aiims-jammu-2026/jr-sr-2026.json",
      "raw_ref": "posts.senior_resident_medical.start"
     },
     "freshness": "fresh",
     "months_old": 6
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "cil-2026-mt-civil",
     "role": "civil-engineer",
     "value": 720000,
     "source": "cil-careers",
     "source_url": "https://d3u7ubx0okog7j.cloudfront.net/documents/Advertisement_03_2026_dated_05.05.2026.pdf",
     "effective_date": "2026-05-05",
     "period": "Coal India Advt. 03/2026, Management Trainees (CBT-26)",
     "sample": "One Maharatna PSU, E-1 grade entry",
     "methodology": "Management Trainee (Civil): E-1 grade, initial basic ₹60,000 per month × 12; scale ₹60,000–1,80,000 (IDA). Starting basic pay × 12; excludes DA, HRA, perquisites and PRP.",
     "limitations": "One employer; basic pay only.",
     "provenance": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "employer": "Coal India Limited",
     "cadre": "Management Trainee (Civil), E-1",
     "stat_label": "Basic pay × 12: ₹60,000 per month (E-1, IDA)",
     "low": 720000,
     "high": 720000,
     "provenance_low": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "provenance_high": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "cil-2026-mt-electrical",
     "role": "electrical-engineer",
     "value": 720000,
     "source": "cil-careers",
     "source_url": "https://d3u7ubx0okog7j.cloudfront.net/documents/Advertisement_03_2026_dated_05.05.2026.pdf",
     "effective_date": "2026-05-05",
     "period": "Coal India Advt. 03/2026, Management Trainees (CBT-26)",
     "sample": "One Maharatna PSU, E-1 grade entry",
     "methodology": "Management Trainee (Electrical): E-1 grade, initial basic ₹60,000 per month × 12; scale ₹60,000–1,80,000 (IDA). Starting basic pay × 12; excludes DA, HRA, perquisites and PRP.",
     "limitations": "One employer; basic pay only.",
     "provenance": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "employer": "Coal India Limited",
     "cadre": "Management Trainee (Electrical), E-1",
     "stat_label": "Basic pay × 12: ₹60,000 per month (E-1, IDA)",
     "low": 720000,
     "high": 720000,
     "provenance_low": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "provenance_high": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "cil-2026-mt-mechanical",
     "role": "mechanical-engineer",
     "value": 720000,
     "source": "cil-careers",
     "source_url": "https://d3u7ubx0okog7j.cloudfront.net/documents/Advertisement_03_2026_dated_05.05.2026.pdf",
     "effective_date": "2026-05-05",
     "period": "Coal India Advt. 03/2026, Management Trainees (CBT-26)",
     "sample": "One Maharatna PSU, E-1 grade entry",
     "methodology": "Management Trainee (Mechanical): E-1 grade, initial basic ₹60,000 per month × 12; scale ₹60,000–1,80,000 (IDA). Starting basic pay × 12; excludes DA, HRA, perquisites and PRP.",
     "limitations": "One employer; basic pay only.",
     "provenance": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "employer": "Coal India Limited",
     "cadre": "Management Trainee (Mechanical), E-1",
     "stat_label": "Basic pay × 12: ₹60,000 per month (E-1, IDA)",
     "low": 720000,
     "high": 720000,
     "provenance_low": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "provenance_high": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "cil-2026-mt-et",
     "role": "electronics-engineer",
     "value": 720000,
     "source": "cil-careers",
     "source_url": "https://d3u7ubx0okog7j.cloudfront.net/documents/Advertisement_03_2026_dated_05.05.2026.pdf",
     "effective_date": "2026-05-05",
     "period": "Coal India Advt. 03/2026, Management Trainees (CBT-26)",
     "sample": "One Maharatna PSU, E-1 grade entry",
     "methodology": "Management Trainee (Electronics & Telecommunication): E-1 grade, initial basic ₹60,000 per month × 12; scale ₹60,000–1,80,000 (IDA). Starting basic pay × 12; excludes DA, HRA, perquisites and PRP.",
     "limitations": "One employer; basic pay only.",
     "provenance": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "employer": "Coal India Limited",
     "cadre": "Management Trainee (Electronics & Telecommunication), E-1",
     "stat_label": "Basic pay × 12: ₹60,000 per month (E-1, IDA)",
     "low": 720000,
     "high": 720000,
     "provenance_low": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "provenance_high": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "cil-2026-mt-cs",
     "role": "company-secretary",
     "value": 720000,
     "source": "cil-careers",
     "source_url": "https://d3u7ubx0okog7j.cloudfront.net/documents/Advertisement_03_2026_dated_05.05.2026.pdf",
     "effective_date": "2026-05-05",
     "period": "Coal India Advt. 03/2026, Management Trainees (CBT-26)",
     "sample": "One Maharatna PSU, E-1 grade entry",
     "methodology": "Management Trainee (Company Secretary): E-1 grade, initial basic ₹60,000 per month × 12; scale ₹60,000–1,80,000 (IDA). Starting basic pay × 12; excludes DA, HRA, perquisites and PRP.",
     "limitations": "One employer; basic pay only.",
     "provenance": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "employer": "Coal India Limited",
     "cadre": "Management Trainee (Company Secretary), E-1",
     "stat_label": "Basic pay × 12: ₹60,000 per month (E-1, IDA)",
     "low": 720000,
     "high": 720000,
     "provenance_low": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "provenance_high": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "cil-2026-mt-rajbhasha",
     "role": "translator",
     "value": 720000,
     "source": "cil-careers",
     "source_url": "https://d3u7ubx0okog7j.cloudfront.net/documents/Advertisement_03_2026_dated_05.05.2026.pdf",
     "effective_date": "2026-05-05",
     "period": "Coal India Advt. 03/2026, Management Trainees (CBT-26)",
     "sample": "One Maharatna PSU, E-1 grade entry",
     "methodology": "Management Trainee (Rajbhasha (Hindi)): E-1 grade, initial basic ₹60,000 per month × 12; scale ₹60,000–1,80,000 (IDA). Starting basic pay × 12; excludes DA, HRA, perquisites and PRP.",
     "limitations": "One employer; basic pay only.",
     "provenance": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "employer": "Coal India Limited",
     "cadre": "Management Trainee (Rajbhasha (Hindi)), E-1",
     "stat_label": "Basic pay × 12: ₹60,000 per month (E-1, IDA)",
     "low": 720000,
     "high": 720000,
     "provenance_low": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "provenance_high": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "cil-2026-mt-system",
     "role": "system-administrator",
     "value": 720000,
     "source": "cil-careers",
     "source_url": "https://d3u7ubx0okog7j.cloudfront.net/documents/Advertisement_03_2026_dated_05.05.2026.pdf",
     "effective_date": "2026-05-05",
     "period": "Coal India Advt. 03/2026, Management Trainees (CBT-26)",
     "sample": "One Maharatna PSU, E-1 grade entry",
     "methodology": "Management Trainee (System): E-1 grade, initial basic ₹60,000 per month × 12; scale ₹60,000–1,80,000 (IDA). Starting basic pay × 12; excludes DA, HRA, perquisites and PRP.",
     "limitations": "One employer; basic pay only. The \"System\" discipline (Computer Science / IT / MCA) is an IT-systems officer post; mapped to the systems role, not to software development.",
     "provenance": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "employer": "Coal India Limited",
     "cadre": "Management Trainee (System), E-1",
     "stat_label": "Basic pay × 12: ₹60,000 per month (E-1, IDA)",
     "low": 720000,
     "high": 720000,
     "provenance_low": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "provenance_high": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "freshness": "fresh",
     "months_old": 4
    },
    {
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "unit": "per-annum",
     "collection_date": "2026-09-15",
     "last_verified": "2026-09-15",
     "evidence_type": "employer-data",
     "confidence": 0.75,
     "seniority": "entry-level",
     "experience_band": "entry",
     "stat": "employer-band",
     "id": "cil-2026-mt-industrial",
     "role": "production-engineer",
     "value": 720000,
     "source": "cil-careers",
     "source_url": "https://d3u7ubx0okog7j.cloudfront.net/documents/Advertisement_03_2026_dated_05.05.2026.pdf",
     "effective_date": "2026-05-05",
     "period": "Coal India Advt. 03/2026, Management Trainees (CBT-26)",
     "sample": "One Maharatna PSU, E-1 grade entry",
     "methodology": "Management Trainee (Industrial Engineering): E-1 grade, initial basic ₹60,000 per month × 12; scale ₹60,000–1,80,000 (IDA). Starting basic pay × 12; excludes DA, HRA, perquisites and PRP.",
     "limitations": "One employer; basic pay only. Industrial Engineering discipline mapped to the production/industrial engineering role.",
     "provenance": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "employer": "Coal India Limited",
     "cadre": "Management Trainee (Industrial Engineering), E-1",
     "stat_label": "Basic pay × 12: ₹60,000 per month (E-1, IDA)",
     "low": 720000,
     "high": 720000,
     "provenance_low": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "provenance_high": {
      "raw_file": "raw/cil-2026/mt-cbt-26-advt-03-2026.json",
      "raw_ref": "e1.start"
     },
     "freshness": "fresh",
     "months_old": 4
    }
   ],
   "adjustments": null
  },
  {
   "id": "salary-demo",
   "file": "salary/demo.v0.json",
   "version": "0.1.0",
   "status": "demo",
   "updated": "2026-09-13",
   "review_after": "2027-03-31",
   "banner": "DEMO DATA — illustrative figures that show how the engine works. Not market data.",
   "currency": "INR",
   "observations": [
    {
     "role": "chartered-accountant",
     "experience_band": "early",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 900000,
     "p50": 1300000,
     "p75": 1800000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "chartered-accountant",
     "experience_band": "mid",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 1500000,
     "p50": 2200000,
     "p75": 3200000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "chartered-accountant",
     "experience_band": "senior",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 2500000,
     "p50": 3600000,
     "p75": 5500000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "chartered-accountant",
     "experience_band": "lead",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 4000000,
     "p50": 6000000,
     "p75": 9000000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "finance-manager",
     "experience_band": "mid",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 1400000,
     "p50": 2000000,
     "p75": 2800000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "finance-manager",
     "experience_band": "senior",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 2200000,
     "p50": 3200000,
     "p75": 4500000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "finance-manager",
     "experience_band": "lead",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 3200000,
     "p50": 4500000,
     "p75": 6500000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "financial-analyst",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 400000,
     "p50": 600000,
     "p75": 850000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "financial-analyst",
     "experience_band": "early",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 600000,
     "p50": 900000,
     "p75": 1300000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "financial-analyst",
     "experience_band": "mid",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 1000000,
     "p50": 1500000,
     "p75": 2200000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "tax-consultant",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 450000,
     "p50": 650000,
     "p75": 900000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "tax-consultant",
     "experience_band": "early",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 700000,
     "p50": 1000000,
     "p75": 1400000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "tax-consultant",
     "experience_band": "mid",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 1200000,
     "p50": 1700000,
     "p75": 2500000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "audit-associate",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 400000,
     "p50": 600000,
     "p75": 850000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "audit-associate",
     "experience_band": "early",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 650000,
     "p50": 900000,
     "p75": 1300000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "accountant",
     "experience_band": "entry",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 250000,
     "p50": 350000,
     "p75": 500000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "accountant",
     "experience_band": "early",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 350000,
     "p50": 500000,
     "p75": 750000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    },
    {
     "role": "accountant",
     "experience_band": "mid",
     "geography": "in",
     "industry": "all",
     "company_type": "all",
     "p25": 550000,
     "p50": 800000,
     "p75": 1200000,
     "source": "demo",
     "source_url": "https://caakhilesh.in/career/methodology/",
     "collection_date": "2026-09-13",
     "effective_date": "2026-09-13",
     "sample": "none — illustrative",
     "methodology": "DEMO: hand-set illustrative figures to exercise the engine. Not market data.",
     "confidence": 0,
     "limitations": "Demo data. Do not rely on it.",
     "last_verified": null,
     "freshness": "fresh",
     "months_old": 0
    }
   ],
   "adjustments": {
    "location": {
     "in": 1,
     "mumbai": 1.1,
     "delhi-ncr": 1.08,
     "bengaluru": 1.1,
     "hyderabad": 1.02,
     "chennai": 1,
     "pune": 1.02,
     "kolkata": 0.92,
     "ahmedabad": 0.92,
     "other-tier2": 0.85,
     "other": 0.8
    },
    "industry": {
     "big4-consulting": 1.05,
     "banking-nbfc": 1.1,
     "it-saas": 1.12,
     "manufacturing": 0.95,
     "fmcg-retail": 1,
     "psu-govt": 0.9,
     "startup": 1.05,
     "other": 1
    },
    "company_type": {
     "mnc": 1.1,
     "large-indian": 1.05,
     "mid": 1,
     "small": 0.88,
     "startup": 1.02,
     "psu": 0.92,
     "firm": 0.9
    },
    "skills": {
     "ind-as": 0.06,
     "gst": 0.03,
     "direct-tax": 0.04,
     "fpa": 0.05,
     "sap": 0.05,
     "excel-modelling": 0.03,
     "power-bi": 0.07,
     "internal-audit": 0.03
    },
    "skill_premium_cap": 0.18
   }
  }
 ],
 "adjustments": {
  "location": {
   "schema": "career.adjustment.v1",
   "kind": "location",
   "version": "1.1.0",
   "status": "verified",
   "updated": "2026-09-13",
   "review_after": "2027-03-31",
   "source": "mospi-plfs-2023-24",
   "source_url": "https://www.mospi.gov.in/sites/default/files/publication_reports/AnnualReport_PLFS2023-24L2.pdf",
   "collection_date": "2026-09-13",
   "effective_date": "2024-06-30",
   "methodology": "Factor = average monthly earnings of urban regular wage/salaried employees in the state (PLFS 2023-24, Table 38, Apr–Jun 2024, person) ÷ the all-India urban figure (₹24,434). A city inherits its state's factor.",
   "sample": "29,371 urban regular wage/salaried employees reporting earnings, all India",
   "confidence": 0.6,
   "limitations": "A state-level, all-occupation wage differential applied to a city and a profession: it captures the general wage level of the state, not the pay of any role, and a city like Mumbai or Gurgaon sits above its state average. Suitable as a coarse adjustment; not a city salary index.",
   "base": {
    "label": "all-India urban person",
    "value": 24434
   },
   "factors": {
    "delhi": {
     "state": "Delhi",
     "urban_person_monthly": 22924,
     "factor": 0.938,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Delhi'][5]"
     }
    },
    "gurugram": {
     "state": "Haryana",
     "urban_person_monthly": 31500,
     "factor": 1.289,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Haryana'][5]"
     }
    },
    "noida": {
     "state": "Uttar Pradesh",
     "urban_person_monthly": 23628,
     "factor": 0.967,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Uttar Pradesh'][5]"
     }
    },
    "mumbai": {
     "state": "Maharashtra",
     "urban_person_monthly": 27856,
     "factor": 1.14,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Maharashtra'][5]"
     }
    },
    "pune": {
     "state": "Maharashtra",
     "urban_person_monthly": 27856,
     "factor": 1.14,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Maharashtra'][5]"
     }
    },
    "bengaluru": {
     "state": "Karnataka",
     "urban_person_monthly": 28478,
     "factor": 1.166,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Karnataka'][5]"
     }
    },
    "hyderabad": {
     "state": "Telangana",
     "urban_person_monthly": 31464,
     "factor": 1.288,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Telangana'][5]"
     }
    },
    "chennai": {
     "state": "Tamil Nadu",
     "urban_person_monthly": 23268,
     "factor": 0.952,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Tamil Nadu'][5]"
     }
    },
    "kolkata": {
     "state": "West Bengal",
     "urban_person_monthly": 21336,
     "factor": 0.873,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['West Bengal'][5]"
     }
    },
    "ahmedabad": {
     "state": "Gujarat",
     "urban_person_monthly": 18954,
     "factor": 0.776,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Gujarat'][5]"
     }
    },
    "jaipur": {
     "state": "Rajasthan",
     "urban_person_monthly": 21295,
     "factor": 0.872,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Rajasthan'][5]"
     }
    },
    "lucknow": {
     "state": "Uttar Pradesh",
     "urban_person_monthly": 23628,
     "factor": 0.967,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Uttar Pradesh'][5]"
     }
    },
    "chandigarh": {
     "state": "Chandigarh",
     "urban_person_monthly": 32222,
     "factor": 1.319,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Chandigarh'][5]"
     }
    },
    "indore": {
     "state": "Madhya Pradesh",
     "urban_person_monthly": 20457,
     "factor": 0.837,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Madhya Pradesh'][5]"
     }
    },
    "kochi": {
     "state": "Kerala",
     "urban_person_monthly": 25235,
     "factor": 1.033,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Kerala'][5]"
     }
    },
    "bhopal": {
     "state": "Madhya Pradesh",
     "urban_person_monthly": 20457,
     "factor": 0.837,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Madhya Pradesh'][5]"
     }
    },
    "nagpur": {
     "state": "Maharashtra",
     "urban_person_monthly": 27856,
     "factor": 1.14,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Maharashtra'][5]"
     }
    },
    "coimbatore": {
     "state": "Tamil Nadu",
     "urban_person_monthly": 23268,
     "factor": 0.952,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Tamil Nadu'][5]"
     }
    },
    "surat": {
     "state": "Gujarat",
     "urban_person_monthly": 18954,
     "factor": 0.776,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Gujarat'][5]"
     }
    },
    "vadodara": {
     "state": "Gujarat",
     "urban_person_monthly": 18954,
     "factor": 0.776,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Gujarat'][5]"
     }
    },
    "in": {
     "state": "all India",
     "urban_person_monthly": 24434,
     "factor": 1,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['all India'][5]"
     }
    },
    "visakhapatnam": {
     "state": "Andhra Pradesh",
     "urban_person_monthly": 23495,
     "factor": 0.962,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Andhra Pradesh'][5]"
     }
    },
    "bhubaneswar": {
     "state": "Odisha",
     "urban_person_monthly": 20680,
     "factor": 0.846,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Odisha'][5]"
     }
    },
    "patna": {
     "state": "Bihar",
     "urban_person_monthly": 23539,
     "factor": 0.963,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Bihar'][5]"
     }
    },
    "guwahati": {
     "state": "Assam",
     "urban_person_monthly": 24492,
     "factor": 1.002,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Assam'][5]"
     }
    },
    "dehradun": {
     "state": "Uttarakhand",
     "urban_person_monthly": 22734,
     "factor": 0.93,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Uttarakhand'][5]"
     }
    },
    "ranchi": {
     "state": "Jharkhand",
     "urban_person_monthly": 26344,
     "factor": 1.078,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Jharkhand'][5]"
     }
    },
    "raipur": {
     "state": "Chhattisgarh",
     "urban_person_monthly": 20760,
     "factor": 0.85,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Chhattisgarh'][5]"
     }
    },
    "panaji": {
     "state": "Goa",
     "urban_person_monthly": 29276,
     "factor": 1.198,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Goa'][5]"
     }
    },
    "mysuru": {
     "state": "Karnataka",
     "urban_person_monthly": 28478,
     "factor": 1.166,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Karnataka'][5]"
     }
    },
    "ludhiana": {
     "state": "Punjab",
     "urban_person_monthly": 18608,
     "factor": 0.762,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Punjab'][5]"
     }
    },
    "shimla": {
     "state": "Himachal Pradesh",
     "urban_person_monthly": 30164,
     "factor": 1.235,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Himachal Pradesh'][5]"
     }
    },
    "jammu": {
     "state": "Jammu & Kashmir",
     "urban_person_monthly": 31211,
     "factor": 1.277,
     "provenance": {
      "raw_file": "raw/mospi-plfs-2023-24/table38-apr-jun-2024.json",
      "raw_ref": "rows['Jammu & Kashmir'][5]"
     }
    }
   },
   "supersedes": "historical/location.v1.0.0.json",
   "evidence_type": "government-earnings",
   "id": "adjust-location",
   "freshness": "ageing"
  },
  "wage-growth": {
   "schema": "career.adjustment.v1",
   "kind": "wage-growth",
   "version": "1.0.0",
   "status": "verified",
   "updated": "2026-09-13",
   "review_after": "2027-03-31",
   "methodology": "Annual nominal growth rates used to state how far an older observation may have moved; shown as a separate indexed line, never as the headline figure.",
   "confidence": 0.6,
   "series": [
    {
     "id": "plfs-regular-male-2024-25",
     "label": "PLFS regular wage/salaried, male, 2024→2025",
     "rate": 0.058,
     "source": "mospi-plfs-2025",
     "effective_date": "2025-12-31",
     "provenance": {
      "raw_file": "raw/mospi-plfs-2025/press-note-earnings.json",
      "raw_ref": "quotes[0]"
     }
    },
    {
     "id": "plfs-regular-female-2024-25",
     "label": "PLFS regular wage/salaried, female, 2024→2025",
     "rate": 0.072,
     "source": "mospi-plfs-2025",
     "effective_date": "2025-12-31",
     "provenance": {
      "raw_file": "raw/mospi-plfs-2025/press-note-earnings.json",
      "raw_ref": "quotes[0]"
     }
    },
    {
     "id": "aon-actual-2025",
     "label": "Aon: actual salary increase, India, 2025",
     "rate": 0.089,
     "source": "aon-sis-2026",
     "effective_date": "2025-12-31",
     "provenance": {
      "raw_file": "raw/aon-2026/press-release.json",
      "raw_ref": "projected_increase_2026.actual_2025"
     }
    },
    {
     "id": "aon-projected-2026",
     "label": "Aon: projected salary increase, India, 2026",
     "rate": 0.091,
     "source": "aon-sis-2026",
     "effective_date": "2026-12-31",
     "provenance": {
      "raw_file": "raw/aon-2026/press-release.json",
      "raw_ref": "projected_increase_2026.overall"
     }
    }
   ],
   "default_series": "aon-projected-2026",
   "limitations": "Organisation-wide budgets and all-worker averages; an individual's pay may move very differently.",
   "evidence_type": "job-market-signal",
   "id": "adjust-wage-growth",
   "freshness": "fresh"
  },
  "industry-growth": {
   "schema": "career.adjustment.v1",
   "kind": "industry-growth",
   "version": "1.0.0",
   "status": "verified",
   "updated": "2026-09-13",
   "review_after": "2027-03-31",
   "source": "aon-sis-2026",
   "source_url": "https://www.aon.com/apac/in-the-press/asia-newsroom/2026/aon-survey-projects-slight-uptick-in-salaries-in-india-2026",
   "collection_date": "2026-09-13",
   "effective_date": "2026-12-31",
   "methodology": "Projected 2026 salary increase by industry from Aon's public release. These are growth signals (how fast pay is moving), NOT level differentials, so the engine applies a level factor of 1.00 and shows the signal.",
   "confidence": 0.7,
   "limitations": "Seven industries quoted publicly; the mapping from Aon's industry names to this site's taxonomy is approximate (noted per row).",
   "signals": {
    "banking-nbfc": {
     "rate": 0.101,
     "aon_label": "NBFCs (banking 8.8%)",
     "note": "NBFC figure used; banks 8.8%",
     "provenance": {
      "raw_file": "raw/aon-2026/press-release.json",
      "raw_ref": "projected_increase_2026.nbfc"
     }
    },
    "manufacturing": {
     "rate": 0.095,
     "aon_label": "Engineering / manufacturing",
     "provenance": {
      "raw_file": "raw/aon-2026/press-release.json",
      "raw_ref": "projected_increase_2026.engineering_manufacturing"
     }
    },
    "fmcg-retail": {
     "rate": 0.095,
     "aon_label": "Retail",
     "provenance": {
      "raw_file": "raw/aon-2026/press-release.json",
      "raw_ref": "projected_increase_2026.retail"
     }
    },
    "it-saas": {
     "rate": 0.066,
     "aon_label": "Technology consulting and services",
     "provenance": {
      "raw_file": "raw/aon-2026/press-release.json",
      "raw_ref": "projected_increase_2026.technology_consulting_services"
     }
    }
   },
   "overall": {
    "rate": 0.091,
    "provenance": {
     "raw_file": "raw/aon-2026/press-release.json",
     "raw_ref": "projected_increase_2026.overall"
    }
   },
   "evidence_type": "job-market-signal",
   "id": "adjust-industry-growth",
   "freshness": "fresh"
  },
  "demand-signals": {
   "schema": "career.adjustment.v1",
   "kind": "demand-signals",
   "version": "1.0.0",
   "status": "verified",
   "updated": "2026-09-13",
   "review_after": "2026-12-31",
   "evidence_type": "job-posting-signal",
   "source": "naukri-jobspeak",
   "source_url": "https://www.thepeoplesboard.com/news/india-white-collar-hiring-rises-14-percent-august-2026/",
   "collection_date": "2026-09-13",
   "effective_date": "2026-08-31",
   "period": "August 2026, year-on-year",
   "methodology": "Year-on-year change in job postings by sector from the Naukri JobSpeak Index for August 2026. A sector figure is attached to a role through its function's signal tags. This is a demand signal, never a salary level.",
   "confidence": 0.6,
   "limitations": "One portal; sector labels are Naukri's, mapped approximately to this taxonomy; a month's figure, volatile.",
   "overall": {
    "yoy": 0.14,
    "provenance": {
     "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
     "raw_ref": "yoy_by_sector.overall"
    }
   },
   "sectors": {
    "ai-ml": {
     "yoy": 0.31,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.ai-ml"
     }
    },
    "it-security": {
     "yoy": 0.32,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.it-security"
     }
    },
    "auto": {
     "yoy": 0.19,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.auto"
     }
    },
    "healthcare": {
     "yoy": 0.16,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.healthcare"
     }
    },
    "retail": {
     "yoy": 0.15,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.retail"
     }
    },
    "accounting-finance": {
     "yoy": 0.14,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.accounting-finance"
     }
    },
    "insurance": {
     "yoy": 0.12,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.insurance"
     }
    },
    "it-software": {
     "yoy": 0.11,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.it-software"
     }
    },
    "bfsi": {
     "yoy": 0.1,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.bfsi"
     }
    },
    "gcc": {
     "yoy": 0.1,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.gcc"
     }
    },
    "recruitment": {
     "yoy": 1.09,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.recruitment"
     }
    },
    "consumer-durables": {
     "yoy": 0.36,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.consumer-durables"
     }
    },
    "aviation-aerospace": {
     "yoy": 0.33,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.aviation-aerospace"
     }
    },
    "mining": {
     "yoy": 0.28,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.mining"
     }
    },
    "gems-jewellery": {
     "yoy": 0.23,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.gems-jewellery"
     }
    },
    "media": {
     "yoy": -0.14,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.media"
     }
    },
    "education": {
     "yoy": -0.08,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.education"
     }
    },
    "legal": {
     "yoy": -0.07,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.legal"
     }
    },
    "hospitality": {
     "yoy": -0.04,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_sector.hospitality"
     }
    }
   },
   "experience": {
    "entry": {
     "yoy": 0.15,
     "label": "0–3 years",
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_experience['0-3']"
     }
    },
    "early": {
     "yoy": 0.1,
     "label": "4–7 years",
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_experience['4-7']"
     }
    },
    "mid": {
     "yoy": 0.16,
     "label": "8–12 years",
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_experience['8-12']"
     }
    },
    "senior": {
     "yoy": 0.18,
     "label": "13–15 years",
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_experience['13-15']"
     }
    },
    "lead": {
     "yoy": 0.13,
     "label": "16+ years",
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_experience['16+']"
     }
    }
   },
   "cities": {
    "hyderabad": {
     "yoy": 0.23,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_city.hyderabad"
     }
    },
    "kolkata": {
     "yoy": 0.22,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_city.kolkata"
     }
    },
    "chennai": {
     "yoy": 0.2,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_city.chennai"
     }
    },
    "bengaluru": {
     "yoy": 0.14,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_city.bengaluru"
     }
    },
    "pune": {
     "yoy": 0.14,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_city.pune"
     }
    },
    "delhi-ncr": {
     "yoy": 0.1,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_city.delhi-ncr"
     }
    },
    "mumbai": {
     "yoy": 0.07,
     "provenance": {
      "raw_file": "raw/naukri-jobspeak-2026-08/press-report.json",
      "raw_ref": "yoy_by_city.mumbai"
     }
    }
   },
   "city_map": {
    "hyderabad": "hyderabad",
    "kolkata": "kolkata",
    "chennai": "chennai",
    "bengaluru": "bengaluru",
    "pune": "pune",
    "delhi": "delhi-ncr",
    "gurugram": "delhi-ncr",
    "noida": "delhi-ncr",
    "mumbai": "mumbai"
   },
   "id": "adjust-demand-signals",
   "freshness": "fresh"
  }
 },
 "bands": [
  "entry",
  "early",
  "mid",
  "senior",
  "lead"
 ],
 "skill_demand": [
  {
   "id": "skill-demand",
   "file": "skills/demand.v0.json",
   "version": "0.1.0",
   "status": "pending",
   "rows": 0,
   "purpose": "Role-level skill demand or prevalence from a verifiable source (job-posting datasets with methodology, official skill surveys). The engine will say \"strongly associated with this role\", never a salary premium."
  }
 ],
 "events": {
  "schema": "career.events.v1",
  "updated": "2026-09-13",
  "status": "design-only",
  "purpose": "The shape of an anonymised outcome event that a future opt-in feature could record, so that verified user outcomes can improve the datasets. Nothing is recorded today; the engine raises a DOM event with ids only and no listener stores it.",
  "event": {
   "type": "career.outcome",
   "fields": {
    "role_id": "from roles/taxonomy",
    "experience_band": "entry|early|mid|senior|lead",
    "location_id": "from locations/index",
    "industry_id": "from industries/index",
    "company_type": "from companies/attributes",
    "outcome": "offer-accepted|offer-declined|raise|no-change",
    "pay_band": "a coarse bucket (e.g. 10–15 lakh), never an exact figure",
    "period": "YYYY-MM",
    "consent_version": "string"
   },
   "never": [
    "name",
    "email",
    "employer name",
    "exact salary",
    "IP address",
    "device identifiers",
    "PAN",
    "Aadhaar",
    "free text"
   ]
  },
  "learning_policy": "No model is trained from raw inputs. A future dataset built from events must pass the same validator as any other (source = \"user-outcomes\", methodology, sample, confidence) and be reviewed before it is registered in versions.json."
 },
 "stats": {
  "verified_observations": 67,
  "verified_updated": "2026-09-15",
  "latest_effective": "2026-09-07",
  "stale_observations": 2,
  "ageing_observations": 5,
  "datasets": 6,
  "due_for_review": []
 }
}