Sign in
Each person signs in with their own name and passcode. Your name goes on every entry you make, so the book always says who wrote what.
An app is asking to connect to this dealer. Sign in as an owner to see what it asks for and to allow or refuse it.
Forgot your passcode? An owner resets it for you on Who can sign in. An owner who cannot sign in uses a one-time code from whoever runs the server.
An owner who cannot sign in
Whoever runs the server makes a one-time recovery code for you, on the server itself, and gives it to you in person or by phone. It works once, for 15 minutes. Type your name, the code, and the new passcode you choose. Your other sign-ins end, and this is written in the audit trail.
My passcode
Change your own passcode. You need the one you have now. Your sign-ins on other devices end; this one carries on.
Set up the first owner
Nobody can sign in yet. The first person becomes the owner: they add everyone else, each with their own passcode. The setup passcode is the one the workbench was started with, or the one-time setup code from whoever runs the server. Once the owner is set up, it signs nobody in.
Who can sign in
Each person has their own name and passcode, and starts from their job. Nothing here is ever rubbed out: switching someone off is a new record, and their open sign-in stops at once. Use made-up people only (DEMO).
Add a person
Switch someone off
Switch someone back on
Reset someone's passcode
Allow this app?
An app is asking for a key to this dealer's records. Allow it only if you know the app and it should do what is listed. Its key then shows on Connected apps with every request it makes, and you switch it off there in one step. Made-up apps and data only (DEMO).
Status
How this dealer's workbench is, checked now: its file, its audit trail, who is signed in and the last backup. Nothing here is sent anywhere.
Getting started
Your first day, step by step. Each step says what it is for and what to have ready, and opens the screen where it is done. Done is read from your own records, so it cannot be ticked by hand. Tax and account answers are typed by your accountant: nothing is filled in for you. Leave at any time: your place is kept for everyone who signs in.
Ready check
Connected apps
Another app reads your records, or sends a document in, only with a key you make here, for that app by name, with a list of what it may do. You see every request it makes and switch it off in one step. No fee to the app maker. Made-up apps and data only (DEMO).
Make a key for an app
Send an app each event the moment it happens
Switch a key off
Today
At a glance
Reports
Build your own: pick what it is about, tick the columns, filter and sort, then see the rows with a total under every money column, download them, or save the report for everyone here to open again. Money columns (cost, gross, supplier figures) are for owners and accounts.
Write a saved report to a file on a schedule
The file is a CSV written into this dealer's own folder on the server (scheduled-reports), once a day, a week or a month, by the server's npm run reports-due command, which whoever runs the server has their scheduler call. Nothing is emailed or sent anywhere. Money columns are only in a file for an owner or accounts.
Cars in stock
Add a car
Start with whatever you have in your hand. Once saved, these details are never rubbed out: a mistake is fixed on the Correct screen, with a reason.
Sell a car
Check the GST first. The sale is saved only when you confirm it, and it never changes after that.
Fill in later
Details that arrive after the car: the signature, the notices, the roadworthy. Each one can be filled in once; only the empty ones are shown.
Correct an entry
Nothing in the stock book is ever rubbed out. A correction is saved beside the entry, with your name and your reason. A wrong price, GST or date that went into the ledger is reversed there and posted again with the right figure.
People and companies
Add a person or company
Correct a detail
Deals
A deal is what a buyer agrees to: one car, a price including GST, any deposit and any trade-in. A car on an open deal is held, so no other deal or sale can take it.
New dealNew enquiryEach deal, step by stepLines on a dealDeposit or refundDeliver a dealCancel a deal
Open deals
Delivered and cancelled
New deal
Back to deals. Opening a deal holds the car for this buyer. Nothing goes into the ledger until a deposit is taken or the deal is delivered.
Deposit or refund
Back to deals. Each deposit and each refund is its own record with its receipt number. No GST is worked out on a deposit here: that is for your accountant.
Deliver a deal
Back to deals. Check the figures first. Delivering sells the car in the stock book, brings in any trade-in and uses the deposit against the price, all together or not at all.
Cancel a deal
Back to deals. Refund any deposit first. Keeping a deposit when a deal falls through is not built: ask your accountant how it should be treated.
Lines on a deal
Back to deals. Add what else the buyer pays for: a government charge passed on, our own charge, a product. Each comes from the list of things we add to a deal. A line can be taken off, with a reason, until the deal is delivered; then the figures are locked.
Add a line
A deal, step by step
Back to deals. The fourteen steps of a deal, from the enquiry to the commission. Each step is read from what is recorded; the one thing to do next is the button at the top. A deal made before these steps existed shows "not recorded" for what nobody wrote down.
Where each deal is
New enquiry
Back to deals. Someone asked about a car: who, how they came in and what they asked about. A car is optional; the deal is opened later, from the enquiry.
Lenders
The short list of lenders finance on a deal is applied with. Only a lender on this list can be picked; outside finance (the buyer's own lender) needs none. Taking one off keeps it on the deals that already used it. Made-up lenders only (DEMO).
Approval of the figures
Back to deals. An owner may set the lowest gross a deal is delivered at without their say. A deal under it is delivered only once an owner approves its figures; if the figures change afterwards, or the floor is raised, it needs approving again. Sales is told only when a delivery is refused; every refusal is listed here and on Today for the owner and accounts, and after three on one deal in a day that salesperson's deliveries of it wait until an owner looks. Once delivered, a deal's figures are locked: a change is a correction with a reason.
The floor
Things we add to a deal
The list sales picks from when a deal has more than the car: government charges passed on, our own charges, products. Every answer below is yours or your accountant's to type: nothing is filled in for you, and an item with a question still open cannot go on a deal. Nothing is ever rubbed out: saving an item again keeps the old answers on file. Made-up items only (DEMO).
Which state or territory we sell in
Add an item, or save new answers for one
Recon invoices
Type a supplier's invoice for work on a car (paint, tyres, a service). It goes into the car's cost the same way an invoice from the Bayday recon app does: work in progress while the recon is under way, the car's cost once the recon is complete, and cost of sale if the car is already sold. The GST is the figure on the supplier's tax invoice; it is never worked out here.
Recon complete
When the work on a car is finished, mark it complete: its work in progress becomes part of the car's cost.
Typed here lately
Workshop
A job card for a customer's car, or for a stock car (its work goes into the car's recon). Every line of work is its own record. A customer's job never goes over what they agreed to: record their say-so for more first. Technicians' time is recorded here, not paid (there is no payroll). Made-up data only (DEMO).
Add labour
Add parts
Add sublet work (another business's invoice)
The customer agreed to more
Issue the tax invoice
Charge the job to the car
Cancel the job
Money paid against the invoice
Open a job card
Workshop settings
Typed by an owner or accounts, with your accountant. Nothing is filled in for you: until each answer is typed, what needs it is refused with a list of what is missing. Saving again keeps the old answer on record and uses the new one from then on.
Parts
The parts on the shelf: each part's number, what it is, the bin it lives in and how many are on hand by the books. Every part in or out is its own record; stock never goes below nothing. Sell a part over the counter, or put one on a customer's job, on the Workshop screen. Made-up data only (DEMO).
At or under the level the owner set
Every part
| Part number | What it is | Bin | On hand | Level | Sale price | Cost on hand |
|---|
Add a part to the list
Parts received: the supplier's invoice
Stocktake: count a part
A part's bin, sale price or level
Part
Parts settings
Typed by an owner or accounts, with your accountant. Nothing is filled in for you: no part moves until the costing method is picked. The method never changes once a part has moved, so a cost already in the books is never worked out again. The Australian standard on inventories, AASB 102, paragraph 25, names two ways for parts like these: first in, first out (FIFO), and weighted average cost.
Dealings book
Every entry
Paperwork
Pages to print, and the records that say a signed paper is on file. Every page is made-up data (DEMO). Signing on the screen is not built.
Signing sheet for the dealings book
An electronic dealings book entry that is not signed another way is copied on to paper, signed and stored with the others (Motor Car Traders Act 1986 s 35(9)). This prints one transaction's entries with the numbers the regulation says the paper must carry (reg 9(5)).
PPSR search: record the certificate
PPSR is the national register that shows whether money is still owed on a car. Solva cannot run the search: do it on ppsr.gov.au, then type what the search certificate says. Keep the certificate somewhere safe: the PPSR calls it "your legal record of your search". A car that came in from someone other than a trader is flagged until a search is on record.
The signed paper is on file
The dealer's own details
Tax invoice for a delivered deal
Shows what the GST Act (A New Tax System (Goods and Services Tax) Act 1999 s 29-70) says a tax invoice must show. Until everything is there and it is issued, the page says it is not a valid tax invoice yet.
Window notice for a car on display (Form 4 Part B)
The used motor car notice the regulations prescribe (Motor Car Traders Regulations 2018 reg 11). The odometer on it is the one written in the dealings book when the car came in. Nothing is ticked for you.
Deal summary for the buyer
The figures only. A contract of sale is not made here: its terms are prescribed by law (Motor Car Traders Act 1986 s 41, Regulations reg 23 and Schedule 2), and a lawyer should set it up.
Bring in a dealer's existing stock
For the day Solva takes over: a spreadsheet saved as CSV, one row per car in stock. The whole file is checked first and every problem is listed. Nothing is written until you bring it in, and then all of it goes in or none of it does. Use made-up cars only (DEMO).
Any headings, in any order: once you choose the file, you say which of its columns is each thing we need (stock number, VIN, description, vehicle type, the date it came in, odometer, cost before GST, GST on the purchase (claimed, seller not registered, or unknown), price paid, the seller's name and address) and the registration if it has one. Dates such as 14/07/2026, 14 Jul 2026 or 2026-07-14, and amounts such as $14,500.00, are read as they are. CSV only: in Excel or Numbers, save or export the sheet as "CSV". A made-up example is in data/demo/opening-stock-sample.csv.
Each car's cost goes into stock against "Opening stock brought in (clearing)" (account 3910). That account is not mapped to the dealer's books: their accountant decides where it goes. A second-hand GST credit is only ever claimed for a car whose row says the seller was not registered AND gives the price paid.
Switching in from the old system
For a dealer moving to Solva: their customers, and the cars they sold before, from spreadsheets the old system saves as CSV. Each file is checked first and every problem is listed by its line. Nothing is written until you bring it in, and then all of it goes in or none of it does. Use made-up people and cars only (DEMO).
Customers
Any headings, in any order: once you choose the file, you say which column is the name and which says person or organisation (both needed), and the address, phone, email, ABN, registered for GST (yes, no or unknown; empty means not known) and the old system's own customer number if it has them. CSV only: in Excel or Numbers, save or export the sheet as "CSV". A made-up example is in data/demo/switch-customers-sample.csv.
Nobody is ever matched or merged. Someone with the same name, phone, email or ABN as a person already here, or on another line, is shown beside them as a possible duplicate: skip that line, or bring them in as a new person anyway.
Cars sold before Solva
Records only: nothing is posted, no stock book entry or car is made, and they are in no money total anywhere. Each row is shown here, marked "from the old system". Any headings: you say which column is the stock number, the description and the date sold (needed), and the VIN, buyer, sale price, old deal number and old customer number if it has them. A customer is named only by the old customer number, brought in with the customers first, never by a name. A sale already in sold history, or in our own books, is shown beside it: skip it, or keep it as a record. A made-up example is in data/demo/switch-history-sample.csv.
Sold before Solva, from the old system
Compare with the old system
Our books side by side with spreadsheets the old system saves: its stock list (stock_no, cost_ex_gst, and vin and description if it has them) and its month totals (month as YYYY-MM, with any of cars_in, cars_sold, sales_ex_gst and gross). Every difference is named, and the differences add up to the whole gap. Nothing is written but a line in the audit trail. Made-up examples: data/demo/old-system-stock-sample.csv and old-system-months-sample.csv.
Finance on a deal
What the buyer's finance is, as you record it: the lender, the amount financed and each step (applied, approved, declined, withdrawn, settled). Nothing here contacts a lender. Once the deal is delivered and the finance approved, owner and accounts record the lender's payout and the commission, which go into the ledger.
Finance settings
Your accountant's answers for the commission a lender pays the dealer. Nothing is filled in for you: until both are answered, a commission cannot be recorded. Saving again keeps the old answers on file and uses the new ones from then on.
Export everything
Every record, in plain files, whenever you want it: the stock book and its corrections, people, deals, money, every journal line, the audit trail with its hash chain, every event received, and a copy of the database file. A manifest lists every file with its row count and a SHA-256 fingerprint, so anyone can check nothing was changed. No lock-in.
It goes into a new folder beside the workbench's own file, on this PC only. To prove it rebuilds the same books, run npm run restore-drill -- <that folder>.
Files for your accountant
The journal (every ledger entry, debits and credits) as a file your accountant can import into Xero or MYOB. Your accountant types the settings first: which of their account codes each Solva account goes to, and the exact tax rate name (Xero) or tax code (MYOB) for each kind of GST line. Nothing is guessed, and a file is refused while anything is missing.
Prototype, made-up data only (DEMO). The layouts come from Xero's and MYOB's own help pages; the template files inside Xero and MYOB were not read, and no file from here has been imported into a real Xero or MYOB. Nothing is sent anywhere: you download the file.
The settings for these files are entered by a person with accountant settings permission.
Xero settings (typed by your accountant)
Make the Xero file
MYOB settings (typed by your accountant)
Make the MYOB file
Month-end pack
One new folder for a month, open or closed: the journal, the Xero and MYOB files (or a note saying what is missing), the GST worksheet, stock at cost per car, stock ageing, the trial balance, the corrections made in the month, and the dealings book entries still to finish. A manifest lists every file with its SHA-256 and whether each figure ties to the ledger.
Close a month
Closing a month locks it: nothing is ever posted on or before its last day again, and a late document is held for a person. Months close in order, only once they have ended, and not while a document dated in them is still held.
Deals from WriteUp and Kept
A WriteUp quote or a Kept deal, as a solva-deal-intake/2 document (JSON; version 1 is still taken). Check it first: it says exactly what would happen. A car is matched only by its VIN, a buyer only by their Solva Customers id; anything that does not match exactly is held below for you, with the reason. Intake never delivers a car, takes a deposit or brings in a trade-in.
Prototype, made-up data only (DEMO). Neither app sends these documents yet: paste one or upload a file. Made-up examples are in data/demo/intake-sample-writeup-quote.json and, with the quote's drive-away breakdown, intake-sample-writeup-quote-v2.json. The format is written up in docs/INTAKE-CONTRACT.md.
Match a WriteUp quote's drive-away lines to your list
A WriteUp quote can carry its own breakdown of the drive-away price. When the car and the lines add up to the cent, the quote says the car's price includes GST, and every line is matched here to an item on Things we add to a deal, the deal opens with the car's price and those lines. Anything else is held. Match each line once; a government charge only to an item the list calls one.
Held for a person
Taken in lately
Find
Person or company
Stock card
Stock card settings
A car's stock card freezes when its deal is delivered and its tax invoice issued: its cost and gross stop changing. A cost that arrives after that is an after-sale cost. Where it goes in the books is your accountant's answer, typed here by an owner or accounts. Nothing is filled in for you.
Charge rates
One table for this dealer, one row for each kind of customer who pays: what an hour of labour costs them and how parts are priced. A workshop job picks its row by itself and says why; a person can change it on the job. Every figure is yours to type: none is filled in for you.
Document
Our own books
Keep the dealer's books here: the bank accounts and other accounts you add, money in and out against what it settles, manual journals, who owes you and who you owe, a profit and loss and a balance sheet. A bank account is just an account here: there is no bank feed. Nothing here is a tax return.
Prototype, made-up data only (DEMO). To confirm with your accountant.
Where the books are kept
Where the books are kept is chosen by an owner.
Accounts you added
The fixed chart (the car, deal, workshop and parts accounts) is kept as it is. You add the rest: each bank account, cash tin or card, and any other income, cost, asset, loan or owner's money account. Each one is a line your accountant fills in the Xero and MYOB settings before a file is made.
Add an account
Change an account
A change is kept beside the old one. Its type never changes. A used account is retired, never deleted: it takes no new postings, and its entries stay.
GST on payments to accounts you added
When you pay a supplier from an account you added (rent, say) and their tax invoice shows GST, you type that GST beside the amount. Where it goes in the books and which tax code its line carries are for an owner or your accountant to say. Nothing is chosen for you: until both are typed, a payment with GST is refused.
Money in and out
Record money that came in or went out of one of your money accounts, against exactly what it settles: a car sold, a deposit, a car bought, a supplier's invoice, a charge on a deal, a workshop payment to bank, or another account you added. Part payments are fine; never more than is owing. A mistake is reversed, never changed.
A workshop or parts invoice is paid on its job (Workshop); the payment then shows here to bank. Dated in a closed month, it is refused.
Recorded lately
Who owes us, who we owe
Every document not settled to the cent, by its age, read from the ledger. Each list adds up to the clearing and payable accounts in the trial balance, and each row opens the postings and money behind it.
Manual journals
A journal you write by hand: debits equal credits, a reason, a date in an open month. Only between accounts you added and three of the fixed chart's (1410 and 2210 for GST, 3910 opening stock). A car's, deal's or supplier's account, and those the workshop and parts lists tie to, belong to their documents. A mistake is reversed, never changed.
A line on 1410 or 2210 shows on the GST worksheet. Ask your accountant first.
Journals posted lately
Profit and loss, and balance sheet
For any period, read only from the ledger and grouped by type. Each line opens its entries. The balance sheet shows the profit to date worked out from income and expenses (no closing entry is posted here), so it balances to the cent with the trial balance.
Bank statements
Take in a bank statement file (CSV) for one of your money accounts, then match each line by hand to money in or out already recorded. Nothing is matched until you say so, and nothing here posts: a payment missing from the books is recorded on Money in and out. There is no bank feed and no bank sign-in.
Prototype, made-up data only (DEMO). Your bank's file layout is not built in: you say which column is which, and it is remembered for that money account.
Take in a statement
Statements taken in
Staff costs
What each person costs the dealer, typed here or brought in from your payroll software, for the staff cost reports on Reports.
This is a cost figure for reports. It is not payroll: your payroll software or accountant works out pay, tax and super.
Prototype, made-up data only (DEMO). Only people who see and set wage costs see this screen. Nobody else sees a wage figure, not even their own.