Age-Weighted Value Score¶
A scoring model — instantiates Layer Decay and Expiration Management
Collapses many keep-or-expire signals into one comparable number per layer by discounting each layer's standing value along a decay curve tied to its age.
When old deposits pile up, the first problem is that you cannot triage what you cannot compare. Age-Weighted Value Score gives every accumulated layer a single, comparable number so the whole pile can be ranked rather than argued over one item at a time. Its defining move is to treat age not as a hard cutoff but as a decay multiplier: a layer's raw worth — provenance, access, risk, cost to recreate — is discounted by a decay curve that shrinks as the layer gets older, so a valuable-but-fresh layer and a valuable-but-ancient layer land in very different places. Where a fixed expiry clock says only "too old, gone," this score says "here is how much this layer is still worth today, everything considered," and hands the sorted list to whatever mechanism actually acts on it.
Example¶
A data-platform team is drowning in a warehouse of 40,000 tables and cannot say which to retire. They score each one. The raw value of a table is built from a few signals — query frequency, downstream lineage (how many dashboards read it), cost to recompute if lost, and a PII-risk flag — and that raw value is then multiplied by a decay term keyed to months since last write. A gold-standard revenue table queried daily scores high and barely decays; a three-year-old ad-hoc export nobody has touched since decays to near zero and rises to the top of the retire list. The output is a ranked sheet: "bottom ≈8% of tables carry under 2% of total query value and ≈35% of storage cost." That single ordering turns an unbounded cleanup argument into a bounded worklist the team can walk down.
How it works¶
The distinctive machinery is the combination of a multi-factor value and a decay curve, not any one factor:
- Assemble the raw per-layer value from weighted factors (access, provenance, reconstruction cost, risk), pulled from whatever siblings measure them.
- Apply a decay function to the age term — linear, step, or exponential half-life — so value falls off at a shape you choose rather than a cliff.
- Combine into one score, either additively or with a veto factor (e.g. a legal-risk flag can floor or spike the number regardless of age).
- Emit a ranked list with threshold bands (keep / review / expire), so the score orders action instead of dictating it.
Tuning parameters¶
- Decay shape and half-life — how fast age erodes value. A short half-life aggressively favours fresh layers; a long one keeps history alive longer. This is the dial that most changes who lands on the expire list.
- Factor weights — how much access vs. provenance vs. risk each count. Over-weighting raw access frequency quietly penalises the cold-but-vital layer used once a year at audit time.
- Combination rule — additive (everything trades off) vs. multiplicative/veto (one factor can dominate). Veto factors protect against a high-risk layer being averaged into oblivion.
- Threshold bands — where the keep/review/expire cut lines fall, trading cleanup throughput against the risk of retiring something still needed.
- Rescore cadence — how often the score is recomputed as ages roll forward and access patterns shift; a stale score is itself stale context.
When it helps, and when it misleads¶
Its strength is comparability: it converts "should we keep this?" asked 40,000 times into one ordered list, and it surfaces exactly the layers that are simultaneously old, unused, costly, and risky — the ones no single filter catches. It is a ranking input, which is also its safeguard: it never deletes, it only orders.
Its failure modes are the classic ones for any composite index. Weights are judgment calls, so a tidy score lends false precision to what is really an opinion, and the number is easily run backwards — weights tuned until a dataset someone likes survives, or a rival's dataset sinks. Access-frequency terms systematically undervalue rarely-but-critically-used layers, so a naive half-life[1] can decay a vital record to the bottom of the list. The discipline that keeps it honest is to treat the score as a triage ordering, not a verdict — eyeball the bottom band before anything acts on it, and keep a value floor for layers that a preservation exception protects.
How it implements the components¶
Age-Weighted Value Score realises the scoring side of the archetype — turning raw signals into a rankable figure, not acting on it:
layer_value_and_risk_score— its output is this composite: the per-layer number blending value, risk, and cost.decay_function_or_aging_rule— the age term is an explicit decay curve (half-life / step / linear), which is what makes the score age-weighted rather than a static snapshot.
It does not own the access-state tiers (that's Cache Eviction Rule), the record-class retention rules (Retention Schedule), or the expiry clock (Time-to-Live (TTL) Policy); this model scores layers, those mechanisms act on them.
Related¶
- Instantiates: Layer Decay and Expiration Management — supplies the ranking that other disposition mechanisms consume.
- Sibling mechanisms: Time-to-Live (TTL) Policy · Cache Eviction Rule · Retention Schedule · Lifecycle Storage Tiering Policy · Stale-Layer Detection Dashboard · Dependency-Safe Delete Check · Soft-Delete Quarantine Window · Archive-Restore Test · Log Rotation and Cleanup Job · Tombstone or Deletion Marker
Notes¶
The score is only a priority ordering; it deliberately stops short of the safety checks that must run before anything is actually removed. A high position on the expire list still has to clear a Dependency-Safe Delete Check before disposal — the score says what looks least worth keeping, not what is safe to delete.
References¶
[1] An exponential half-life — the period over which a quantity falls to half its value — is the standard decay shape borrowed here from physics and finance; it is a modelling choice for the aging term, not a measured property of the data, and should be set, not assumed. ↩