
The Expense & Petty Cash Management System Web App is a complete Google Apps Script application with 25 screens, 6 permission roles, 16 finance reports and a self-building Google Sheets database of 24 sheets. Run setup once and it writes 10,932 rows of realistic demo data — 1,291 expense claims across 3,445 lines, 1,556 petty cash vouchers, 95 cash counts, 216 budget lines and 3,000 audit entries — so every screen, chart and report is populated before you have typed a thing.
Most small and mid-size finance teams run two parallel messes: expense claims that live in an inbox, and branch petty cash that lives in a notebook nobody reconciles until year end. Paid expense platforms fix both, at $5 to $15 per user per month, which is exactly the line item that never gets signed off. This web app closes the same gap for a single one-time price, deployed inside your own Google account, with the full source code in the download.

🚀 Try the Live Demo Before You Buy
We have deployed this web app in our own Google account so you can test every page and every one of the six roles — against the full 10,932-row sample database — before you spend anything. No signup, no email required.
🔑 Test Login Credentials
Sign in as admin to see everything, then sign out and come back as employee or custodian. The left menu itself shrinks to the handful of screens that role is allowed to touch — that role separation is the whole point of the product, and you can see it in ten seconds.
💡 These credentials are public on purpose. They are the seeded logins of a shared demo instance that we reset — not anybody’s live system, and not what you receive after buying. After purchase you deploy your own private copy in your own Google account, with your own accounts and your own passwords, and nobody else can reach it.
Key Features of the Expense & Petty Cash Management System Web App
The system covers the whole life of a spend event — raise it, flag it, route it, approve it, pay it, count what is left in the drawer, and prove afterwards who did what.
- Multi-line expense claims with receipts. A claim carries as many lines as it needs, each with a date, an expense category, an amount and its own attached receipt image or PDF, stored in a Google Drive folder the app creates for itself.
- Policy enforcement on save, not on trust. A line above its category policy limit, or missing a receipt where the category requires one, is flagged automatically, and any flag pushes the entire claim up one approval tier. In the demo data, 228 of the 1,291 claims carry a flag.
- Three approval tiers driven by value. Claims at or above INR 15,000 need tier 2, at or above INR 50,000 need tier 3. Both thresholds are Settings fields, so they become your own limits in the first ten minutes.
- An approvals queue that ages itself. Sorted oldest first, amber past the 7-day service level, with the ageing spread shown as four buckets — 0-2, 3-6, 7-13 and 14+ days — and a checkbox column for clearing a backlog in one action.
- Branch petty cash floats that cannot go negative. One imprest float per branch, held by a named custodian. A voucher that would overdraw the float is refused with the current balance printed in the message, and no single voucher can exceed the ceiling in Settings (INR 5,000 by default).
- A cash book, not a list. Every voucher prints the float balance immediately after it, so the vouchers screen reads exactly like a manual cash book — and reconciles against it.
- Cash counts with a witness and an explanation. Ledger balance versus counted cash, and a count that closes with a variance cannot be saved until somebody types why. The demo carries 95 counts, 80 exact and 15 explained.
- Advances that settle themselves. An outstanding staff advance nets against the employee’s next approved claim and can never fall below zero.
- Mileage at your own rate. Distance-based travel claims at the per-kilometre rate in Settings (INR 12 out of the box), with toll and parking added separately. The demo holds 500 journeys covering 40,021 km.
- Reimbursement batches. Approved claims are grouped into one payment run per branch with a payment mode and a bank reference, and a claim only leaves the “approved, not yet paid” pool when its batch is marked paid.
- Budgets computed from the claims. Budget actuals are recalculated from approved and reimbursed claim lines whenever a claim is approved — never typed in — per cost centre and per month, with a colour band for consumption.
- Six roles guarded on the server. The same permission map that hides a menu item also guards every server call, so hiding a button is never the only protection. Passwords are stored as a salted SHA-256 hash and can never be read back out of the sheet.
- A full audit trail and a safe archive. Every create, update, approval, payment and sign-in is logged. Archiving takes the dated Drive copy first, verifies it, and only then removes closed transactions older than your cutoff — master data and anything still open always stay live.
- Printable documents. Expense claim, petty cash voucher, replenishment slip, cash count sheet, advance slip, reimbursement advice and every report, at 3-inch, 4-inch or A4 print size.
Screens Explained
Everything below is a real screen from the deployed app, captured against the seeded database.
Dashboard
Eight KPI cards open the app: Expenses Last 30 Days (INR 11,23,154 across 86 claims in the demo), Awaiting Approval (29 claims worth INR 4,94,555, five of them overdue), Petty Cash On Hand (INR 1,37,520 across six floats, 74% of the approved limit), Advances Outstanding (INR 3,78,500, 14 open and 4 past due), Budget Consumed (74.1%), Average Approval Time (2.7 days against a 7-day service level), Policy Flags Pending and Reimbursed Last 30 Days. Under them a “What needs attention” panel names the actual problems — five approvals past the service level, four flagged claims, four overdue advances, fifteen counts closed with a variance — and below that sit Approved Spend by Month across twelve complete months and Claim Status Mix as a donut of all 1,291 claims.

