{
 "version": "v0.2.5",
 "status": "current",
 "publishedAt": "2026-10-05",
 "tombstoneTaxonomy": {
  "note": "Tiers grade DEAL LANGUAGE (what the public claim says). Source credibility is carried separately by confidence.",
  "T1": "Contract/rollout — named buyer plus explicit contract or rollout language.",
  "T2": "Pilot/PoC — named buyer plus pilot, PoC, or design-partner language.",
  "T3": "Vague partnership — partnership language without commercial specificity. Gameable tier, discounted.",
  "T4": "Logo/weak — 'trusted by' wall, roster mention, or otherwise weak/unverifiable mention."
 },
 "tombstoneTierWeights": {
  "T1": 10,
  "T2": 5,
  "T3": 2,
  "T4": 0.5
 },
 "tombstoneStrengthCap": 50,
 "tombstoneStatus": {
  "active": "Counts toward tombstoneStrength.",
  "disputed": "Contested or terminated deal — record stays visible with annotation; EXCLUDED from scoring.",
  "retracted": "Ended/invalidated deal — record stays visible with note; EXCLUDED from scoring."
 },
 "confidenceLabels": {
  "claimed": "Default. Public claim collected by AI, not independently corroborated.",
  "corroborated": "Buyer-side confirmation exists (buyer-issued PR, buyer exec quoted confirming deployment, joint announcement).",
  "founder-attested": "Declared by the company via the claim flow (none in v0 — all attested fields read 'Awaiting founder declaration').",
  "ai-inferred": "Analyst judgment, labeled as such."
 },
 "rankingWeights": {
  "archetypeFit": 0.35,
  "tombstone": 0.3,
  "completeness": 0.2,
  "growth": 0.15
 },
 "rankingFormula": "score = 0.35*archetypeFit/100 + 0.30*tombstoneStrength/50 + 0.20*ontologyCompleteness + 0.15*growthSignal/100",
 "evidencePolicy": "Every AI-filled field carries source + date + confidence. Low-confidence data is labeled, not smoothed. Tombstones measure ANNOUNCED wins, never 'traction'.",
 "honestyLabels": {
  "ranking": "v0 ranking — methodology published, weights provisional.",
  "buyerName": "Field renamed from f500Name in Oct 2026: named buyers are enterprise buyers, not verified Fortune 500 members."
 },
 "changelog": [
  "v0.1 (2026-10-04): initial published methodology.",
  "2026-10-05: QA-fix pass — 5 fabricated tombstone URLs replaced/removed, 2 mis-citations fixed, 3 tombstones retracted/disputed with on-record notes, investor-relationship tombstones re-tiered to T4, buyerName rename, full re-rank.",
  "v0.2.4 (2026-10-05): origin-hub release — field + transparency changes, NO scoring change. New three-fact origin ontology on every profile (origin = immutable founding country; hq = current HQ; incorporation = legal incorporation country), each with evidence. 'Top 100 India-Origin Startups' hub lens: top 100 India-origin (origin.country == 'IN') profiles by the unchanged v0.2.3 readiness score; hub ranks carry methodology version + evidence cutoff. Founder-attestation provenance states documented (founder input is evidence submission only — corrects facts, never judgments; no rank-gaming previews). Dual-rank display with explicit denominators; coverage counts (evaluated/published/excluded/insufficient-evidence) published on hub views.",
  "v0.2.5 (2026-10-05): pilot friction audit — new `pilot` block on every profile (founder-approved). 100% AI-driven from public sources (implementation docs, POC case studies, trust centers, pricing pages, API/sandbox docs); founder ping is inbound-only, never a data-collection channel. Organizing principle: everything a buyer must give, do, risk, or wait for — dataNeeds, buyerEffort, technicalSetup, commercial, plus an AI-derived friction rating (low|medium|high, always labeled inferred). Per-block provenance (independent | company-claimed | inferred | unverified); undisclosed structures marked 'pilot structure not disclosed publicly' — absence is a signal, never padded. Deepens the existing 15% pilot-mechanics score component; NO reweighting, NO scoring change. Literature grounding: Data Friction Index (availability/quality/access-latency/governance-clearance), POC scope checklists (scope, buyer responsibilities, success criteria, next commercial decision), synthetic-vs-production-data POC dynamics. SOC 2 is one item among many — not overweighted."
 ],
 "v02": {
  "note": "Two numbers, one rank: readiness (ranked on) + evidence grade (displayed). Missing components are excluded with weights renormalized — never zero. Full spec: salesbook-methodology-v0.2.md",
  "weights": {
   "buyerFit": 0.3,
   "commercialProof": 0.25,
   "stageMaturity": 0.15,
   "pilotMechanics": 0.15,
   "teamTrajectory": 0.1,
   "evalCompleteness": 0.05
  },
  "stageMap": {
   "Early": 30,
   "Growth": 55,
   "Pilot-ready": 70,
   "Established": 80,
   "In-market": 85,
   "Scaling": 100
  },
  "tombstoneConfidenceMultipliers": {
   "corroborated/high": 1.0,
   "medium": 0.75,
   "claimed/low": 0.5
  },
  "evidenceGrade": "mean envelope confidence (high=100, medium=70, low=35) +10 if >=1 corroborated/high T1/T2, cap 100",
  "rankabilityBar": ">=3 readiness components with data AND evidence grade >= 25; else thin-evidence unranked",
  "supersedes": "v0.1 (missing growth scored 0; completeness 20%; no confidence adjustment; silent renormalization)"
 },
 "v021": {
  "changes": "median imputation for sparse components (commercialProof, teamTrajectory) instead of exclusion; tombstone recency decay; v0.1 analyst growthSignal restored where present",
  "weights": {
   "buyerFit": 0.3,
   "commercialProof": 0.25,
   "stageMaturity": 0.15,
   "pilotMechanics": 0.15,
   "teamTrajectory": 0.1,
   "evalCompleteness": 0.05
  },
  "stageMap": {
   "Early": 30,
   "Growth": 55,
   "Pilot-ready": 70,
   "Established": 80,
   "In-market": 85,
   "Scaling": 100
  },
  "tombstoneConfidenceMultipliers": {
   "corroborated/high": 1.0,
   "medium": 0.75,
   "claimed/low": 0.5
  },
  "tombstoneRecencyDecay": {
   "<12mo": 1.0,
   "12-24mo": 0.85,
   "24-36mo": 0.7,
   ">36mo": 0.5,
   "missingDate": 0.7
  },
  "imputation": "missing commercialProof/teamTrajectory = corpus median, recorded in scoreComponents.imputed",
  "evidenceGrade": "mean envelope confidence (high=100, medium=70, low=35) +10 if >=1 corroborated/high T1/T2, cap 100",
  "rankabilityBar": ">=3 readiness components with data AND evidence grade >= 25; else thin-evidence unranked",
  "medians": {
   "commercialProof": 8.23,
   "teamTrajectory": 60.0
  }
 },
 "v022": {
  "changes": "VC-backing gate + vcSignal sub-score inside stage maturity (mean of stage badge and financing maturity); rankability requires vcBacked OR documented exception; investors column (leadInvestors, totalRaisedUSD, lastRound, lastRoundDate) on every ranked profile",
  "weights": {
   "buyerFit": 0.3,
   "commercialProof": 0.25,
   "stageMaturity": 0.15,
   "pilotMechanics": 0.15,
   "teamTrajectory": 0.1,
   "evalCompleteness": 0.05
  },
  "vcSignalRubric": {
   "seriesDplus_growth_ge100M": 100,
   "seriesC": 85,
   "seriesAB": 70,
   "seed": 55,
   "angelOnly_undisclosed": 40,
   "unknown": "excluded"
  },
  "vcGate": "rankable iff vcBacked=true OR investors.exception documented (profitability 2+yrs / >$10M ARR bootstrapped / strategic backing, with evidence). Failures kept in DB with rankExclusion, off the ranked list.",
  "rankabilityBar": ">=3 readiness components with data AND evidence grade >= 25 AND (vcBacked OR documented exception); else unranked with reason",
  "exceptionsKept": [
   "truveta",
   "artisight"
  ],
  "excludedNoVcBacking": 12
 },
 "v023": {
  "changes": "Status-watch lane: credible reported distress is excluded from ranking (Gartner-MQ-style exclusion criteria published). 4 profiles moved to unranked 'Status watch' lane 2026-10-05: innovaccer, finthrive (healthcare), cooler-screens, covariant (retail). They stay visible + searchable with per-source notes intact, carry no rank number.",
  "inclusionCriteria": [
   "Active, standalone startup — not bankrupt, merged, acquired, or a product line of another company",
   "VC-backed (institutional priced round) or a documented exception (profitability, bootstrapped scale, strategic backing — with evidence)",
   "At least 3 readiness components with data, and evidence grade >= 25",
   "Operating in-market, not exited"
  ],
  "exclusionCriteria": [
   "Terminal legal events (bankruptcy, merger, acquisition) → unranked 'Historical record' lane, kept with evidence",
   "Credible reported distress (layoffs, valuation collapse, liability management, founder exits, viability-threatening lawsuits) → unranked 'Status watch' lane. Claims are ALWAYS source-attributed ('Per <source>: <claim>'), never asserted in MaxedS's voice",
   "No institutional backing and no documented exception → excluded record, kept in database with reason",
   "Below the evidence bar → 'thin evidence — unranked pending verification'"
  ],
  "statusWatchLane": {
   "members": [
    "innovaccer",
    "finthrive",
    "cooler-screens",
    "covariant"
   ],
   "movedAt": "2026-10-05",
   "rule": "Visible and searchable; per-source notes intact; no rank number; returns to ranking only when the distress reporting is resolved or superseded."
  }
 },
 "v024": {
  "changes": "Origin ontology: `origin` {country, foundedDate, evidence[]} is the IMMUTABLE country where founded — never changes on HQ move or reincorporation. `hq` {country, effectiveDate, evidence[]} is current headquarters. `incorporation` {country, evidence[]} is legal incorporation country (nullable when unsourcable). Origin is a fact about the company, never founder ethnicity. Hub lenses filter on origin.country only, which kills HQ-migration and reincorporation gaming. Founder attestation: every field carries a provenance state — independent | company-confirmed | company-claimed | inferred | unverified | disputed. Founder input is EVIDENCE SUBMISSION ONLY: it may change a field's value/provenance (recorded in attestations[]), never score inputs directly; scores recalc deterministically from evidence. Founders may correct facts (name, URL, HQ, funding, product description), never judgments (readiness, score components, ranks). SalesBook never shows a founder what to say to rank higher — no rank-gaming previews. Dual-rank honesty: hub cards render 'India #N of 100 · <Sector> #M of 100' with methodology one click away; bare '#N India' badges are never rendered. Coverage transparency: hub views publish evaluated / published / excluded / insufficient-evidence COUNTS (never names). Ranking history: every published hub rank carries methodology version + evidence cutoff date.",
  "scoringChange": false,
  "hubLens": {
   "IN": {
    "label": "Top 100 India-Origin Startups",
    "definition": "Top 100 profiles with origin.country == 'IN', ranked by the v0.2.3 F500 sales-readiness score (unchanged).",
    "eligibility": "origin.country == 'IN' AND computed readiness score AND rankability bar (vcBacked, evidence >= 25) AND not terminal/excluded/status-watch. New hub profiles are scored under v0.2.4 (formula identical to v0.2.3) but not inserted into global sector arrays in this build."
   }
  }
 },
 "v025": {
  "changes": "New `pilot` object on every profile: {researchStatus, researchedAt, dataNeeds{clientDataRequired, dataDescription, sampleDataSufficient, dataAccess, governanceNotes, provenance}, buyerEffort{stakeholdersRequired[], itInvolvement, internalOwnerRequired, estimatedHoursPerWeek, provenance}, technicalSetup{integrations[], sandboxAvailable, typicalDuration{value,unit}, deploymentModel, provenance}, commercial{paidPilot{paid,terms}, successCriteria, conversionPath, provenance}, friction{level, why, provenance='inferred' always}, undisclosedNote}. Unresearched profiles carry {researchStatus:'pending'} — honest placeholder, never a fabricated block. Friction rating is an AI judgment and is always labeled inferred.",
  "scoringChange": false,
  "researchRule": "Public sources only. Founder input is inbound-only (attestations), never a data-collection channel."
 }
}