Page actions
instrument mechanism / verified-clean
50/30/20 Budget Splitter mechanism
The inspectable method record for 50/30/20 Budget Splitter, kept separate from implementation and qualification.
Model scope
The core 50/30/20 arithmetic is standard and correct, and the generic-guideline disclaimer is appropriate. Verdict is NEEDS_REVIEW because the adjustable split representation, validation rules, period handling, rounding policy, and pie-breakdown calculation are not fully specified.
- The fixed formulas are correct for the 50/30/20 guideline when income is a nonnegative net-income amount and percentages are represented as decimal fractions: 0.5, 0.3, and 0.2.
- The adjustable custom split is underspecified: the spec does not define whether entered values are whole percentages such as 50 or decimal fractions such as 0.5.
- Custom splits need validation requiring nonnegative components whose sum is exactly 100% (or 1.0), or an explicitly documented normalization rule.
- The pie breakdown formula is not stated. It should use the configured split percentages directly, or define how percentages are derived from amounts.
Units and conventions
- Net income is an amount in the stated currency, not a percentage or a value in minor units such as cents.
- The income period must be specified; outputs use the same period as the input and no annual-to-monthly conversion is performed.
- Custom split inputs in these vectors are whole percentages and must sum to 100%.
- Dollar outputs are shown to the nearest cent; the rounding policy for cases that produce fractional cents is not specified.
- The guideline percentages are allocation suggestions, not individualized financial advice, consistent with the stated honest label.
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"net_income": 5000,
"currency": "USD",
"income_period": "monthly",
"custom_split_percent": [
50,
30,
20
]
},
"expected_outputs": {
"needs": 2500,
"wants": 1500,
"savings": 1000,
"pie_breakdown": {
"needs_percent": 50,
"wants_percent": 30,
"savings_percent": 20
}
},
"working": "needs = 0.50 × 5000.00 = 2500.00; wants = 0.30 × 5000.00 = 1500.00; savings = 0.20 × 5000.00 = 1000.00; check: 2500.00 + 1500.00 + 1000.00 = 5000.00."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
The formulas themselves have no division-by-zero or branch regime, but the specification leaves negative-income handling and percentage conventions unstated. A UI that accepts negative income can display nonsensical negative allocations, and chart normalization at zero income can encounter 0 divided by 0. Extreme finite inputs also expose floating-point precision and possible overflow beyond the tested magnitude.
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-tranche4/tranche4-results.jsonBOUNDARY_HAZARD_CATALOG.json