Example unsecured personal lending policy (illustrative only)
An example. Every figure in it is invented.
Every figure in this example is invented. There is no borrower, no bank statement and no lender: the transactions below were generated from the numbers in the form so that the policy engine has a statement to read, which is what it reads.
The credit policy replayed here is the one that says this at the top of itself. models/policies/example-au.txt is an example. Its thresholds are round numbers chosen to make the mechanism visible. They are not advice, not a market standard and not anybody’s policy. A real policy is written by a lender's credit risk function against their own book and signed off by people whose names go on it.
Reading round numbers — models/policies/example-au.txt. Written to make the mechanism visible: a $300 surplus floor, a 45 per cent debt service ceiling, thresholds a reader can do in their head while watching the replay work.
Or run the same application against In the shape of a published guideline.
A policy here is a text file, not code. The person who knows that the servicing buffer moved in June is a credit risk officer and not a programmer, so the source is one rule a line, in words, and every parse error names its line and says what to do about it. scripts/build-policy.js checks it, hashes each version and writes the module beside it; the module is committed because a Cloudflare Worker has no filesystem, and a test fails if the two have drifted.
Each version carries its dates and its hash. That is what a replay rests on: the rules that ran on a given day can be shown to be the bytes that were hashed on that day, rather than the rules somebody remembers having had.
There is no word for an approval.approve, decline, score and recommend are parse errors in this format, whose message says that the decision and the responsibility for it stay with the licensee.
The debt-to-income lines in this policy are the lender's own, not APRA's
From February 2026 APRA limits an authorised deposit-taking institution to writing no more than 20 per cent of its new residential mortgage lending, measured each quarter and counted separately for owner-occupier and investor lending, at a debt-to-income ratio of six or more. That caps the mix of a lender’s own book. It does not prohibit a borrower: it does not say that a person at a ratio of six may not be lent to, and no threshold on this surface is APRA’s rule. What a lender does about a portfolio limit — a ceiling, a referral band, a delegation level, or nothing at all — is that lender’s own credit policy, which is the thing versioned and hashed here.
The policy on this page is an invented consumer lending policy, which APRA's mortgage measure does not reach at all. models/policies/example-au.txt is an example. Its thresholds are round numbers chosen to make the mechanism visible. They are not advice, not a market standard and not anybody’s policy.
In force today
On 26 September 2026 the version in force is 2026.06, effective 1 June 2026.
2 versions
2026.03
In force from 1 March 2026 up to and including 31 May 2026; retired on 1 June 2026, which is the day its replacement took effect.
The rules in this version hash to 8400e4ccd45d6d4696e20f87c41cc6996ab7b9dc25bd429cc5c32316c4727caa. That is what makes “we ran 2026.03” checkable rather than claimed.
The first version. Written to be replayed against, not to be copied.
Rule
Kind
The condition, as the policy wrote it
surplus
must be met
monthly surplus at least $300A surplus at the assessed rate is what the applicant has left if the rate moves against them. A figure near zero is arithmetically true and nobody should lend on it.
surplus-ratio
must be met
net surplus ratio at least 5%The same question as a share of income, so that a large income with large outgoings is not read as comfortable.
debt-service
must be met
debt service ratio at most 45%Every repayment, existing and proposed, measured against assessed income.
loan-to-income
must be met
loan to income at most 6The principal as a multiple of assessed annual income.
dti-ceiling
must be met
debt to income at most 7Every debt this lender counts, including the loan applied for, as a multiple of gross annual income. This is the lender's own ceiling. It is not APRA's cap, which limits the share of a lender's new mortgage book written above a ratio and says nothing about whether any one borrower may be lent to.
history
must be met
statement days at least 90Three months is the shortest period in which a fortnightly rhythm can be seen at all.
coverage
must be met
categorised share at least 80%Below this, too much of the statement is unread for the expense picture to mean anything. The reading lists the payees it could not identify.
income
must be met
income streams at least 1An assessment with no identified regular income is an assessment of nothing.
dti-band
sends it to a person
debt to income not between 6.5 and 7A ratio in the band below this lender's ceiling goes to a person rather than through. Read the polarity carefully: a refer states the condition under which the application does NOT go to a person, so the band a person looks at is the one written as "not between".
inferred-income
sends it to a person
inferred income share at most 50%Income counted because it repeats, from credits whose description does not name a payer, should be confirmed with the applicant before it carries an application.
gambling
sends it to a person
spend on gambling at most $100Not a reason in itself. It is a fact a person should see beside the rest of the file.
small-credit
sends it to a person
signal small_amount_credit is absentPayments to businesses whose products are commonly small amount credit contracts. The rebuttable presumptions of unsuitability that used to attach to this were repealed in 2022, so this referral is this lender's own judgement and not a requirement of the Act.
dishonours
sends it to a person
signal dishonours is absentDishonour and overdrawn fees say something about the month to month that a monthly average does not.
2026.06
In force from 1 June 2026, and not retired.
The rules in this version hash to 083754ea2ff07e44c7b5d23295917b5fdadea8bee580c149de1d2a1cb155bb90. That is what makes “we ran 2026.06” checkable rather than claimed.
June: the surplus floor moved from $300 to $600, the loan-to-income ceiling from 6 to 5, the debt-to-income ceiling from 7 to 6 and the referral band under it from 6.5-7.0 to 5.5-6.5, after a portfolio review. An application assessed in May is still judged against 2026.03, which is the whole reason the versions carry dates.
Rule
Kind
The condition, as the policy wrote it
surplus
must be met
monthly surplus at least $600A surplus at the assessed rate is what the applicant has left if the rate moves against them. Raised in June after a portfolio review.
surplus-ratio
must be met
net surplus ratio at least 5%The same question as a share of income, so that a large income with large outgoings is not read as comfortable.
debt-service
must be met
debt service ratio at most 45%Every repayment, existing and proposed, measured against assessed income.
loan-to-income
must be met
loan to income at most 5The principal as a multiple of assessed annual income. Lowered in June.
dti-ceiling
must be met
debt to income at most 6Every debt this lender counts, including the loan applied for, as a multiple of gross annual income. Lowered from seven in June. This is the lender's own ceiling. It is not APRA's cap, which limits the share of a lender's new mortgage book written above a ratio and says nothing about whether any one borrower may be lent to.
history
must be met
statement days at least 90Three months is the shortest period in which a fortnightly rhythm can be seen at all.
coverage
must be met
categorised share at least 80%Below this, too much of the statement is unread for the expense picture to mean anything. The reading lists the payees it could not identify.
income
must be met
income streams at least 1An assessment with no identified regular income is an assessment of nothing.
dti-band
sends it to a person
debt to income not between 5.5 and 6.5A ratio in the band below this lender's ceiling goes to a person rather than through. The band was 6.5 to 7.0 in March and was lowered with the ceiling in June. Read the polarity carefully: a refer states the condition under which the application does NOT go to a person, so the band a person looks at is the one written as "not between".
inferred-income
sends it to a person
inferred income share at most 50%Income counted because it repeats, from credits whose description does not name a payer, should be confirmed with the applicant before it carries an application.
gambling
sends it to a person
spend on gambling at most $100Not a reason in itself. It is a fact a person should see beside the rest of the file.
small-credit
sends it to a person
signal small_amount_credit is absentPayments to businesses whose products are commonly small amount credit contracts. The rebuttable presumptions of unsuitability that used to attach to this were repealed in 2022, so this referral is this lender's own judgement and not a requirement of the Act.
dishonours
sends it to a person
signal dishonours is absentDishonour and overdrawn fees say something about the month to month that a monthly average does not.
What changed, read from the rules themselves
Not from the notes. A note is the author's account of a change; this is the change.
2026.03 → 2026.06. Between 2026.03 and 2026.06: 4 changed, 9 unchanged.
"surplus" went from "monthly surplus at least $300" to "monthly surplus at least $600".
"loan-to-income" went from "loan to income at most 6" to "loan to income at most 5".
"dti-ceiling" went from "debt to income at most 7" to "debt to income at most 6".
"dti-band" went from "debt to income not between 6.5 and 7" to "debt to income not between 5.5 and 6.5".
June: the surplus floor moved from $300 to $600, the loan-to-income ceiling from 6 to 5, the debt-to-income ceiling from 7 to 6 and the referral band under it from 6.5-7.0 to 5.5-6.5, after a portfolio review. An application assessed in May is still judged against 2026.03, which is the whole reason the versions carry dates.
The figures a rule may read
A condition is a figure, a comparison and a value. The figures are the ones the statement reading and the serviceability assessment already produce, so there is one route to each number rather than two that can come to disagree.
monthly surplus
What is left each month once assessed income has met living expenses, commitments and the proposed repayment
annual surplus
The monthly surplus multiplied by twelve, because a published credit guideline states its minimum servicing surplus as an amount a year
net surplus ratio
The monthly surplus as a share of assessed income
debt service ratio
All repayments, existing and proposed, as a share of assessed income
assessed income
Verified income after the lender’s shading
living expenses
The living expense figure used, being the highest of declared, benchmark and observed
declared expenses over benchmark
What the applicant declared they spend each month, as a share of the lender’s own household expenditure benchmark — both supplied, because this repository holds no benchmark table
assessed commitments
Existing commitments counted in the assessment, including card limits
proposed repayment
The repayment on the proposed loan at the buffered assessment rate
assessment rate
The rate the loan was assessed at: the offered rate plus the buffer, floored
assessment buffer
The margin between the rate the loan was assessed at and the rate offered, which is the servicing buffer as the assessment applied it
assessment complete
Whether every input a complete serviceability assessment needs was actually supplied
statement days
How many days the statement covers, first transaction to last
statement months
How many months the statement covers
transactions
How many transactions were read
categorised share
The share of transactions this software could identify
enough history
Whether the statement covers at least 90 days, the minimum a fortnightly rhythm can be seen in
verified monthly income
Regular income found on the statement, before any policy shading
income streams
How many separate regular income streams were identified
inferred income share
The share of verified income that comes from credits whose description does not say they are income
monthly commitments
Repayments and rent found on the statement, monthly
monthly housing
Rent or mortgage found on the statement, monthly
monthly outgoings
Everything that left the account except transfers, monthly
loan amount
The principal applied for
loan term years
The term applied for, in years
loan rate
The rate offered, before the assessment buffer
loan purpose
What the money is for, as the application states it
loan to income
The principal as a multiple of assessed annual income
debt to income
Every debt the lender counts, including the loan applied for, as a multiple of gross annual income — supplied, because gross income is not on a bank statement and what counts as debt is the lender’s own definition
contract kind
Whether the contract is a small amount credit contract, a medium amount one, or neither — as the definitions in s 5(1) of the Act and s 204(1) of the Code decide it
adjusted credit amount
The first amount of credit provided, with any fee capitalised into it disregarded — the base of both fee caps (National Credit Code s 204(1) and (3))
cost of credit
Everything the borrower pays beyond the credit itself, in dollars over the whole term
cost of credit share
What the borrower pays beyond the credit, as a share of the amount borrowed over the whole term — not annualised, and not an interest rate
annual cost rate
The annual cost rate under s 32B of the National Credit Code, which s 32A caps at 48% — for a medium amount credit contract, because s 32A(4)(b) puts small amount credit contracts outside that cap entirely
protected earnings share
The largest share of a repayment period’s available income that the repayments take, across every repayment period — the figure reg 28LCA(2) caps at 10%
protected earnings headroom
How much less than the 10% cap the repayments take in the tightest repayment period
protected earnings met
Whether every repayment is at or under 10% of the available income expected in its own repayment period (National Credit Act s 133CC(1), reg 28LCA(2))
equal repayments met
Whether the repayments and the intervals between them satisfy s 133CD of the National Credit Act
within the code caps
Whether the contract imposes anything the Code does not permit — a fee above its cap, an interest charge on a small amount credit contract, or an annual cost rate above 48% on a medium amount one
small amount evidence complete
Whether every input the small amount credit contract tests need was actually supplied
capacity headroom
How much less than the maximum this lender would lend the applicant is asking for
gambling in the last 30 days
Money spent on gambling in the thirty days to the end of the statement
gambling in the last 90 days
Money spent on gambling in the ninety days to the end of the statement
gambling share of income in the last 30 days
Gambling in the last thirty days as a share of income credited in the same thirty days
dishonours in the last 30 days
Dishonour and overdrawn fees in the thirty days to the end of the statement
dishonours in the last 90 days
Dishonour and overdrawn fees in the ninety days to the end of the statement
overdrawn days in the last 90 days
Days in the last ninety on which the running balance was below nought
income credits in the last 90 days
Credits identified as income in the last ninety days
statement age days
Days between the last transaction on the statement and the day this policy was run — how stale the evidence is
declared income difference
How far the declared income is from the income the statement verified, either way, as a share of the verified figure
applicant age
The applicant’s age in whole years, as the lender’s identity check established it
identity verified
Whether the lender’s identity check verified the applicant
contact verified
Whether the applicant proved control of a mobile number or email address, by a one-time code or otherwise
account name matches
Whether the name on the income account matches the applicant
all income accounts included
Whether every account income is paid into is in the statement reading — ss 117(1A) and 130(1A) speak of the consumer’s account, and income paid somewhere unread is income the assessment cannot see
residency criteria met
Whether the applicant meets the residency criteria of the lender’s own product
requirements and objectives met
Whether the lender’s own record of the consumer’s requirements and objectives says this contract meets them. Recorded by a person under ss 130 and 131; this software reads the record and does not make the judgement
prior contracts
Contracts this applicant has had with this lender before
prior contracts paid late
Earlier contracts with a repayment missed, paid late, or days past due at any point
prior dishonours
Payments dishonoured under earlier contracts with this lender
prior most days past due
The most days past due any earlier contract with this lender reached
prior hardship arrangements
Hardship arrangements under earlier contracts with this lender
prior history complete
Whether every earlier contract’s servicing history was available to read
spending reduction shortfall
How far short of a committed reduction in discretionary spending the applicant fell, in percentage points: the reduction promised under an earlier contract, less the reduction the statement now shows
A threshold may be a band as well as a number.debt to income between 5.5 and 6.5 and debt to income not between 5.5 and 6.5 both read, and both ends are included, which is what “between 5.5 and 6.5” means when a person says it out loud; a half-open band is written as two comparisons joined with “and”, which says where the edge sits. The second form is the one a referral line needs, and the polarity catches everybody once: a refer states the condition under which the application does not go to a person, so a band a human should look at is written as the requirement to be outside it. A band with its ends the wrong way round is refused when the file is read, with both readings spelled out.
Three of them take a parameter: spend on <category>, signal <code> and share of income from <kind>, where the kinds are salary, government, other. A guideline does not have one income rule — it has a table with a line for each kind of income and a different figure against each — so the format has to be able to write one rule per line of that table. The signal codes are written out in the engine rather than left open, because an open list turns a misspelling — dishonors for dishonours — into a rule that reads as absent on every statement ever written and looks exactly like a control that is working.
What the parser refuses
A rule that could never fail, and a rule that could never be met. monthly surplus at least $300 or monthly surplus less than $300 is refused when the file is read, because a control that cannot fail is indistinguishable from a control that works until the day somebody looks.
A version with no rules at all, because a run of it would report that all nil of its conditions were met.
A version made only of referral tests, for the same reason: it states nothing that must be met, so there is nothing in it to report as met.
A rule with no reason. The reason is what is read back when the condition is not met, and a condition that cannot say why it exists cannot be defended by the person who has to defend it.