Expense Claims
The claims register, with Claims On File, Awaiting Approval, Approved Not Yet Paid and Carrying A Policy Flag as cards. The table below filters by status, department, branch and policy flag, and each row shows the claim number, the employee with their department and branch, the purpose and its cost centre, the line count, the gross value, the approval tier and the status — with view, approve, reject, edit and submit actions on the row itself, so the action follows the record instead of hiding in a menu.

Approvals
The approver’s working queue. Claims Waiting, Past The Service Level, Needing Tier 3 Sign Off and the Ageing Spread sit at the top; the queue itself is oldest first, with breached rows highlighted in amber and the waiting time shown in days beside a Within SLA or Overdue badge. A checkbox column plus an Approve Selected button clears a backlog in a single action, and the whole queue exports to CSV.

Petty Cash Floats
One card per branch float, showing the live balance against the approved float, a progress bar, the named custodian, the replenish-below threshold, spend over the last 30 days, vouchers on file, last movement and last count date, plus a health badge. Ledger, Pay Out, Top Up and Count buttons sit on the card. In the demo, the six float balances add up exactly to the INR 1,37,520 shown on the dashboard, and the vouchers-on-file counts add up exactly to the 1,556 vouchers in the ledger.

Budgets
Budget For The Month, Actual Spend, Consumed percentage and an Over Budget count, then Budget Against Actual By Cost Centre as a grouped column chart, then the budget lines with budget, actual, variance and a consumption bar for each cost centre and its owner. A month picker plus department and health filters sit above the table, and a Recalculate Actuals button reruns the entire month from the underlying claim lines.

Reports
Sixteen reports in three groups. Expenses: Expense Summary by Category, by Department and by Branch, Employee Claim Summary, Monthly Expense Trend, Mileage Claim Summary, Reimbursement Batch Register and Vendor / Payee Spend Analysis. Petty cash: Petty Cash Float Ledger, Petty Cash Movement Summary and Cash Count Variance Report. Control: Budget vs Actual by Department and by Cost Centre, Pending Approvals Ageing, Policy Violation Report and Advances Outstanding. Each takes a From and To date with Last 30 Days, Last 90 Days and Last 12 Months shortcuts, draws its own chart and exports to CSV or print.

