Skip to main content

This is a test site with dummy HMRC services. Do not enter real personal information. How it works.

End-to-end persona tests

Each test customer goes through a whole journey, as a person would in a browser. Other services are the dummy versions, reached over HTTP like the real ones. Every expected figure was worked out by hand.

Calculator and data from HMRC

J01: Sam's pay and tax come from HMRC; he adds his rent

  • Passed
Test customer
Sam Okafor (persona P26)
Use cases
UC01, UC02
Services used
Dummy HMRC: OAuth and Individuals Employments Income API
Steps
  1. An administrator switches on the HMRC data feeds
  2. Sam starts the calculator for 2025 to 2026 and says yes to HMRC records
  3. He signs in at the dummy HMRC and gives permission
  4. His pay and tax are filled in; he checks them
  5. He adds his rent, costs and mortgage interest
  6. He checks his answers and sees his estimate
Checks
What Expected Seen Result
Pay filled in from HMRCNorthgate Logistics Ltd, 2025 to 2026 £45,000.00 £45,000.00 Passed
Tax taken off pay, filled in £6,486.00 £6,486.00 Passed
Check your answers says where it came from from HMRC PAYE records from HMRC PAYE records Passed
Total tax for the year7,540 at 20% + (60,000 - 12,570 - 37,700) x 40% = 3,892, less 20% of 7,000 mortgage interest = 10,032 £10,032.00 £10,032.00 Passed
Balance for the year10,032 - 6,486 taken off his pay £3,546.00 £3,546.00 Passed
Each payment on accounthalf of 3,546, because only 65% was taken at source £1,773.00 £1,773.00 Passed

J02: Grace's State Pension and bank interest come from HMRC

  • Passed
Test customer
Grace Williams (persona P07)
Use cases
UC02
Services used
Dummy HMRC: Individuals State Benefits API and the bank interest source
Steps
  1. Grace starts the calculator for 2026 to 2027 and gives permission at the dummy HMRC
  2. Her State Pension and interest are filled in
  3. She adds her workplace pension and the tax taken off it
Checks
What Expected Seen Result
State Pension filled in £12,547.60 £12,547.60 Passed
Interest filled in £1,500.00 £1,500.00 Passed
Total tax for the year(12,547.60 + 18,000 - 12,570) x 20% = 3,595.52, plus 500 interest over the 1,000 savings allowance at 20% £3,695.52 £3,695.52 Passed
Balance for the year3,695.52 - 3,600 taken off her pension £95.52 £95.52 Passed

J03: Maya's CIS deductions come from HMRC and she is due a refund

  • Passed
Test customer
Maya Kowalski (persona P17)
Use cases
UC02
Services used
Dummy HMRC: CIS Deductions API
Steps
  1. Maya gives permission at the dummy HMRC
  2. The CIS deductions her contractor reported are filled in
  3. She adds her business income and costs
Checks
What Expected Seen Result
CIS deductions filled inRiverside Builders Ltd £6,000.00 £6,000.00 Passed
Total tax for the yearprofit 26,000: (26,000 - 12,570) x 20% = 2,686 + Class 4 13,430 x 6% = 805.80 £3,491.80 £3,491.80 Passed
Repayment due to her6,000 deducted - 3,491.80 £2,508.20 £2,508.20 Passed

J04: Nina's pay, Child Benefit and student loans come from HMRC

  • Passed
Test customer
Nina Shah (persona P51)
Use cases
UC02
Services used
Dummy HMRC: Individuals Employments Income API, Child Benefit and student loan sources
Steps
  1. Nina gives permission at the dummy HMRC
  2. Her pay, tax, Child Benefit and loan plans are filled in
  3. She says her partner does not earn more, and that no loan repayments were taken from her pay
Checks
What Expected Seen Result
Pay filled in £65,000.00 £65,000.00 Passed
Child Benefit filled in £2,251.60 £2,251.60 Passed
Loan plans filled in plan_1, postgraduate plan_1, postgraduate Passed
Total tax for the yearIncome Tax 13,432 + Child Benefit charge 25% of 2,251.60 = 562.90 + Plan 1 (65,000 - 26,065) x 9% = 3,504.15 + Postgraduate (65,000 - 21,000) x 6% = 2,640 £20,139.05 £20,139.05 Passed
Balance for the year20,139.05 - 13,432 taken off her pay £6,707.05 £6,707.05 Passed

J05: Jack's Marriage Allowance comes from HMRC

  • Passed
Test customer
Jack Morgan (persona P10)
Use cases
UC02
Services used
Dummy HMRC: Individuals Employments Income API and the Marriage Allowance source
Steps
  1. Jack gives permission at the dummy HMRC
  2. His pay, tax and Marriage Allowance transfer are filled in
Checks
What Expected Seen Result
Marriage Allowance filled in transfer_to_partner transfer_to_partner Passed
Total tax for the yearPersonal Allowance 12,570 - 1,260 transferred = 11,310; (12,000 - 11,310) x 20% £138.00 £138.00 Passed
Balance for the yearall taken off his pay £0.00 £0.00 Passed

J06: Asha's payments on account come from her HMRC account

  • Passed
Test customer
Asha Patel (personas P15 and B01)
Use cases
UC01, UC02
Services used
Dummy HMRC: Self Assessment Accounts API, payments and allocations
Steps
  1. Asha gives permission at the dummy HMRC
  2. The £6,000 she paid on account for 2025 to 2026 is filled in
  3. She adds her business income and costs
Checks
What Expected Seen Result
Payments on account filled in2 payments of 3,000 on her account £6,000.00 £6,000.00 Passed
Total tax for the yearprofit 40,000: (40,000 - 12,570) x 20% = 5,486 + Class 4 27,430 x 6% = 1,645.80 £7,131.80 £7,131.80 Passed
Balance for the year7,131.80 - 6,000 paid on account £1,131.80 £1,131.80 Passed
Each payment on account for next yearhalf of 7,131.80 £3,565.90 £3,565.90 Passed

J81: Asha works out the current tax year with her HMRC account: its payments on account, paid or not yet, are filled in

  • Passed
Test customer
Asha Patel (persona B01)
Use cases
UC01, UC02, UC58
Services used
Dummy HMRC: Self Assessment Accounts API, payments and allocations, and balance and transactions
Steps
  1. Asha chooses the current tax year and gives permission at the dummy HMRC
  2. Her 2 payments on account for the year are filled in: what she has paid, and what is not paid yet (the dummy counts one as paid once its due date has passed)
  3. She adds her business income and costs
Checks
What Expected Seen Result
Payments on account for the year, paid and not paid yet2 payments of 3,565.90 on her account £7,131.80 £7,131.80 Passed
Total tax for the yearprofit 40,000: 5,486 + Class 4 1,645.80 £7,131.80 £7,131.80 Passed
Balance for the yearHMRC takes every payment on account for the year off the balance, paid or not yet £0.00 £0.00 Passed

J07: An administrator lets pay from HMRC be used without asking Sam to confirm it

  • Passed
Test customer
Sam Okafor (persona P26)
Use cases
UC25
Services used
Admin API, Dummy HMRC
Steps
  1. An administrator switches on the employment feed without confirmation
  2. Sam gives permission at the dummy HMRC
  3. The pay page is skipped; his pay is still on check your answers
