Books that write themselves from the work.
Every bill you finalise, every receipt you record and every purchase you enter posts its own double-entry voucher the moment you make it. So the Trial Balance, the Profit & Loss and the Balance Sheet are as current as the site — and nothing is typed into an accounting package a second time.
The bill is raised once. Then it is typed again, somewhere else, a month later.
This is the one part of a construction office that is still done twice. The RA bill is built in the app — quantities, GST, retention, TDS, all of it — and then the same document is punched into Tally by somebody else, from a printout, in the second week of the next month.
The second entry is where the errors live
The bill in the app is right, because it was calculated. The entry in the accounting package is typed, so a retention gets missed, a TDS goes to the wrong section, a bill is booked twice. Then two systems disagree and somebody spends a day finding out which one is wrong.
The P&L is a month behind the site
You know exactly what was poured yesterday. You do not know what the company earned yesterday, or what this project has actually cost so far, until the books are written up — by which time the decision you needed the number for has already been taken.
And nothing traces back
A figure in the P&L is a line in a journal that somebody typed. There is no way to click it and arrive at the RA bill, the measurement and the item it came from — so a question at audit becomes a hunt through files instead of an answer.
What we set out to do, said plainly
A full double-entry accounting system inside Civil Limitless, so a construction company does not need a separate accounting package to close its books — and so every rupee in those books can be traced back to the work that earned or spent it.
It deliberately mirrors the model an Indian accountant already works in: groups, ledgers, vouchers, bill-wise references, day book, cost centres. Nothing new to learn — the words are the words your accountant uses.
Nine parts, eight screens, one set of books.
The books are the company's, not one project's. Every voucher carries a project tag as well, so the same entries give you a company P&L and a project-wise one without a second ledger.
The eight screens, and what sits on each
| Screen | Tabs on it | What you do here |
|---|---|---|
| Finance Dashboard | — | Cash and bank position, receivable and payable, GST and TDS, income against expense month by month, and project-wise. |
| Finance Masters | Chart of Accounts · Voucher Types · Opening Balances · Books Setup & Lock | Your groups and ledgers, the opening figures, the books start date, your home state and the period lock. |
| Vouchers & Day Book | Day Book · Voucher Entry | Everything that happened, in date order — and the entry screen for anything that is not automatic. |
| Finance Reports | Trial Balance · Ledger Statement · Profit & Loss · Balance Sheet · Receivables (AR) · Payables (AP) | The statements, for any period, with drill-down and PDF and Excel exports. |
| GST & TDS | GSTR-1 (outward) · GSTR-3B · Input GST (ITC) · TDS | Return-ready workings and the Excel your CA files from. |
| Banking | Accounts · Reconcile · Cheques & PDC | Bank accounts, statement import and matching, and the cheque register. |
| Audit & Exceptions | Exceptions · Audit Trail | What does not look right, and who changed what and when. |
| Tally Import & Export | Export to Tally · Import from Tally | Bring your old ledgers and vouchers across once; hand your CA an XML when they want one. |
The 28 standard groups, already there on the first day.
Your accountant does not want to design a chart of accounts. He wants the one he has used for twenty years. Open the module and it is seeded — fifteen primary groups and thirteen sub-groups, with the eight voucher types and the tax ledgers beneath them.
Fifteen primary groups
The top of the tree. Assets, liabilities, income and expense are decided here, which is what makes the Balance Sheet and the P&L sort themselves.
Thirteen sub-groups
Where the day-to-day ledgers actually sit. Sales, Purchase, Direct Income and Direct Expense are marked as affecting gross profit, so the P&L shows a gross figure and a net one.
Your ledgers are made from the masters you already have
You do not create a party twice. A client already in the app becomes a ledger under Sundry Debtors; a contractor, a supplier or a vendor becomes one under Sundry Creditors — with its GSTIN and PAN carried across, because those two fields decide how GST splits and whether a TDS return will accept the row.
- The tax ledgers are seeded too. Output CGST, SGST and IGST, Input CGST, SGST and IGST, TDS Payable and TDS Receivable, all under Duties & Taxes.
- So are the construction ones. Retention Receivable, Performance Guarantee Receivable, Advance to Contractor, Retention Payable, Advance from Client — the amounts a construction business holds and is held on, kept where you can see them rather than netted away.
- Add your own freely. "HDFC Bank — current", "Office Rent", "Site Diesel" — anything, under any group.
- The system rows cannot be deleted, and a ledger that already has postings cannot be deleted either. The books stay consistent with themselves.
What the company owns is in the same books
Fixed Assets is one of the standard groups. Put your ledgers under it — the office, the batching plant, the excavator, the vehicles, the site equipment — and what the company owns appears on the Balance Sheet beside what it owes, out of the same set of vouchers. Buy an asset and the payment voucher debits it directly.
Being precise about it: this is the asset sitting in the accounts and on the Balance Sheet. There is no separate fixed-asset register with depreciation schedules in this version — a depreciation entry is a journal voucher you or your CA post.
Eight voucher types, the ones you know
Payment, Receipt, Contra, Journal, Sales, Purchase, Debit Note and Credit Note. Each is numbered on its own series, and each behaves the way it does everywhere else — so the accountant you hire next year does not have to be retrained.
Finalise a bill. The voucher is already written.
This is the part that removes the second data entry. You do not tell the app to do accounting — you do the work you were doing anyway, and the entry appears in the books, complete, with the tax and the retention split out.
One client RA bill, all the way into the books.
A running-account bill on a government job. Work billed this bill ₹1,00,000 · GST 18% · retention 5% held by the client · TDS under 194C at 2%. The client is in your own state, so GST splits into CGST and SGST. You press Finalise. Nothing below is typed by anybody.
| Ledger | Group | Debit (₹) | Credit (₹) |
|---|---|---|---|
| Bharat Infra Ltd — the clientNet receivable, tagged to this bill | Sundry Debtors | 1,11,000 | — |
| Retention ReceivableHeld by the client, not lost | Loans & Advances (Asset) | 5,000 | — |
| TDS ReceivableSection 194C, against this party | Loans & Advances (Asset) | 2,000 | — |
| Work Income | Sales Accounts | — | 1,00,000 |
| Output CGST | Duties & Taxes | — | 9,000 |
| Output SGST | Duties & Taxes | — | 9,000 |
| Sales voucher — must balance, and does | 1,18,000 | 1,18,000 | |
Then the client pays
₹1,11,000 comes into the bank. You record the receipt in client billing, exactly as you do today, and tag it to this bill.
| Ledger | Group | Debit (₹) | Credit (₹) |
|---|---|---|---|
| HDFC Bank — current | Bank Accounts | 1,11,000 | — |
| Bharat Infra Ltd — the clientAgainst Ref — settles that RA bill by name | Sundry Debtors | — | 1,11,000 |
| Receipt voucher | 1,11,000 | 1,11,000 | |
That bill now drops out of the receivable ageing, because the receipt was tagged against it and not just dumped on the party's account. The ₹5,000 stays sitting in Retention Receivable until the client releases it, and the ₹2,000 stays in TDS Receivable until you set it off. Neither one is quietly written off as a shortfall in collection — which is what usually happens.
Everything else that posts on its own
Running-account bills, counted once
An RA bill is cumulative — bill 3 restates everything from bill 1. So each voucher posts only this bill's movement, never the running total. The chain cannot double count, and if a draft in between was skipped, its money simply arrives in the next finalised bill.
CGST and SGST, or IGST
The split is decided from the party's GSTIN against your home state, which you set once in Books Setup. Same state gives you CGST plus SGST; another state gives IGST. Nobody has to remember which on a Friday evening.
A reconcile pass that repairs
It finds a finalised bill that never posted and posts it, reverses a voucher whose source has been deleted, and re-posts one whose bill changed while the books were not looking. It is safe to run twice — the second run finds nothing to do.
Not everything comes off a bill. Type those the way you always have.
Office rent, a salary transfer, bank charges, a partner's capital, a correction, a transfer from bank to cash — the entries that belong to no site event. The voucher screen is the Dr/Cr grid your accountant expects, with keyboard movement down the rows, a narration and a date.
- Payment, Receipt, Contra, Journal, Sales, Purchase, Debit Note, Credit Note. Pick the type and the grid behaves for it.
- It will not let you save it wrong. Debit and credit have to agree before the button works — there is no such thing as a half-posted entry in these books.
- Bill-wise on the party line. New Ref for a fresh bill, Against Ref to settle a named one, On Account when the money is not yet allocated, Advance for money taken before the work. This is what makes the ageing report true rather than approximate.
- A project on the voucher. Tag it and the same entries give you project-wise income and expense, without keeping a second set of books per site.
- Cancel, never delete. Cancelling posts a reversal dated today. Finance vouchers are kept out of the recycle bin entirely — there is no route by which one silently disappears.
The Day Book
Everything that happened, in date order — the ones the app wrote and the ones you typed, side by side. Click any line and you are inside the voucher; from an automatic voucher you carry on to the bill it came from.
| Date | Type | Particulars | Amount (₹) |
|---|---|---|---|
| 04 Aug | Sales | Client RA Bill 3 — Bharat Infra LtdPosted automatically on finalise | 1,18,000 |
| 06 Aug | Purchase | Material inward — Shree Cement, invoice 4471Posted automatically from the gate entry | 2,36,000 |
| 08 Aug | Payment | Office rent — AugustTyped here | 45,000 |
| 11 Aug | Contra | Cash drawn from HDFC for site petty cashTyped here | 25,000 |
| 12 Aug | Receipt | Bharat Infra Ltd — against RA Bill 3Posted automatically from the receipt | 1,11,000 |
An automatic voucher is marked as one, and it keeps a link to its source document. You always know which entries the app wrote and which a person did.
Any period you like, and every figure clicks back to the bill.
These are not stored balances that somebody refreshes. They are read from the vouchers each time you ask, so there is no such thing as a report that is out of date, and no month-end process to wait for.
Drill down until you reach the work
A figure that cannot be explained is not much use at audit. So every number opens:
Balance Sheet → group → ledger → voucher → the RA bill
And from the bill you are back in the measurement and the item that earned it — the same quantity the estimate used and the site reported against. One chain from a figure in the accounts to a line in the Measurement Book.
Where that quantity is enteredPrinted the way an office needs it
Trial Balance, Profit & Loss, Balance Sheet, outstanding statements, the GST and TDS workings, the bank reconciliation, the bank statement and the cheque register all come out as PDF or Excel with your company heading and the period on them.
Every report the app printsThe dashboard an owner actually asks for
Cash and bank in hand, what is receivable and what is payable with their ageing, output GST against input GST, TDS payable and receivable, income against expense month by month for the last twelve — and, because every voucher carries a project, the same income and expense split project by project.
Who owes you, how old it is, and against which bill.
Outstanding is not one number per party. It is bill by bill, because that is how a client pays and how a contractor chases. Each party opens into its own bills, each bill carries its age, and every receipt or payment tagged against a bill clears exactly that bill.
- Four ageing buckets — up to 30 days, 31 to 60, 61 to 90, and over 90 — party-wise and bill-wise, on both the receivable and the payable side.
- Money on account is shown as money on account. A receipt that is not tagged to a bill sits against the party until you allocate it, instead of quietly reducing the oldest bill and making the ageing lie.
- What is held back is visible. Retention, performance guarantee and unadjusted advance sit on their own ledgers, so you can tell the difference between money you have not collected and money the client is legitimately holding.
- It is the same list on both sides. Receivables come from your client bills, payables from contractor bills, supplier purchases and anything you typed as a purchase voucher.
Receivables, as the screen shows them
One party opened out. The 90-plus column is the one that starts the phone call.
| Bill | 0–30 | 31–60 | 61–90 | 90+ | Total |
|---|---|---|---|---|---|
| RA 3 / WO-14 | 1,11,000 | — | — | — | 1,11,000 |
| RA 2 / WO-14 | — | 64,500 | — | — | 64,500 |
| RA 1 / WO-14 | — | — | — | 2,08,300 | 2,08,300 |
| Bharat Infra Ltd | 1,11,000 | 64,500 | — | 2,08,300 | 3,83,800 |
The same view, with the same buckets, exists for payables — and the exceptions list raises anything sitting beyond 90 days on either side so it does not become a write-off by neglect.
The return is a working, not a reconstruction.
Tax is captured on the voucher line at the moment the bill is posted — the taxable value, the rate, the CGST, SGST or IGST, the place of supply and the HSN or SAC. Nothing is worked out backwards from a total at the end of the month.
GSTR-1 — what you billed out
Your outward invoices split the way the return wants them: B2B invoice by invoice with the recipient's GSTIN, B2C summarised by rate and place of supply, and an HSN or SAC summary underneath. A party with no GSTIN correctly falls into B2C — and the exceptions list names that party so you can add the GSTIN before you file.
GSTR-3B — output against input
Output GST from your bills, input GST from your contractor bills and material purchases, and the net that is actually payable. Because the input side is captured at the inward gate rather than from a pile of invoices in a drawer, credit that would otherwise be lost stays claimable.
Input GST register
Every input line with its supplier, invoice, rate and HSN, so you can reconcile against what the portal shows and see exactly which purchase a difference belongs to.
TDS and the 26Q shape
Deductions section-wise and deductee-wise — the 194C you cut on contractor bills, and the TDS the client cut on yours, which is money you are owed and not an expense. Exported in the shape a 26Q annexure needs, with the PAN on each party.
What this gives you is the working and the Excel your CA files from. It is not a live connection to the GST portal.
Read the full boundaryClose the month knowing the bank agrees with you.
Bank accounts are ledgers with an account number, an IFSC and a branch on them. Download the statement, bring it in as Excel, and the app lines it up against what your books already say.
- Import is a preview, not a leap. Rows you have already imported are marked as duplicates, a row carrying both a debit and a credit is refused, and a date that is not a real date is refused — because a bad date would sit quietly in the table and fall outside every match window.
- The closing balance is read from the latest-dated row, not the last row in the file. Plenty of banks print newest first, where the bottom row is the opening figure.
- Auto-match on amount and date, within a window of a few days either side, best match first — and a voucher already used cannot be matched to a second line. What it cannot match is listed for you, with the likely candidates beside it.
- A reconciliation statement at the end of it, showing the bank's balance, your book balance and exactly what stands between them.
Cheques and post-dated cheques
Issued and received, in one register: number, bank, amount, date, party, and whether it is post dated. Each one runs pending → cleared, or bounced, or cancelled — and the ones falling due in the next few days are surfaced rather than remembered.
A bounced cheque posts a reversal. The money never actually moved, so the voucher that recorded it is reversed instead of being edited away. The party's outstanding goes back up, which is the truth.
Cash and bank, moved properly
Money drawn from the bank for site petty cash is a contra voucher, not an expense. Cash-in-Hand and Bank Accounts are separate groups, and negative cash on any day is picked up as an exception — because cash physically cannot go below zero.
"Fully audited" has to mean something specific. Here is what it means.
Four things, each of which an auditor will ask for: that the books started from a balanced position, that a closed period cannot be quietly changed, that the app itself tells you what does not look right, and that every change has a name and a time against it.
Opening balances that actually balance
Every ledger in one grid. As you type, the total debit, the total credit and the difference update live in front of you. When there is a stubborn difference — and on a first migration there always is — one click posts it to Suspense A/c, so the books balance from day one and the unexplained amount is visible instead of hidden.
Period lock, enforced by the server
Set a date and everything before it is closed. A posting or a change dated inside a locked period is refused by the server, not merely greyed out on a screen — so it holds however the request arrives. A reversal is always dated today for the same reason: it can never reach back into a month you have already signed off.
The audit trail
Who created, changed or cancelled what, and when, with the values before and after. It covers vouchers, ledgers, groups, the books settings, the financial year, opening balances, bank accounts, imported statements and cheques. It is append-only — entries are added to it, never taken out.
Exceptions, with the fix on the row
A read-only list of the things that block a clean close or a filed return. Each row says what is wrong, by how much, and which screen to go and fix it on. High, medium and low, counted at the top.
What the exceptions screen checks
| It flags | Why it matters |
|---|---|
| Books not set up | No books start date, so nothing is posting at all. Everything else is meaningless until this is done. |
| Opening balances do not net to zero | Your Trial Balance and Balance Sheet will be off by exactly that amount — and it tells you the amount. |
| Trial Balance differs beyond the opening imbalance | Something new has gone wrong, not something inherited. A different problem, and it says so. |
| Negative cash | Names the cash ledger, the date and the voucher where it goes below zero. Usually a missing receipt, or a payment recorded as cash instead of bank. |
| Post-dated vouchers | Entries dated after today, which will move a period you thought was closed. |
| Manual vouchers with no narration | An auditor's first question about any journal entry. |
| TDS deducted from a party with no PAN | 26Q rejects the row and the rate becomes 20%. Names the parties. |
| GST invoice raised on a party with no GSTIN | It goes into GSTR-1 as B2C when it should be B2B. Names the parties. |
| Receivables and payables beyond 90 days | The amounts old enough to need a decision rather than another month of waiting. |
A posted voucher is never edited and never deleted. Corrections are made by reversal, so the record shows what happened and what was done about it. That is not a feature we chose to add — it is what the edit-log rule requires, and books that cannot show it are not much use at an audit.
Five things this version does not do.
If you are moving your company's books onto software, you need the boundary as clearly as the feature list. Here it is, in plain words, so nothing is a surprise in month three.
Bring one finalised bill to the call.
Thirty minutes. We will show you the exact voucher it posts, where it lands in the Trial Balance, and how it drills back to the measurement it came from.