The rest of the menu: Mileage Claims, Advances, Reimbursements, Cash Vouchers, Replenishments, Cash Counts, Audit Log, and the master-data screens for Employees, Departments, Branches, Cost Centres, Expense Categories and Vendors & Payees, plus Users, Lists, Settings, Archive, an in-app Help guide and a Get More Templates page. The seeded database fills all of them: 60 employees across 8 departments and 6 branches, 18 cost centres, 20 expense categories with GL codes and policy limits, and 45 vendors.
Expense & Petty Cash Web App vs. a Spreadsheet vs. Paid Expense SaaS — Feature Comparison
| Feature | Expense & Petty Cash Management System Web App | Shared expense spreadsheet | SAP Concur / Expensify / Zoho Expense |
|---|---|---|---|
| Cost | $39.99 one-time, unlimited users | Free, but no controls | $5-15 / user / month, often plus a platform fee |
| Platform | Your own Google account (Apps Script + Sheets) | Google Sheets or Excel | Vendor’s cloud |
| Setup time | About 15 minutes, one-button database build | Hours of formula work | Days to weeks, plus onboarding calls |
| Tiered approval routing | ✅ 3 tiers, value and policy driven, out of the box | ❌ Manual | ✅ Yes |
| Branch petty cash floats with counts | ✅ Imprest floats, vouchers, replenishments, reconciled counts | ❌ Rare and unenforced | ⚠️ Often an add-on or absent |
| Server-enforced role permissions | ✅ 6 roles, guarded on every server call | ❌ Sheet protection only | ✅ Yes |
| Receipt OCR and card feeds | ❌ Upload and store only | ❌ No | ✅ Yes — the main reason to pay |
| You own and can edit the source | ✅ Complete, commented Code.gs and Index.html | ✅ Yes | ❌ No |
| Year-1 cost at 25 users | $39.99 total | $0 plus the cost of the mistakes | $1,500-$4,500 |
For a finance team that has outgrown a shared spreadsheet but cannot justify a per-user subscription, the Expense & Petty Cash Management System Web App sits in the sweet spot: real approval control and a real audit trail, hosted in your own Google account, for one payment.
Who Should Use This Template
Perfect for:
- Finance and accounts teams at 20-500 person companies still running expense claims and branch petty cash on spreadsheets
- Multi-branch businesses that hand a cash float to a custodian at each site and need the physical count to reconcile
- Owners and controllers who want approval limits, policy limits and receipt rules enforced rather than remembered
- Internal auditors who need read-only visibility over every claim, voucher, count and change
- Consultants and Apps Script developers who want a working, commented codebase to brand and extend for a client
Not a fit if:
- You need receipts read automatically — files are uploaded and stored against the line, but nothing performs OCR on them
- You need a live bank or corporate-card feed. “Corporate Card” here is a payment-mode label on a record, not a connection to a card issuer
- You expect your accounting package to update itself — there is no Tally, QuickBooks, Xero, NetSuite or SAP integration, and nothing files a statutory or GST return or generates an e-invoice
- Your business requires SOC 2, SSO or SAML — sign-in is the app’s own salted-hash account table inside your Google account
- You are looking for payroll, purchase orders or vendor invoice processing. This system handles employee expenses and cash, not the accounts-payable ledger
Real-World Use Cases
Priya is the financial controller at a 180-person manufacturer with six branches. Each branch used to email a monthly petty cash summary that she had no way to test. Now every voucher posts against a named float with the balance printed after it, cash counts are witnessed and any variance carries a written explanation, and she sees all six float balances and their health badges on one screen. The Petty Cash Movement Summary report closes her month in minutes rather than a week.
Rakesh runs accounts at a 40-person consultancy where travel claims used to sit in an inbox. He set the tier 2 threshold at INR 15,000, made receipts mandatory on Air Travel, Hotel & Accommodation and Client Entertainment, and left the service level at seven days. Claims now route themselves, the queue turns amber on its own, and the Pending Approvals Ageing report is the only page he takes into the Monday finance meeting.
Meera is an internal auditor at a group with a 60-person head office. She was given the auditor login and nothing else. She can read every claim, voucher, count, budget line and audit-log entry, run the Policy Violation Report and the Cash Count Variance Report over any date range and export both to CSV — and she cannot change a single record, which is precisely what her scope requires. That is the strongest argument for the role model: it is the same map on the screen and on the server.
Advantages of the Expense & Petty Cash Management System Web App
- Cost. A 25-person finance and branch team on a mid-tier expense platform is a $1,500-$4,500 first-year commitment. This is one payment, with no seat count.
- The data never leaves your Google account. The app builds its own spreadsheet and Drive folders under your login. Nothing is sent to us, and there is no third-party processor to add to a data map.
- It is genuinely populated on day one. Twelve complete months plus the current month of seeded activity means you can evaluate every chart, report and edge case before you commit any real data.
- The numbers reconcile. Float balances tie to the voucher ledger, voucher counts tie to the float cards, advances issued minus settled equals outstanding, and reimbursement drafts explain the gap between approved and not-yet-batched. This is not decorative demo data.
- You own the code. Code.gs and Index.html are readable and commented. Adding a field, a report or a whole module is a normal afternoon’s work, not a support ticket.
- Nothing to host. No server, no database licence, no renewal. Google Apps Script runs it, and you can read the platform’s own limits in the Google Apps Script quota documentation.
Opportunities for Improvement
An honest list, from working through the deployed build screen by screen.
- The budget chart plots the top 12 cost centres, not all 18. The Budget Against Actual By Cost Centre chart sorts by budget amount and draws the largest twelve, while the card above it says 18 cost centres and the table below returns all 18. The chart is not wrong, but a caption saying “top 12 by budget” would stop people counting bars. The same pattern applies to the Expense Summary by Category chart, which plots the ten biggest of the 20 rows the table returns.
- Some seeded audit-log rows are dated slightly ahead of the capture. On a freshly built database, a handful of Audit Log entries carry timestamps up to about a day after the current date. It is a seeding artefact in the demo data only and disappears as soon as your own activity starts; if it bothers you, delete those rows before go-live.
- All ten seeded sign-in accounts sit on one branch. Every demo user is attached to Pune Branch regardless of role, which slightly understates how branch scoping looks in practice. Set the branch on each account under Users when you create your own.
- Seeded voucher descriptions and categories are randomised independently. You will find a “photocopy charges” voucher filed under Taxi & Local Conveyance in the sample data. Your own vouchers pick the category from the dropdown, so this is cosmetic — but it is worth knowing before you judge the category report on demo numbers.
- The Archive register is empty on a new install, by design. The screen explains this clearly, but a first-time buyer expecting a filled table should know the first archive is meant to be run once you have a year or two of history.
- Email notifications depend on your Gmail send quota. Float and approval alerts go out through the Apps Script mail service under your own account, so heavy alerting on a free consumer account will hit the daily limit. Alerts can be switched off entirely in Settings.
Best Practices
- Open the live demo before anything else. Ten minutes across the admin, employee, custodian and auditor logins will tell you more than any feature list.
- Change all ten seeded passwords the moment you deploy, then delete the accounts you do not need. Passwords are hashed, so a lost one is reset rather than recovered.
- Set the thresholds before you enter data. Tier 2, tier 3, the voucher ceiling, the maximum advance, the settlement window, the service level and the mileage rate all live in Settings, and existing records keep the values they were saved with.
- Put real policy limits on your expense categories. The flagging engine is only as useful as the limits and receipt rules you give it — that is the single setting that turns this from a register into a control.
- Give each branch float a replenish-below threshold you will actually act on, so the Needing A Top Up card means something.
- Count the cash on a schedule, with a witness. The count sheet is only evidence if it is regular.
- Run Recalculate Actuals after any bulk approval, and read Budget vs Actual by Cost Centre before the month closes rather than after.
- Archive once you have eighteen months to two years of history. Google Sheets has practical size limits, and the archive takes its verified Drive copy before removing anything.
- Keep a copy of Code.gs before you edit it, and remember that editing the code changes nothing until you publish a new deployment version.
Explore Relevant Templates
If you are building out a finance back office on the same Apps Script foundation, look at the Debt Collection Agency Management System Web App and the Credit Union Member Management System Web App — same role model, same audit trail, different ledger. For something far lighter that a single person can run, the Petty Reimbursement Data Entry System in Excel covers reimbursements alone in one workbook. If what you actually need is reporting rather than transaction capture, the Payroll Management Dashboard in Google Sheets and the Personal Finance KPI Dashboard in Power BI are worth a look. Browse the whole Web Apps collection for the rest of the range.
Frequently Asked Questions
Can I try it before buying?
Yes. A full live demo of the Expense & Petty Cash Management System Web App is linked near the top of this post, with all ten seeded accounts across six roles. Those credentials are public on purpose — it is a shared demo instance we reset, not anybody’s live data. After purchase you deploy your own private copy in your own Google account.
Where is my data stored, and can anyone else see it?
The Expense & Petty Cash Management System Web App builds its Google Sheets database and its Drive folder tree inside your own Google account when you run setup. Nothing is transmitted anywhere else and NextGenTemplates never holds, sees or processes your expense data. Securing and operating your deployment lawfully remains your responsibility.
Does it read receipts, or connect to my bank or corporate card?
No. Receipts are uploaded as images or PDFs and stored against the claim line or voucher in Drive, but nothing performs OCR on them. There is no bank feed and no corporate-card feed — “Corporate Card” is only a payment-mode value on a record. If OCR and card feeds are what you need, a paid platform is the honest answer.
How long does setup take?
About 15 minutes. Creating the Apps Script project, pasting the two files and deploying takes roughly five minutes; the one-button database build does the rest. Setup is staged and resumable and schedules its own continuation, so it never fails halfway through on a free Google account.
How does this compare to SAP Concur, Expensify or Zoho Expense?
Those platforms charge $5-15 per user per month and add OCR, card feeds and accounting connectors. The Expense & Petty Cash Management System Web App gives you tiered approvals, branch petty cash floats, reconciled cash counts, budgets, sixteen reports and a full audit trail for one payment with the source code included — without OCR, card feeds or accounting integration.
Can I change the currency and the approval limits?
Yes. The demo is seeded in INR, and the currency code, currency prefix, both approval thresholds, the voucher ceiling, the maximum staff advance, the settlement window, the mileage rate and the print size are all Settings fields. Company name, address, tax registration and financial year print on every voucher, claim and report.
Is there a user limit?
No. There are no per-user fees and no seat limit in the Expense & Petty Cash Management System Web App — you add accounts under Users and assign each one of the six roles. Google Workspace’s own Apps Script quotas are the only practical ceiling.
About the Author
Built by PK — Microsoft Certified Professional with 15+ years of Excel, Google Sheets, Apps Script and Power BI experience. Founder of NextGenTemplates, reaching 300K+ subscribers across YouTube channels. Every template is hand-built and tested before release.
Conclusion
The Expense & Petty Cash Management System Web App is not a spreadsheet with a form bolted on. It is a 25-screen application with a real permission model, a cash ledger that reconciles, a budget engine that computes rather than accepts, and an audit trail that will survive being asked questions. It stops short of OCR, card feeds and accounting integration, and it says so plainly — because for most teams the expensive problem is not data entry, it is that nobody can prove who approved what.
Open the live demo first. Sign in as the auditor, then as a custodian, and see how much of your current process the role model already describes. If it fits, it is one payment and about fifteen minutes of setup.
👉 Click here to purchase the Expense & Petty Cash Management System Web App
✅ Instant download · One-time payment · No subscription · No per-user fees · Full source code
🎥 For step-by-step video walkthroughs, visit YouTube.com/@NeoTechNavigators
📅 Last updated: September 2026