Checks
What Expected Seen Result
Pay question asked No No Passed
Pay on check your answers £45,000.00 (from HMRC PAYE records £45,000.00 (from HMRC PAYE records Passed
Total tax for the yearas J01 £10,032.00 £10,032.00 Passed

J08: A customer says no at HMRC and answers the questions herself

  • Passed
Test customer
Sam Okafor (persona P26)
Use cases
UC03
Services used
Dummy HMRC: refusing permission
Steps
  1. The customer says yes to HMRC records, then chooses 'Do not give permission' at the dummy HMRC
  2. She is told nothing was filled in and goes on to answer the questions
Checks
What Expected Seen Result
Message shown You did not give permission to use your HMRC records. Answer the questions yourself. You did not give permission to use your HMRC records. Answer the questions yourself. Passed
Pay filled in Nothing Nothing Passed

J09: HMRC refuses to give one customer's records to someone else

  • Passed
Test customer
Maya's number, signed in as Sam
Use cases
UC28
Services used
Dummy HMRC: CLIENT_OR_AGENT_NOT_AUTHORISED
Steps
  1. The customer enters Maya's National Insurance number but signs in at the dummy HMRC as Sam
  2. HMRC refuses every request (403), so nothing is filled in
Checks
What Expected Seen Result
HMRC's answer for Maya's records with Sam's token 403 CLIENT_OR_AGENT_NOT_AUTHORISED 403 CLIENT_OR_AGENT_NOT_AUTHORISED Passed
Message shown HMRC records did not have any information we could use. Answer the questions yourself. HMRC records did not have any information we could use. Answer the questions yourself. Passed

J10: Software calculates Nina's tax with her HMRC data

  • Passed
Test customer
Nina Shah (persona P51)
Use cases
UC22
Services used
Calculator API, Dummy HMRC
Steps
  1. Nina gives the software permission at the dummy HMRC
  2. The software sends her number and token to POST /api/v1/calculate/with-hmrc-data
Checks
What Expected Seen Result
Figures used from HMRC child_benefit_received, paye_tax_paid, salary_gross, student_loan_plans child_benefit_received, paye_tax_paid, salary_gross, student_loan_plans Passed
Total tax for the yearas J04 £20,139.05 £20,139.05 Passed

J11: Software works out Yara's company car benefit from DVLA

  • Passed
Test customer
Yara Hughes (persona P13)
Use cases
UC23
Services used
Calculator API, Dummy DVLA
Steps
  1. The software sends the registration number and list price to POST /api/v1/benefits/company-car
  2. DVLA gives the fuel type and CO2 emissions
  3. A registration DVLA does not know is refused
Checks
What Expected Seen Result
Fuel type from DVLA ELECTRICITY ELECTRICITY Passed
Appropriate percentagezero-emission car in 2025 to 2026 3% 3% Passed
Car benefit3% of the 40,000 list price £1,200.00 £1,200.00 Passed
Unknown registration 404 404 Passed

J12: Software uses the calculator API

  • Passed
Test customer
Sam Okafor (persona P26)
Use cases
UC21
Services used
Calculator API
Steps
  1. The software sends Sam's figures to POST /api/v1/calculate
  2. It asks for a take-home pay estimate on £45,000
Checks
What Expected Seen Result
Total tax for the yearas J01 £10,032.00 £10,032.00 Passed
Income Tax on £45,000 pay(45,000 - 12,570) x 20% £6,486.00 £6,486.00 Passed
National Insurancepaid monthly: (3,750 - 1,048 primary threshold) x 8% x 12 £2,593.92 £2,593.92 Passed
Take-home pay45,000 - 6,486 - 2,593.92 £35,920.08 £35,920.08 Passed

Payment plan amounts in another app

J20: Asha sets up a plan in HMRC's service, answering questions here

  • Passed
Test customer
Asha Patel (persona B01)
Use cases
UC13, UC17
Services used
Dummy Budget Payment Plan service, Dummy GOV.UK One Login, Journeys API for organisations
Steps
  1. Asha starts the dummy Budget Payment Plan service and signs in with the dummy GOV.UK One Login
  2. It shows the bills on her account and she chooses to answer some questions
  3. It starts a journey with this service and sends her here; her account details are already known
  4. She chooses her next bill, monthly, on the 9th
  5. She continues back to HMRC's service, which collects the result
  6. She checks the plan and sets it up
Checks
What Expected Seen Result
Signed in as Asha Patel Asha Patel Passed
Bills on her accountbalancing payment 1,131.80, and 3,565.90 twice 3 3 Passed
First question asked here What do you want your payments to cover? What do you want your payments to cover? Passed
Amount shown here4,697.70 / 4 = 1,174.43, rounded up You could pay £1,175 a month You could pay £1,175 a month Passed
Amount in HMRC's service £1,175 a month £1,175 a month Passed
Number of payments 4 4 Passed
First payment5 working days after Friday 2 October 9 October 2026 9 October 2026 Passed
Last payment9 January is a Saturday 11 January 2027 11 January 2027 Passed
Bills it pays1,131.80 + 3,565.90 due 31 January 2027 £4,697.70 £4,697.70 Passed
Left as credit4 x 1,175 - 4,697.70 £2.30 £2.30 Passed
Confirmation Budget Payment Plan set up Budget Payment Plan set up Passed

J21: Kai gets an amount straight away from the bills on his account

  • Passed
Test customer
Kai Brown (persona B12)
Use cases
UC12
Services used
Dummy Budget Payment Plan service, Dummy GOV.UK One Login, Payment plan API for organisations
Steps
  1. Kai signs in to the dummy Budget Payment Plan service
  2. It sends his account, in HMRC's format, to POST /api/v1/saas/payment-plan with its API key
  3. He sees the amount without answering any questions
Checks
What Expected Seen Result
Credit on his account £500.00 £500.00 Passed
Amount(4,697.70 - 500) / 4 = 1,049.43, rounded up £1,050 a month £1,050 a month Passed
Bills it pays4,697.70 less the 500 credit £4,197.70 £4,197.70 Passed

J22: Cara owes overdue tax, so she cannot set up a plan

  • Passed
Test customer
Cara Jones (persona B04)
Use cases
UC12, UC15
Services used
Dummy Budget Payment Plan service, Payment plan API for organisations, Journeys API for organisations
Steps
  1. Cara signs in; her account shows £250 overdue
  2. Getting an amount straight away tells her she cannot set up a plan
  3. Answering questions here tells her the same, with a link back to HMRC's service
Checks
What Expected Seen Result
Overdue on her accounther July payment on account was £250 short £250.00 £250.00 Passed
Straight away You cannot set up a Budget Payment Plan yet You cannot set up a Budget Payment Plan yet Passed
With questions You cannot set up a Budget Payment Plan yet You cannot set up a Budget Payment Plan yet Passed
Link back to HMRC's service http://testserver/dummy/budget-payment-plan/your-account http://testserver/dummy/budget-payment-plan/your-account Passed

J23: Ben has not sent his return, so he answers questions about last year

  • Passed
Test customer
Ben Carter (persona B03)
Use cases
UC13
Services used
Dummy Budget Payment Plan service, Journeys API for organisations
Steps
  1. Ben signs in; his account has no bills yet because his return is not processed
  2. He answers questions here
  3. He says he has not sent his return, and gives last year's profit and payments on account
Checks
What Expected Seen Result
Asked about his return Yes Yes Passed
Amount shown herelast year's tax 7,131.80 - 6,000 paid = 1,131.80, plus a first payment on account of 3,565.90: 4,697.70 / 4 You could pay £1,175 a month You could pay £1,175 a month Passed
Bills it pays £4,697.70 £4,697.70 Passed

J24: Asha goes back to HMRC's service before finishing

  • Passed
Test customer
Asha Patel (persona B01)
Use cases
UC14
Services used
Dummy Budget Payment Plan service, Journeys API for organisations
Steps
  1. Asha is sent here to answer questions
  2. On the first question she uses the back link
  3. She is back in HMRC's service, still signed in
Checks
What Expected Seen Result
Back link goes to http://testserver/dummy/budget-payment-plan/your-account http://testserver/dummy/budget-payment-plan/your-account Passed
Page she reaches Your Self Assessment account Your Self Assessment account Passed

J25: Journeys and results are kept safe

  • Passed
Test customer
None
Use cases
UC16
Services used
Journeys API for organisations
Steps
  1. Starting a journey with no API key or a wrong key is refused
  2. A return address on another site is refused
  3. A journey link opened in a second browser is refused
  4. Another organisation cannot collect the result
Checks
What Expected Seen Result
No API key 401 401 Passed
Wrong API key 401 401 Passed
Return address on another site 422 INVALID_RETURN_URL 422 INVALID_RETURN_URL Passed
Link in a second browser 409 409 Passed
Result collected by another organisation 404 404 Passed
Result collected by the organisation that started it 200 200 Passed

J26: A customer works out a plan amount on her own

  • Passed
Test customer
Asha Patel (persona B01)
Use cases
UC04
Services used
Payment plan pages
Steps
  1. Asha goes straight to this service's payment plan pages
  2. She says she owes nothing overdue and gives the figures from her tax calculation
  3. She chooses her next bill, monthly, on the 9th
Checks
What Expected Seen Result
Amountas J20 You could pay £1,175 a month You could pay £1,175 a month Passed
Button to continue to HMRC's service Not shown Not shown Passed

J27: Signing out of HMRC's service signs Asha out of GOV.UK One Login too

  • Passed
Test customer
Asha Patel
Use cases
UC17
Services used
Dummy Budget Payment Plan service, Dummy GOV.UK One Login: logout
Steps
  1. Asha signs in to the dummy Budget Payment Plan service
  2. She signs out
  3. One Login signs her out and sends her back
Checks
What Expected Seen Result
Sent to the dummy GOV.UK One Login's logout the dummy GOV.UK One Login's logout Passed
Page she reaches You have signed out You have signed out Passed
Her account page afterwards Set up a Budget Payment Plan Set up a Budget Payment Plan Passed

Customer accounts and organisations

J30: Una signs in with GOV.UK One Login and uploads her bank transactions

  • Passed
Test customer
Una Novak (persona B21)
Use cases
UC05, UC06, UC08
Services used
Dummy GOV.UK One Login, Customer accounts
Steps
  1. Una starts from the account page and signs in with the dummy GOV.UK One Login; an account is made for her
  2. She gives her details: self-employed, has not sent last year's return, profit £20,000 last year
  3. She uploads a bank statement; 3 transactions are used and 2 are listed for her to check
  4. She saves the figures and sees her forecast
Checks
What Expected Seen Result
First page after signing in What income do you get? What income do you get? Passed
Self-employment profit foundStripe 3,000 + Upwork 2,000 - AWS 100; Tesco is personal £4,900.00 £4,900.00 Passed
Transactions to checka transfer from Mum and fuel could be personal 2 2 Passed
Next billlast year's tax 1,931.80 owed + first payment on account 965.90 £2,897.70 by 31 January 2027 £2,897.70 by 31 January 2027 Passed
Forecast tax for the yearprofit to 2 August (119 of 365 days) 4,900 + 246/365 x 20,000 = 18,379.45: 5,809.45 x 20% = 1,161.89 + Class 4 x 6% = 348.57 £1,510.46 £1,510.46 Passed

J31: Gita gets her pay so far and her bills from HMRC into her account

  • Passed
Test customer
Gita Rao (bills as persona B01)
Use cases
UC05, UC06, UC07
Services used
Dummy GOV.UK One Login, Dummy HMRC: Individuals Employments Income API and Self Assessment Accounts API
Steps
  1. Gita signs in with the dummy GOV.UK One Login and gives her details
  2. She chooses 'get your figures from HMRC' and gives her National Insurance number
  3. She gives permission at the dummy HMRC
  4. She checks her pay so far and the bills on her account, then saves them
Checks
What Expected Seen Result
Pay so far from HMRC £15,000.00 £15,000.00 Passed
Tax taken off pay so far £1,486.00 £1,486.00 Passed
Credit on her HMRC account £200.00 £200.00 Passed
Figures go up toher employer's last payment 30 September 2026 30 September 2026 Passed
Next bill1,131.80 + 3,565.90 from her HMRC account, less 200 credit £4,497.70 by 31 January 2027 £4,497.70 by 31 January 2027 Passed
Bills and credit From your HMRC account From your HMRC account Passed

J32: Olu creates an account with a password and confirms his email address

  • Passed
Test customer
Olu Adeyemi (details as persona B01)
Use cases
UC05, UC09
Services used
Customer accounts, Dummy GOV.UK Notify
Steps
  1. Olu creates an account with his email address and a password
  2. He is told to check his email; he cannot sign in yet
  3. The confirmation email arrives in the dummy Notify inbox and he follows the link
  4. He signs in and gives his details
Checks
What Expected Seen Result
After creating the account Check your email Check your email Passed
Signing in before confirming Confirm your email address before you sign in. We have sent you a link Confirm your email address before you sign in. We have sent you a link Passed
Email received Confirm your email address Confirm your email address Passed
After following the link Your email address is confirmed. Sign in to continue. Your email address is confirmed. Sign in to continue. Passed
Next bill1,131.80 + 3,565.90 £4,697.70 by 31 January 2027 £4,697.70 by 31 January 2027 Passed
To pay his bills4,697.70 / 4 = 1,174.43, rounded up £1,175 a month from 9 October 2026 £1,175 a month from 9 October 2026 Passed

J33: Olu resets a forgotten password

  • Passed
Test customer
Olu Adeyemi
Use cases
UC09
Services used
Customer accounts, Dummy GOV.UK Notify
Steps
  1. Olu is signed in on one browser
  2. On another, he says he has forgotten his password
  3. He follows the link in the email and chooses a new password
  4. He signs in with the new password; the old one no longer works and his other browser is signed out
Checks
What Expected Seen Result
Email received Reset your password Reset your password Passed
After choosing a new password Your password has been changed. Sign in with your new password. Your password has been changed. Sign in with your new password. Passed
Signing in with the new password Your tax for 2026 to 2027 Your tax for 2026 to 2027 Passed
Signing in with the old password Enter a correct email address and password Enter a correct email address and password Passed
His other browser Sign in Sign in Passed

J34: Someone tries to make a second account with Olu's email address

  • Passed
Test customer
Olu Adeyemi
Use cases
UC09
Services used
Customer accounts, Dummy GOV.UK Notify
Steps
  1. Someone else tries to create an account with Olu's email address
  2. They see the same page as anyone creating an account
  3. Olu is emailed to say he already has an account
Checks
What Expected Seen Result
Page shown Check your email Check your email Passed
Email Olu receives You already have an account You already have an account Passed

J35: Olu is emailed when his forecast changes

  • Passed
Test customer
Olu Adeyemi
Use cases
UC10
Services used
Scheduled jobs, Dummy GOV.UK Notify
Steps
  1. Olu set up his account on 2 October 2026 (£1,175 a month)
  2. The daily job runs on 1 February 2027, after the January deadline
  3. His amount changes, so he is emailed
Checks
What Expected Seen Result
Email received Your Self Assessment forecast has changed Your Self Assessment forecast has changed Passed
Amount before instead of £1,175 instead of £1,175 Passed
New amount in the email and on his account The same The same Passed

J36: Una signs out of her account and GOV.UK One Login, then back in

  • Passed
Test customer
Una Novak
Use cases
UC06
Services used
Customer accounts, Dummy GOV.UK One Login: logout
Steps
  1. Una signs in with the dummy GOV.UK One Login
  2. Her account has no password, so there is no 'change your password' link
  3. She signs out; One Login signs her out and sends her back
  4. She signs in again and reaches the same account
Checks
What Expected Seen Result
'Change your password' link Not shown Not shown Passed
After signing out You have signed out You have signed out Passed
Signing in again Your tax for 2026 to 2027 Your tax for 2026 to 2027 Passed

J37: Una downloads her information and deletes her account

  • Passed
Test customer
Una Novak
Use cases
UC11
Services used
Customer accounts
Steps
  1. Una downloads everything held about her
  2. She deletes her account
  3. Signing in again starts a new, empty account
Checks
What Expected Seen Result
Download her email address and 1 record her email address and 1 record Passed
After deleting Your account has been deleted Your account has been deleted Passed
Signing in again What income do you get? What income do you get? Passed

J38: An accountant keeps a client's forecast up to date through the API

  • Passed
Test customer
Northfield Accountants, client like Gita (persona B08)
Use cases
UC18, UC26
Services used
Admin API, Organisations' API
Steps
  1. An administrator adds the organisation and gives it an API key
  2. The organisation adds a client with last year's figures
  3. On 15 February 2027 it sends the client's figures up to 31 January
  4. It reads the forecast, the history and its usage
Checks
What Expected Seen Result
Forecast tax for the year301 of 365 days: profit 45,000 - 8,000 plus 64/365 of last year's 40,000 = 44,013.70; income tax 6,288.74 + Class 4 1,886.62 £8,175.36 £8,175.36 Passed
Amount each monththe larger of 3,565.90 / 6 and 8,697.14 / 12 = 724.76, rounded up £725 £725 Passed
Number of payments 12 12 Passed
First payment 2027-02-22 2027-02-22 Passed
Bills it pays3,565.90 in July + 1,043.56 and 4,087.68 in January 2028 £8,697.14 £8,697.14 Passed
Forecasts in the history update, profile update, profile Passed

J39: Organisations are kept apart and within their limits

  • Passed
Test customer
Two organisations
Use cases
UC19, UC20, UC26
Services used
Organisations' API, Admin pages
Steps
  1. Firm B tries to read Firm A's client
  2. A firm with a quota of 3 requests a month makes a 4th
  3. A firm allowed 2 requests a minute makes a 3rd
  4. An administrator suspends a firm, then revokes another's key
Checks
What Expected Seen Result
Firm B reading Firm A's client 404 404 Passed
Firm B's client list empty empty Passed
4th request this month 429 429 Passed
3rd request this minute 429 429 Passed
Suspended firm 403 403 Passed
Revoked key 401 401 Passed

Administration and running the service

J40: An administrator switches payment plan amounts off and on

  • Passed
Test customer
None
Use cases
UC24
Services used
Admin API, Payment plan pages and API, Calculator API
Steps
  1. An administrator switches the payment plan feature off
  2. Its pages and API are gone; the calculator gives the same answer
  3. The dummy Budget Payment Plan service cannot get an amount
  4. The administrator switches it back on
Checks
What Expected Seen Result
Payment plan pages while off 404 404 Passed
Payment plan API while off 404 404 Passed
Calculator while offas J06 £7,131.80 £7,131.80 Passed
Dummy Budget Payment Plan service while off Sorry, there is a problem with the service Sorry, there is a problem with the service Passed
Pages after switching back on 200 200 Passed

J41: The dummy services refuse what the real ones would

  • Passed
Test customer
None
Use cases
UC28
Services used
Dummy GOV.UK One Login, Dummy HMRC, Dummy GOV.UK Notify, Dummy DVLA
Steps
  1. Each dummy service is sent a request with a wrong key, token or address
Checks
What Expected Seen Result
One Login: client assertion signed with another keyOne Login's token endpoint answers 400 400 invalid_client 400 invalid_client Passed
One Login: unregistered return address 400 400 Passed
HMRC: wrong client secret 401 invalid_client 401 invalid_client Passed
HMRC: no token 401 INVALID_CREDENTIALS 401 INVALID_CREDENTIALS Passed
HMRC: wrong API version 406 ACCEPT_HEADER_INVALID 406 ACCEPT_HEADER_INVALID Passed
Notify: token signed with another key 403 AuthError 403 AuthError Passed
DVLA: wrong API key 403 403 Passed

J42: The calculator runs on its own, without the optional features

  • Passed
Test customer
Asha Patel (persona P15)
Use cases
UC27
Services used
Calculator API
Steps
  1. The service is started with no optional features
  2. The calculator gives the same answer; the feature pages do not exist
Checks
What Expected Seen Result
Total tax for the yearas J06 £7,131.80 £7,131.80 Passed
Budget Payment Plan, account, overview and dummy pages 404, 404, 404, 404 404, 404, 404, 404 Passed

J57: The service administrator makes the public calculator basic Income Tax only

  • Passed
Test customer
None
Use cases
UC36
Services used
Admin pages, Calculator API
Steps
  1. The administrator chooses 'Basic Income Tax' for the service's own pages and API
  2. A customer is only asked about pay and pensions
  3. The public API refuses a dividend
  4. The administrator puts it back to the full calculator
Checks
What Expected Seen Result
Income a customer is asked about employment, pensions, none employment, pensions, none Passed
A dividend sent to the public API Refused: MODULE_NOT_ENABLED Refused: MODULE_NOT_ENABLED Passed
Set of questions afterwards full full Passed

J80: The service administrator switches Scottish Income Tax on and off in Basic Income Tax

  • Passed
Test customer
Morag (persona P122)
Use cases
UC57
Services used
Admin pages, Calculator API
Steps
  1. The administrator chooses 'Basic Income Tax' with 'Include Scottish Income Tax'
  2. Morag, a Scottish taxpayer on £30,000, is asked whether she pays Scottish Income Tax and gets the Scottish rates
  3. The administrator switches Scottish Income Tax off
  4. The question is no longer asked, and does not open by its address
  5. The public API refuses an answer that says a customer pays Scottish Income Tax
  6. The administrator puts the full calculator back
Checks
What Expected Seen Result
Question after the tax year, Scotland on Did you pay Scottish Income Tax? Did you pay Scottish Income Tax? Passed
Morag's total tax for the year2,827 x 19% + 12,094 x 20% + 2,509 x 21% (persona P122) £3,482.82 £3,482.82 Passed
Question after the tax year, Scotland off What income did you have? What income did you have? Passed
Opening the Scottish question by its address, Scotland off Not shown Not shown Passed
'jurisdiction: scotland' sent to the public API, Scotland off Refused: MODULE_NOT_ENABLED Refused: MODULE_NOT_ENABLED Passed
Set of questions afterwards full, with Scottish Income Tax full, with Scottish Income Tax Passed

J64: The daily work runs inside the service, and the administrator can see and start it

  • Passed
Test customer
None
Use cases
UC42
Services used
Admin pages, Background work
Steps
  1. The administrator opens the admin page and sees the background work
  2. They start the daily work
  3. It finishes, and the health check shows when it ran
Checks
What Expected Seen Result
Work listed on the admin page Answers in sessions unused for 15 minutes deleted; Forecasts worked out again, emails sent and unused accounts deleted; Notifications to organisations' apps tried again; Making Tax Digital deadline reminders emailed Answers in sessions unused for 15 minutes deleted; Forecasts worked out again, emails sent and unused accounts deleted; Notifications to organisations' apps tried again; Making Tax Digital deadline reminders emailed Passed
Daily work after starting it ok ok Passed

Ways to use the calculator: each organisation's settings

J50: A customer of Example Accountants uses its full question pages, and their pay is read from HMRC

  • Passed
Test customer
Sam Okafor (persona P26)
Use cases
UC29
Services used
Organisation's own address, Dummy HMRC
Steps
  1. Sam opens Example Accountants' address for the calculator
  2. He says yes to HMRC records and gives permission at the dummy HMRC
  3. Example Accountants does not ask customers to confirm pay from HMRC, so the pay question is skipped
  4. He adds his rent and sees the bill with all the working
Checks
What Expected Seen Result
Page says who it is provided for Provided for Example Accountants Provided for Example Accountants Passed
Pay question asked No No Passed
Total tax for the yearas J01 £10,032.00 £10,032.00 Passed
Balance for the year10,032 - 6,486 taken off his pay £3,546.00 £3,546.00 Passed
Working shown Yes Yes Passed

J51: A customer of Example Accountants answers every question themselves

  • Passed
Test customer
Sam Okafor (persona P26)
Use cases
UC30
Services used
Organisation's own address
Steps
  1. Sam opens Example Accountants' address
  2. He says no to HMRC records
  3. He answers every question, then sees his bill
Checks
What Expected Seen Result
HMRC records offered Yes Yes Passed
Total tax for the yearas J01 £10,032.00 £10,032.00 Passed
Each payment on accountas J01 £1,773.00 £1,773.00 Passed

J52: Example Payroll App puts the calculator inside its app, with the pay it already knows

  • Passed
Test customer
Sam Okafor (pay as persona P26)
Use cases
UC31, UC32
Services used
Dummy partner app, Journeys API for organisations
Steps
  1. In the dummy payroll app, Sam chooses to work out his tax with his payroll figures
  2. The app starts a journey with his pay and tax, and sends him to the calculator
  3. Example Payroll App only uses basic Income Tax, and the app sent everything that asks, so he goes straight to check his answers
  4. He sees his estimate without the working, and continues back to the app
  5. The app collects the result and shows it
Checks
What Expected Seen Result
First page Sam sees Check your answers Check your answers Passed
Working shown No No Passed
Button on the estimate Continue to Example Payroll App Continue to Example Payroll App Passed
Total tax for the year, in the app(45,000 - 12,570) x 20% £6,486.00 £6,486.00 Passed
Balance to pay, in the app6,486 already taken off his pay £0.00 £0.00 Passed

J53: Inside Example Payroll App, an employee's pay is read from HMRC

  • Passed
Test customer
Nina Shah (pay as persona P51)
Use cases
UC32, UC33
Services used
Dummy partner app, Dummy HMRC
Steps
  1. Nina chooses to work out her tax from the start, so the app sends nothing
  2. Inside the app, the calculator offers to read her answers from HMRC records
  3. She gives permission at the dummy HMRC and checks the pay filled in
  4. She says she does not pay Scottish Income Tax, which Basic Income Tax asks
  5. She continues back to the app with her estimate
Checks
What Expected Seen Result
HMRC records offered inside the app Yes Yes Passed
Pay filled in from HMRCHarbour Analytics plc, 2025 to 2026 £65,000.00 £65,000.00 Passed
Total tax for the year, in the app7,540 + (65,000 - 50,270) x 40%; basic Income Tax only, so no Child Benefit charge £13,432.00 £13,432.00 Passed
Balance to pay, in the app13,432 already taken off her pay £0.00 £0.00 Passed

J54: Example Payroll App works out basic Income Tax through the API from pay alone

  • Passed
Test customer
None
Use cases
UC31, UC34
Services used
Dummy partner app, Module calculation API
Steps
  1. In the dummy payroll app, someone enters a yearly pay of £30,000
  2. The app sends only the tax year and the pay to the employment module
  3. It shows the Income Tax itself
Checks
What Expected Seen Result
Fields the app sent tax_year, salary_gross tax_year, salary_gross Passed
Income Tax shown in the app(30,000 - 12,570) x 20% £3,486.00 £3,486.00 Passed

J55: Example Tax API uses only the API; pages, embedding and modules it does not use are closed

  • Passed
Test customer
Nina Shah (persona P51)
Use cases
UC34
Services used
Calculation API for organisations
Steps
  1. Example Tax API calculates Nina's tax with its API key
  2. It tries to send a capital gain, which its settings do not include
  3. Its web address and journeys are switched off
Checks
What Expected Seen Result
Total tax for the year13,432 Income Tax + 562.90 Child Benefit charge + 3,504.15 Plan 1 + 2,640 Postgraduate (persona P51) £20,139.05 £20,139.05 Passed
Balance for the yearas persona P51 £6,707.05 £6,707.05 Passed
A capital gain Refused: MODULE_NOT_ENABLED Refused: MODULE_NOT_ENABLED Passed
Its web address 404 404 Passed
Starting a journey 403 403 Passed

J56: Rita, an administrator of Example Accountants, changes it to the Landlords set of questions

  • Passed
Test customer
Rita Mensah
Use cases
UC35
Services used
Organisation administration, Dummy GOV.UK One Login
Steps
  1. Rita signs in with the dummy GOV.UK One Login and goes to the organisations she manages
  2. She chooses 'Landlords' for Example Accountants and saves
  3. A customer of Example Accountants is now only asked about landlords' income
Checks
What Expected Seen Result
Page after signing in Organisations you manage Organisations you manage Passed
Message Your changes have been saved. Your changes have been saved. Passed
Income a customer is asked about employment, uk_property, pensions, interest, dividends, none employment, uk_property, pensions, interest, dividends, none Passed

J58: Organisations are kept apart: settings, results and administration

  • Passed
Test customer
Two organisations and Una Novak
Use cases
UC37
Services used
Journeys API for organisations, Organisation administration
Steps
  1. Example Payroll App gets a result back from a journey
  2. Example Tax API asks for that result with its own key
  3. Una, who does not administer Example Accountants, tries its settings page
Checks
What Expected Seen Result
Another organisation asking for the result 404 404 Passed
Organisation named by each key's settings Example Payroll App, Example Tax API Example Payroll App, Example Tax API Passed
Una opening Example Accountants' settings 404 404 Passed

J59: Rita has Example Accountants' customers check the pay read from HMRC

  • Passed
Test customer
Rita Mensah and Sam Okafor (persona P26)
Use cases
UC38
Services used
Organisation administration, Dummy HMRC
Steps
  1. Rita signs in and, for 'Pay from employment', chooses 'Yes, and the customer checks them'
  2. Sam says yes to HMRC records at Example Accountants' address
  3. The pay question is shown with his pay from HMRC filled in, and he checks it
  4. He adds his rent and sees his bill
Checks
What Expected Seen Result
Message Your changes have been saved. Your changes have been saved. Passed
Pay question asked Yes Yes Passed
Pay filled in from HMRChis PAYE record at the dummy HMRC £45,000.00 £45,000.00 Passed
Total tax for the yearas J01 £10,032.00 £10,032.00 Passed

J60: Rita has Example Accountants' customers enter their own pay, while other answers are still read

  • Passed
Test customer
Rita Mensah and Sam Okafor (persona P26)
Use cases
UC38
Services used
Organisation administration, Dummy HMRC
Steps
  1. Rita chooses 'No, the customer enters them' for 'Pay from employment'
  2. Sam still gets the offer of HMRC records, for the other parts
  3. He says yes, and the pay question is asked with nothing filled in
  4. He types his pay and tax, and sees his bill
Checks
What Expected Seen Result
HMRC records offered Yes Yes Passed
Pay box when the question is asked Empty Empty Passed
Total tax for the yearas J01 £10,032.00 £10,032.00 Passed

J61: Rita has Example Payroll App's customers check the pay the app sends

  • Passed
Test customer
Rita Mensah and Sam Okafor (pay as persona P26)
Use cases
UC39
Services used
Organisation administration, Dummy partner app
Steps
  1. Rita chooses 'Yes, show the questions with the answers filled in' for answers the app sends
  2. In the dummy payroll app, Sam works out his tax with his payroll figures
  3. Instead of going straight to check his answers, he is shown the questions with the app's answers filled in, starting with whether he pays Scottish Income Tax (from his tax code)
  4. He continues back to the app with his estimate
Checks
What Expected Seen Result
Message Your changes have been saved. Your changes have been saved. Passed
First page Sam seesBasic Income Tax includes it; the app sent 'No' from his tax code Did you pay Scottish Income Tax? Did you pay Scottish Income Tax? Passed
Pay filled in from the app £45,000.00 £45,000.00 Passed
Total tax for the year, in the appas J52 £6,486.00 £6,486.00 Passed
Balance to pay, in the appas J52 £0.00 £0.00 Passed

J62: Example Payroll App is told straight away when Sam finishes

  • Passed
Test customer
Sam Okafor (pay as persona P26) and Rita Mensah
Use cases
UC40
Services used
Dummy partner app, Notifications to organisations' apps
Steps
  1. Sam works out his tax inside the dummy payroll app and continues back to it
  2. The calculator sends the app a signed notification that he finished, with no figures in it
  3. The app checks the signature and says so on its result page
  4. Rita sees the notification was delivered
Checks
What Expected Seen Result
Notification the app received tax_estimate.completed, signature checked tax_estimate.completed, signature checked Passed
App's result page The calculator also told this app you had finished The calculator also told this app you had finished Passed
Total tax for the year, in the appas J52 £6,486.00 £6,486.00 Passed
Rita's list of notifications Delivered Delivered Passed

J63: Sam fills in his pay and rent at Example Accountants by uploading his P60 and his letting agent's statement

  • Passed
Test customer
Sam Okafor (persona P26)
Use cases
UC41
Services used
Organisation's own address, Document reading, Sample documents
Steps
  1. Sam says no to HMRC records
  2. On the pay question he uploads his P60, and checks the pay and tax filled in
  3. On the rent question he uploads his letting agent's statement, which also fills in his costs
  4. He sees his bill
Checks
What Expected Seen Result
Pay filled in from the P60 £45,000.00 £45,000.00 Passed
Where the pay page says it came from From your P60 From your P60 Passed
Mortgage interest filled in from the statement £7,000.00 £7,000.00 Passed
Total tax for the yearas J01 £10,032.00 £10,032.00 Passed

J65: Gita works out her tax so far at Example Accountants, with her pay so far read from HMRC

  • Passed
Test customer
Gita Rao (persona B01 bills)
Use cases
UC43
Services used
Organisation's own address, Tax so far this year, Dummy HMRC
Steps
  1. Gita starts 'Work out your tax so far' at Example Accountants' address
  2. Her figures go up to today, 2 October 2026: 180 of 365 days
  3. She says yes to HMRC records; her pay and tax so far come from HMRC, so the pay question is skipped
  4. She sees her tax so far, what she has paid and a forecast for the whole year
Checks
What Expected Seen Result
Pay question asked No No Passed
Tax so far (estimate)3,569.33 x 15,000 / 30,416.67 £1,760.22 £1,760.22 Passed
Tax already paid so fartaken off her pay £1,486.00 £1,486.00 Passed
Built up and not paid yet1,760.22 - 1,486.00 £274.22 £274.22 Passed
Forecast tax for the yearpay for the year 15,000 x 365 / 180 = 30,416.67; (30,416.67 - 12,570) x 20% £3,569.33 £3,569.33 Passed

J66: Inside Example Payroll App, Gita works out her tax so far from her payroll figures

  • Passed
Test customer
Gita Rao (persona B01 bills)
Use cases
UC44
Services used
Dummy partner app, Journeys API for organisations, Tax so far this year
Steps
  1. In the dummy payroll app, Gita chooses to work out her tax so far
  2. The app starts a 'tax_so_far' journey with her pay and tax so far
  3. Everything is already answered, so she checks her answers and continues
  4. The app collects the result and shows it
Checks
What Expected Seen Result
First page Gita sees Check your answers Check your answers Passed
Tax so far (estimate)3,569.33 x 15,000 / 30,416.67 £1,760.22 £1,760.22 Passed
Tax already paid so fartaken off her pay £1,486.00 £1,486.00 Passed
Built up and not paid yet1,760.22 - 1,486.00 £274.22 £274.22 Passed
Forecast tax for the yearpay for the year 15,000 x 365 / 180 = 30,416.67; (30,416.67 - 12,570) x 20% £3,569.33 £3,569.33 Passed

J67: Organisations get the tax so far through the API, where their settings allow it

  • Passed
Test customer
Gita Rao (persona B01 bills)
Use cases
UC45, UC46
Services used
Tax so far API for organisations
Steps
  1. Example Tax API sends Gita's pay and tax so far to POST /api/v1/saas/tax-so-far
  2. It gets the tax so far and the forecast back
  3. Example Budget Payment Plan Service, which has not switched tax so far on, is refused
Checks
What Expected Seen Result
Tax so far (estimate)as J65 £1,760.22 £1,760.22 Passed
Built up and not paid yetas J65 £274.22 £274.22 Passed
An organisation that has not switched it on 403 403 Passed

J95: Example Payroll App has the journey planner set up Sam's estimate from what it knows

  • Passed
Test customer
Sam Okafor (pay as persona P26, with a pension)
Use cases
UC72
Services used
Journey planner API, Journeys API for organisations, Dummy partner app
Steps
  1. The app sends the planner the tax year, that Sam is not a Scottish taxpayer, that his only income is his job and a pension, and his pay and tax
  2. The plan keeps only the parts it needs, says why, and starts the journey
  3. Sam answers only the pension question the app could not, then goes back to the app with his estimate
Checks
What Expected Seen Result
Why other income is not asked about The app said the customer only has pay from employment and pensions, so other kinds of income are not asked about The app said the customer only has pay from employment and pensions, so other kinds of income are not asked about Passed
First page Sam sees Pensions you received Pensions you received Passed
Total tax for the year, in the app(45,000 + 5,000 - 12,570) x 20% £7,486.00 £7,486.00 Passed
Balance to pay, in the app6,486 taken off his pay and 1,000 off his pension £0.00 £0.00 Passed

J96: Example Payroll App asks Sam the planner's questions on its own screens

  • Passed
Test customer
Sam Okafor (pay as persona P26)
Use cases
UC73
Services used
Journey planner API
Steps
  1. The app knows Sam's pay and that he is not a Scottish taxpayer, but not whether that is all his income
  2. It asks the planner for the next page, shows it on its own screen and sends the answers back, until nothing is left
  3. It gets the whole calculation back
Checks
What Expected Seen Result
Pages the app showedthe tax year and Scotland were sent; pay was sent, the tax on it was not income-types, employment-pay income-types, employment-pay Passed
Questions on the pay page salary_gross, paye_tax_paid, tips_and_other_payments salary_gross, paye_tax_paid, tips_and_other_payments Passed
Total tax for the year(45,000 - 12,570) x 20% £6,486.00 £6,486.00 Passed
Balance for the year £0.00 £0.00 Passed

More tax tools

J82: Hari, a partner in a partnership, checks if he needs to send a tax return

  • Passed
Test customer
Hari (tests/test_filing_check.py)
Use cases
UC59
Services used
Organisation's own address, Check if you need to send a tax return
Steps
  1. Hari starts at /o/example-accountants/check-if-you-need-a-tax-return
  2. He was a partner in a business partnership and has sent a return before
Checks
What Expected Seen Result
Why he needs toGOV.UK: you must send a return if you were a partner You were a partner in a business partnership. You were a partner in a business partnership. Passed

J83: Abe checks the tax taken from his two jobs and finds he paid too much

  • Passed
Test customer
Abe (tests/test_paye_check.py)
Use cases
UC60
Services used
Organisation's own address, Check your PAYE tax
Steps
  1. Abe chooses 2025 to 2026
  2. His P60s show £40,000 of pay and £6,000 of tax: one job used an emergency tax code
Checks
What Expected Seen Result
What he is told(40,000 - 12,570) x 20% = 5,486 due; 6,000 - 5,486 You paid £514.00 too much You paid £514.00 too much Passed

J84: A landlord works out the Capital Gains Tax to report within 60 days on a flat she let

  • Passed
Test customer
Ines (tests/test_property_cgt.py)
Use cases
UC61
Services used
Organisation's own address, Capital Gains Tax on a UK home within 60 days
Steps
  1. The sale completed on 1 September 2026: sold for £300,000 (£5,000 of costs), bought for £200,000 (£7,000 of costs)
  2. It was never her home; her income for the year is £40,000
Checks
What Expected Seen Result
Tax to report and pay88,000 gain - 3,000 = 85,000: 10,270 x 18% + 74,730 x 24% £19,783.80 £19,783.80 Passed
Report and pay by60 days after 1 September 2026 31 October 2026 31 October 2026 Passed

J85: A director compares taking £60,000 of profit as salary, dividends or a mix

  • Passed
Test customer
A company director (tests/test_director_pay.py)
Use cases
UC62
Services used
Organisation's own address, Directors' salary or dividends
Steps
  1. 2026 to 2027: £60,000 of profit before paying her, no Employment Allowance, no other income
Checks
What Expected Seen Result
The most she keepssalary £12,570, then 46,294.50 x 19% Corporation Tax, dividends 37,498.55 taxed 3,977.34 £46,091.21 £46,091.21 Passed

J86: A family buys a £295,000 house in England: Stamp Duty Land Tax

  • Passed
Test customer
GOV.UK's example (tests/test_property_tax.py)
Use cases
UC63
Services used
Organisation's own address, Tax on buying land or property
Steps
  1. They choose Stamp Duty Land Tax
  2. Completion on 20 November 2026, a home, £295,000, not first-time buyers, no other home, UK resident
Checks
What Expected Seen Result
Stamp Duty Land TaxGOV.UK: 125,000 x 2% + 45,000 x 5% £4,750.00 £4,750.00 Passed

J87: A company with £100,000 of profit works out its Corporation Tax

  • Passed
Test customer
tests/test_corporation_tax.py
Use cases
UC64
Services used
Organisation's own address, Corporation Tax
Steps
  1. The accounting period is 1 April 2025 to 31 March 2026
  2. £100,000 of taxable profits, no associated companies
Checks
What Expected Seen Result
Corporation Tax25,000 less Marginal Relief of 3/200 x 150,000 £22,750.00 £22,750.00 Passed

J88: A business works out the figures for its VAT return

  • Passed
Test customer
tests/test_vat.py
Use cases
UC65
Services used
Organisation's own address, VAT
Steps
  1. £30,000 of sales at the standard rate
  2. £10,000 of purchases with £2,000 of VAT to reclaim
Checks
What Expected Seen Result
What it owes30,000 x 20% - 2,000 You owe HMRC £4,000.00 You owe HMRC £4,000.00 Passed

J89: An employer works out an employee's pay for April 2026

  • Passed
Test customer
tests/test_payroll.py
Use cases
UC66
Services used
Organisation's own address, Payroll for employers
Steps
  1. Monthly pay, period 1 of 2026 to 2027, tax code 1257L, £2,500 gross, no student loan or pension
Checks
What Expected Seen Result
Take-home pay2,500 - 290.20 tax - 116.16 National Insurance £2,093.64 £2,093.64 Passed

J90: An executor works out the Inheritance Tax on a £600,000 estate

  • Passed
Test customer
tests/test_inheritance_tax.py
Use cases
UC67
Services used
Organisation's own address, Inheritance Tax
Steps
  1. The person died on 10 May 2026, leaving £600,000 after debts
  2. Their £300,000 home goes to their children; no spouse died before them
Checks
What Expected Seen Result
Inheritance Tax(600,000 - 175,000 - 325,000) x 40% £40,000.00 £40,000.00 Passed

J91: Two partners share £120,000 of profit, one with a £20,000 salary

  • Passed
Test customer
tests/test_partnership_return.py
Use cases
UC68
Services used
Organisation's own address, Partnership profits (SA800)
Steps
  1. 2025 to 2026: £120,000 of taxable profit, no company partner
  2. Alex has a £20,000 salary; the rest is shared equally with Sam
Checks
What Expected Seen Result
Alex's share20,000 + 100,000 x 50% £70,000.00 £70,000.00 Passed
Alex's tax and Class 4 NI if it were his only income7,540 + 19,730 x 40% + 2,262 + 19,730 x 2% £18,088.60 £18,088.60 Passed

J92: Trustees work out a discretionary trust's Income Tax

  • Passed
Test customer
tests/test_trust_return.py
Use cases
UC69
Services used
Organisation's own address, Trust Income Tax (SA900)
Steps
  1. 2026 to 2027: £10,000 of rents, £2,000 of interest, £3,000 of dividends and £1,000 of management expenses; no other trusts
Checks
What Expected Seen Result
The trust's Income Taxexpenses from dividends: 1,120.45 x 10.75%, 1,879.55 x 39.35%, then 12,000 x 45% £6,260.05 £6,260.05 Passed

J93: A parent with two children and £70,000 of income works out their Child Benefit

  • Passed
Test customer
tests/test_benefits.py
Use cases
UC70
Services used
Organisation's own address, Benefits
Steps
  1. Child Benefit for 2 children
  2. The higher earner's adjusted net income is £70,000
Checks
What Expected Seen Result
What they keep for a year after the charge(27.05 + 17.90) x 52 = 2,337.40; (70,000 - 60,000) / 200 = 50% charge £1,168.70 £1,168.70 Passed

J94: A single parent who works estimates their Universal Credit

  • Passed
Test customer
tests/test_benefits.py
Use cases
UC71
Services used
Organisation's own address, Benefits
Steps
  1. Single, 25 or over, 1 child born after 6 April 2017, £600 rent
  2. £1,200 a month after tax, no savings, outside London
Checks
What Expected Seen Result
Universal Credit a month424.90 + 303.94 + 600 = 1,328.84, less (1,200 - 427) x 55% = 425.15 £903.69 £903.69 Passed

Making Tax Digital for Income Tax helpers

J70: Leah checks her second update in her bookkeeping app before she sends it

  • Passed
Test customer
Leah Park (tests/mtd_personas.py; app/features/demo/mtd_books.py)
Use cases
UC49, UC53
Services used
Dummy bookkeeping app, Journeys API for organisations, Making Tax Digital helpers
Steps
  1. On 2 October 2026 her bookkeeping app has her second update ready (6 April to 5 October; it can be sent from 25 September)
  2. The app starts a journey of kind 'mtd_check' with the update and the one before it
  3. Everything is already answered, so she sees her answers
  4. She sees the checks, then goes back to the app, which collects them
Checks
What Expected Seen Result
First page Leah sees Check your answers Check your answers Passed
What the checks say We did not find anything that stops you sending this update, but check the 2 things below. We did not find anything that stops you sending this update, but check the 2 things below. Passed
The checksshe sent £300 of entertaining and £500 of depreciation as allowable; both are usually not allowed NOT_ALLOWABLE businessEntertainmentCosts; NOT_ALLOWABLE depreciation NOT_ALLOWABLE businessEntertainmentCosts; NOT_ALLOWABLE depreciation Passed
Back in the app Ready to send: 0 to change, 2 to check, 0 tips. Ready to send: 0 to change, 2 to check, 0 tips. Passed

J71: Leah works out her tax so far and what to put aside, inside her bookkeeping app

  • Passed
Test customer
Leah Park (tests/mtd_personas.py; app/features/demo/mtd_books.py)
Use cases
UC48, UC53
Services used
Dummy bookkeeping app, Journeys API for organisations, Making Tax Digital helpers
Steps
  1. The app starts a journey of kind 'mtd_quarterly' with her first update (6 April to 5 July 2026: 91 days)
  2. She is only asked what the app does not know: pay from a job (she has none) and whether she pays Scottish Income Tax
  3. She sees her tax so far and a monthly amount to put aside towards her next bill
Checks
What Expected Seen Result
First page Leah sees Your pay from a job so far this tax year Your pay from a job so far this tax year Passed
Tax so far (estimate)each amount x 365 / 91: turnover 52,142.86 - expenses 9,425.82 = 42,717.04; rents 18,049.45 - 2,005.49 = 16,043.96; taxable 58,761 - 12,570 = 46,191: 7,540 + 8,491 x 40% = 3,396.40, less finance costs 6,016.48 x 20% = 1,203.296: 9,733.104; Class 4 30,147.04 x 6% = 1,808.8224; total 11,541.93 (rounded once); x 17,500 / 70,192.31 £2,877.58 £2,877.58 Passed
Amount to put aside shown Yes Yes Passed

J72: Leah sees HMRC's estimate explained inside her bookkeeping app, including the losses HMRC holds

  • Passed
Test customer
Leah Park (tests/mtd_personas.py; app/features/demo/mtd_books.py)
Use cases
UC50, UC53
Services used
Dummy bookkeeping app, Dummy HMRC: Individual Calculations API, Journeys API for organisations, Making Tax Digital helpers
Steps
  1. The app reads HMRC's latest calculation (after her first update) and starts a journey of kind 'mtd_explain' with it
  2. She sees the calculation step by step and compared with this calculator's from the same income
Checks
What Expected Seen Result
HMRC's Income Tax dueprofit 10,650 - £4,000 losses HMRC holds = 6,650; with rents of 4,000, under her Personal Allowance £0.00 £0.00 Passed
This calculator's Income Tax from the same income10,650 + 4,000 - 12,570 = 2,080 x 20% = 416, less finance costs 1,500 x 20% = 300 (the calculation's totals do not show the losses) £116.00 £116.00 Passed
Not in HMRC's estimate yet Pay from employment, Pensions, Interest from savings, Dividends, Gift Aid donations, Pension contributions, Child Benefit Pay from employment, Pensions, Interest from savings, Dividends, Gift Aid donations, Pension contributions, Child Benefit Passed

J73: Leah gets her tax return ready inside her bookkeeping app, from her fourth update's totals

  • Passed
Test customer
Leah Park (tests/mtd_personas.py; app/features/demo/mtd_books.py)
Use cases
UC51, UC53
Services used
Dummy bookkeeping app, Journeys API for organisations, Making Tax Digital helpers, Question pages
Steps
  1. The app starts a journey of kind 'mtd_year_end' with her fourth update's totals for 2026 to 2027
  2. Her business answers are filled in and not asked again; she answers the rest of the calculator's questions
  3. The estimate lists what a tax return usually also needs
  4. She goes back to the app, which collects the estimate
Checks
What Expected Seen Result
Business questions asked again No No Passed
Total tax for the yearprofit 52,000 - 10,550 = 41,450; rents 18,000 - 2,300 = 15,700; taxable 44,580: 7,540 + 6,880 x 40% = 2,752, less 6,000 x 20% = 1,200: 9,092; Class 4 28,880 x 6% = 1,732.80 £10,824.80 £10,824.80 Passed
On the estimate Before you submit your tax return Before you submit your tax return Passed
Total tax the app collects £10,824.80 £10,824.80 Passed

J74: A customer of Example Accountants finds out when they need to use Making Tax Digital

  • Passed
Test customer
Ollie (persona M03)
Use cases
UC47
Services used
Organisation's own address, Making Tax Digital helpers
Steps
  1. Ollie starts at /o/example-accountants/making-tax-digital
  2. He gives his income: £48,000 for 2024 to 2025 and £33,000 for 2025 to 2026
  3. He has none of the claims that bring an exemption, and can use software
Checks
What Expected Seen Result
What he is told£48,000 is not over £50,000; £33,000 is over £30,000 You need to use Making Tax Digital for Income Tax from 6 April 2027. You need to use Making Tax Digital for Income Tax from 6 April 2027. Passed

J75: Rita sees Example Accountants' clients' Making Tax Digital deadlines and penalty points

  • Passed
Test customer
Rita Mensah
Use cases
UC54
Services used
Organisations' API, Making Tax Digital helpers, Dummy GOV.UK One Login
Steps
  1. Example Accountants' software adds a client and saves their Making Tax Digital details through the API: £58,000 for 2024 to 2025, their first update sent on 20 August 2026
  2. Rita signs in and opens the client list
Checks
What Expected Seen Result
The client's rowover £50,000; the first update was late (deadline 7 August) but there are no points for 2026 to 2027 updates client-leah | 6 April 2026 | Quarterly update 2 for 2026 to 2027, 7 November 2026 | 1 | 0 | No figures this year client-leah | 6 April 2026 | Quarterly update 2 for 2026 to 2027, 7 November 2026 | 1 | 0 | No figures this year Passed

J76: Leah sees HMRC's estimate explained at Example Accountants, giving permission at the dummy HMRC

  • Passed
Test customer
Leah Park (tests/mtd_personas.py; app/features/demo/mtd_books.py)
Use cases
UC50
Services used
Organisation's own address, Dummy HMRC: OAuth and Individual Calculations API, Making Tax Digital helpers
Steps
  1. Leah starts 'Understand HMRC's estimate of your tax' at Example Accountants' address and chooses 2026 to 2027
  2. She gives her National Insurance number and permission at the dummy HMRC
  3. The calculation is read and explained
Checks
What Expected Seen Result
What the calculation is An estimate during the tax year, from the figures sent so far, for the 2026 to 2027 tax year. It uses figures up to 5 July 2026. An estimate during the tax year, from the figures sent so far, for the 2026 to 2027 tax year. It uses figures up to 5 July 2026. Passed
HMRC's Income Tax dueas J72 £0.00 £0.00 Passed
This calculator's Income Tax from the same incomeas J72 £116.00 £116.00 Passed

J77: Una gets an email reminder 14 days before her next Making Tax Digital deadline

  • Passed
Test customer
Una Novak (persona B21)
Use cases
UC52
Services used
Customer accounts, Dummy GOV.UK One Login, Dummy GOV.UK Notify, Background work
Steps
  1. The service administrator offers 'Deadlines and penalties' on the service's own pages
  2. Una signs in with GOV.UK One Login and gives her details
  3. On 'Your Making Tax Digital deadlines' she says she started in 2026 to 2027, uses standard update periods and wants reminders
  4. On 24 October 2026 the daily work emails her
Checks
What Expected Seen Result
Her next deadline 7 November 2026 7 November 2026 Passed
Email she gets Your Making Tax Digital deadline is coming up Your Making Tax Digital deadline is coming up Passed
It says Quarterly update 2 for 2026 to 2027 is due by 7 November 2026, in 14 days. Quarterly update 2 for 2026 to 2027 is due by 7 November 2026, in 14 days. Passed

J78: Rita switches a Making Tax Digital helper off for Example Accountants' customers, and on again

  • Passed
Test customer
Rita Mensah
Use cases
UC55
Services used
Organisation administrators, Making Tax Digital helpers
Steps
  1. Rita unticks 'Full question pages' for 'Where can customers find out when they need to use Making Tax Digital for Income Tax?'
  2. Its page at Example Accountants' address is not available
  3. She ticks it again
Checks
What Expected Seen Result
The page when it is off 404 404 Passed
The page when it is on again 200 200 Passed

J79: Leah's bookkeeping app uses the Making Tax Digital helpers through the API

  • Passed
Test customer
Leah Park (tests/mtd_personas.py; app/features/demo/mtd_books.py)
Use cases
UC53, UC56
Services used
Organisations' API, Making Tax Digital helpers
Steps
  1. The app checks her second update
  2. It asks for her deadlines and her penalty points
  3. It sorts her bank transactions into HMRC's categories
Checks
What Expected Seen Result
Checks on her second updateas J70 check NOT_ALLOWABLE, check NOT_ALLOWABLE check NOT_ALLOWABLE, check NOT_ALLOWABLE Passed
Her next deadline 2026/27:2 2026-11-07 2026/27:2 2026-11-07 Passed
Penalty points (first update sent on 20 August 2026) 0 0 Passed
Turnover sorted from 2 payouts and an invoice by 5 July 2026 3200.0 3200.0 Passed

Is this page not working properly? (opens in new tab)