Skip to main content
Core ConceptsMathematical Proof

Orthogonal Confidence Metric, Binding Caps & Half-Life Decay

Why confidence is mathematically separated from score, how missing evidence binds ceilings, and exponential decay math.

KKelly (Intelligence Lead)
Published:
Updated:
5 min read

A common flaw in algorithmic evaluation is conflating the magnitude of a metric with the certainty of the data supporting it. MeritSKU treats Score and Confidence as strictly orthogonal dimensions: an evaluation can have a high score with low confidence, or a low score with 100% cryptographic certainty.

Cited Claim IDs:PUB-CLM-003

1. Orthogonality: Score vs Confidence

If a supplier quotes a remarkably low factory price of $1.50 for a complex gadget, the preliminary MeritScore might look exceptional (92/100). However, if this price is an unverified verbal claim without a formal pro-forma invoice or dimensional packing slip, the Confidence is low (35%).

Presenting the score as 92 without orthogonal confidence would mislead operators into buying unverified inventory.

2. Binding Ceiling Caps by Missing Data

To protect operators from unverified optimism, MeritSKU applies binding ceiling caps on the actionable score when Tier 1 evidence is absent:

Missing Evidence ComponentMaximum Confidence CapActionable Status Restriction
Verified Factory Invoice (Tier 1)50% Max ConfidenceCannot exceed CAUTION verdict
Dimensional Packaging & Weight60% Max ConfidenceFreight cost flagged as provisional
Customs Tariff Code (HTS)70% Max ConfidenceDuty reserve computed at max rate (25%)
Complete Evidence Present100% Confidence CapFull ADVANCE verdict permitted

3. 30/60/90-Day Evidence Half-Life Decay

Supplier quotations, shipping freight spot rates, and ad CPMs degrade over time. MeritSKU applies exponential half-life decay to evidence confidence:

TYPESCRIPTconfidence-decay.ts
export function calculateDecayedConfidence(
  initialConfidence: number,
  ageInDays: number,
  halfLifeDays: number = 60
): number {
  const decayFactor = Math.pow(0.5, ageInDays / halfLifeDays);
  return Math.round(initialConfidence * decayFactor);
}

Was this guide helpful?

Your feedback trains our editorial documentation standards.