Page actions
instrument mechanism / verified-clean
Caffeine Half-Life / Level Tracker mechanism
The inspectable method record for Caffeine Half-Life / Level Tracker, kept separate from implementation and qualification.
Model scope
The exponential half-life decay formula is standard for a simplified one-compartment, first-order elimination estimate, provided the adjustable half-life replaces the hard-coded 5 hr and all unit and dose-timing constraints are explicit. The four vectors use deterministic sampled plot points; no iterative solver is involved.
- The displayed formula hard-codes a 5-hour half-life, while the inputs state that half-life is adjustable; it should be C(t)=Σ dose_i·(1/2)^((t−t_i)/H), where H is the supplied half-life.
- The model must define that only doses with t_i≤t contribute to the current level; otherwise future doses produce nonphysical pre-dose caffeine levels.
- “Level” is ambiguous: the formula computes estimated caffeine amount in the modeled compartment, in dose units such as mg, not concentration unless an additional volume parameter is supplied.
- The time-to-threshold algorithm must specify whether threshold crossing is evaluated only after the final logged dose or allows later scheduled doses, and whether “below” means strictly less than the threshold.
Units and conventions
- dose_i is caffeine amount, assumed to be in milligrams; all doses must use the same amount unit.
- t, t_i, and H must use the same time unit. The examples below explicitly use hours or minutes.
- H must be positive and represents the elimination half-life in the same time unit as the timestamps.
- Doses are modeled as instantaneous absorption at t_i, with bioavailability equal to 1.
- The plotted quantity is estimated caffeine amount in the compartment, not blood concentration.
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"doses": [
{
"time_hr": 0,
"dose_mg": 100
}
],
"half_life_hr": 5,
"sample_times_hr": [
0,
5,
10
],
"threshold_mg": 10
},
"expected_outputs": {
"sampled_points": [
{
"t_hr": 0,
"y_mg": 100
},
{
"t_hr": 5,
"y_mg": 50
},
{
"t_hr": 10,
"y_mg": 25
}
],
"time_to_below_threshold_hr": 16.6096404744,
"curve_features": {
"finite_roots": [],
"horizontal_asymptote_mg": 0,
"dose_jump_at_hr": [
0
]
}
},
"working": "Use C(t)=100·2^(-(t−0)/5). At t=0: exponent=0, so C=100·2^0=100 mg. At t=5: exponent=−1, so C=100·(1/2)=50 mg. At t=10: exponent=−2, so C=100·(1/4)=25 mg. For the 10 mg crossing: 100·2^(−t/5)=10; 2^(−t/5)=0.1; −t/5=log2(0.1)=−3.32192809489; therefore t=5·3.32192809489=16.6096404744 hr. The curve remains positive for every finite t, so it has no finite root and approaches 0 mg."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
A zero half-life produces an undefined division by zero, and evaluating the literal formula before an intake produces an extrapolated value outside the physical model domain. Inputs at or below the validity boundary should be rejected or explicitly flagged.
Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche6/tranche6-results.jsonBOUNDARY_HAZARD_CATALOG.json