BetaYou're exploring an early version of tPay365. Features and content may change as we refine the experience.

← Back to Features
Core Engine

The Clean Paycheck Protocol

True discretionary income — the number you see is the number you can spend.

How it works

1

Salary arrives

Employer's BACS payment hits the tPay365 ingestion layer

2

Obligations extracted

Rent, bills, loans, and savings are vaulted instantly

3

Clean Paycheck released

Only genuinely spendable money reaches your account

The difference is clarity

Traditional bank view

Available Balance

£2,400.00

Looks great. But how much can you actually spend?

Hidden obligations

Rent-£850.00
Bills-£215.00
Loan repayment-£200.00
Council Tax-£150.00
Buffer needed-£63.25
Total committed-£1,478.25

Real safe-to-spend: only £921.75

tPay365 Clean Paycheck

Safe-to-Spend

£1,071.75

This is what you can actually spend. Everything else is vaulted.

Vault breakdown

Rent Vault
£850.00
Bills Vault
£215.00
Loan Vault
£200.00
Council Tax
£150.00
Safety Buffer
£63.25
Total vaulted£1,478.25

Gross pay: £2,400.00 − Vaulted: £1,478.25 − Buffer: £63.25 = Safe-to-Spend: £858.50 + Buffer surplus applied

Technical Architecture

Technical Specification

Algorithm:
  clean_paycheck = gross_pay - statutory - vault_total - buffer
  buffer = sum(variable_obligations) × 0.05

Precision: decimal.js with ROUND_HALF_UP
Zero floor: clean_paycheck >= 0 (never negative)
Priority drop: Savings dropped first if income < total
Invariant: gross == locked + buffer + clean_paycheck

Execution time

<50ms

Per paycheck calculation

Precision

decimal.js

ROUND_HALF_UP, 2 d.p.

Parity

Byte-identical

TypeScript + Python outputs match

clean-paycheck-mobile-app.pngMobile app showing Clean Paycheck balance with vault breakdown
clean-paycheck-employer-dashboard.pngEmployer HR dashboard showing batch paycheck processing

API Endpoints

POST/api/v1/engine/paycheck/calculateCalculate clean paycheck
GET/api/v1/engine/paycheck/historyPayment history
POST/api/v1/engine/paycheck/simulateSimulate with different parameters
View full API reference →