Source: https://guthlabs.ai/docs/instruments/50-30-20-budget-splitter/

instrument / verified-clean

# 50/30/20 Budget Splitter

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/50-30-20-budget-splitter/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/50-30-20-budget-splitter/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/50-30-20-budget-splitter/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/50-30-20-budget-splitter/qualification/>)

## Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

**Area**: Finance, Economics & Business (educational only — never individualized investment, tax, or legal advice)

**Tranche**: tranche-4

**Evidence ID**: t4-104

**Ledger rows**: 1

No ledger note is attached.

## Review findings

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.

### Formula and scope findings

- 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.

### Unit assumptions

- 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.

## Boundary hardening

**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.

## Errata and corrections

No applied erratum is attached to this unique-name record.

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "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."
}
````

## Related workflows

No source-defined multi-instrument workflow membership is recorded.

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json · VERIFIED_CLEAN`

- `evidence-tranche4/tranche4-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
