Daily Accounts
Daily Accounts is your shop's day-to-day bookkeeping screen, combining three views in one page: Expenses (every rupee spent), Profit Summary (P&L with revenue vs cost breakdown), and Cash Book (a unified ledger of every income and expense entry).
Overview
Daily Accounts is reached at /accounting and organised into three tabs switched via the URL's ?tab= query parameter — Expenses (?tab=expenses), Profit Summary (?tab=pl), and Cash Book (?tab=ledger) — so each tab is directly bookmarkable/linkable.
The Expenses tab is where you log day-to-day spending — rent, utilities, staff wages, vendor payments — each tagged with a category, payment mode, and optionally a vendor with PAN/TDS details for tax compliance.
The Profit Summary tab computes Revenue, Cost of Goods Sold (COGS), Gross Profit, Operating Expenses and Net Profit for any date range, with a monthly bar chart and a category-wise expense pie chart.
The Cash Book tab merges every income entry (sales) and expense entry into one chronological ledger with running Total Income, Total Expenses and Net Balance figures.
This whole page requires the Advanced plan tier and the billing feature.
Before You Start
- You must be scoped to a single branch (not "all branches") to add a new expense — the page shows an error toast if you try to add one while viewing a company-wide or unit-wide scope.
- Create/Edit/Delete/Export permissions on Expenses are controlled per staff role by your Admin.
- To auto-fill vendor PAN and TDS section when logging an expense, the vendor must already exist as a Supplier (see the Suppliers page).
Step-by-Step Guide
1 Log a new expense
- On the Expenses tab, click Add Expense.
- Enter the Amount and Date (both required).
- Enter a Description of what the expense was for (required).
- Pick a Category (or leave Uncategorised) and a Payment Mode (Cash, Bank, UPI, Card).
- Enter Paid To / Vendor and an optional Reference / Bill No.
- Optionally, under "Supplier & TDS Details", select an existing Supplier from the dropdown — this auto-fills Vendor name, PAN, TDS Section and Party Category from that supplier's master record and locks those fields from manual editing.
- If not selecting a supplier, you can still manually enter a Party PAN (validated against the standard PAN format), pick a TDS Section (194C Contractors, 194H Commission, 194I Rent, 194J Professional Services, 194Q Purchase of Goods) and a Party Category (Individual, Company, HUF, Firm, AOP, BOI, Local Authority, Artificial Juridical Person) to have BazaarPOS calculate and record TDS.
- Add optional Notes and click Add Expense.
2 Manage expense categories
- Click Categories in the Expenses toolbar.
- Type a new category name, pick one of the 10 preset colours, and (Admins only) choose a Scope (This branch only / All branches in unit / All branches company-wide), then click Add.
- Click the pencil icon next to an existing category to rename it inline, or the trash icon to delete it — deleting a category does not delete its expenses, they simply become Uncategorised.
3 Filter, view and export expenses
- Use the search box, the From/To date pickers, and the Category dropdown to narrow the list.
- The stat cards above the table show Total Expenses for the selected range plus your top 3 categories by spend.
- Switch between Table and Grid card views.
- Click column headers (Date, Description, Mode, Amount) to sort.
- Click the export icon (Export permission required) to download the filtered expense list as a spreadsheet.
4 Read the Profit & Loss report
- Switch to the Profit Summary tab.
- Pick a date range with the From/To pickers, or use a quick preset: This Month, This Year, or Last Year.
- Click Refresh to recompute.
- Review the 6 stat cards: Revenue, COGS, Gross Profit (with margin %), Operating Expenses, Net Profit (with margin %), and Tax Collected.
- Scroll to the Monthly Breakdown bar chart (Revenue, COGS, Expenses, Net Profit per month) and the Expenses by Category pie chart.
- The table below the charts lists Revenue, Expenses and Net for every period in range.
- Click the export icon (Export permission required) to download the period breakdown as a spreadsheet.
5 Browse the Cash Book (combined ledger)
- Switch to the Cash Book tab.
- Review the 3 summary cards: Total Income, Total Expenses, and Net Balance for the selected date range.
- Filter by date range and by transaction Type (All Transactions / Income Only / Expenses Only), or use the This Month / This Year quick presets.
- Each row is tagged and colour-coded — income rows have a light green tint, expense rows a light red tint — and every row shows either a Debit or Credit amount, never both.
- The table footer on the current page shows a running Page Total for Debit and Credit.
- Click the export icon (Export permission required) to download the ledger as a spreadsheet.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Amount * | The expense amount; must be a positive number. |
Date * | The date the expense was incurred. |
Description * | Free-text description of what the expense was for; required. |
Category | Optional grouping tag with a colour, managed via the Categories modal; expenses left blank show as Uncategorised. |
Payment Mode | Cash, Bank, UPI or Card — used for both the expense record and Cash Book display. |
Paid To / Vendor | Name of who was paid; becomes required if a PAN is entered, and is locked/auto-filled when a Supplier is selected. |
Reference / Bill No. | Optional free-text reference such as an invoice or bill number. |
Select Supplier | Optional dropdown of existing Supplier records; picking one auto-fills Vendor, PAN, TDS Section and Party Category and disables manual edits to those fields. |
Party PAN | Validated against the standard Indian PAN format (5 letters, 4 digits, 1 letter); required to be a named vendor when supplied. |
TDS Section | One of 194C/194H/194I/194J/194Q, used to calculate and record TDS on this expense when a PAN is present. |
Party Category | Individual, Company, HUF, Firm/Partnership, AOP, BOI, Local Authority, or Artificial Juridical Person — affects TDS treatment. |
Notes | Free-text internal notes on the expense. |
Revenue / COGS / Gross Profit / Operating Expenses / Net Profit / Tax Collected | The six P&L stat cards; Gross Profit and Net Profit turn red when negative. |
Monthly Breakdown chart | Bar chart of Revenue, COGS, Expenses and Net Profit per calendar month within the selected range. |
Expenses by Category chart | Pie/donut chart of expense totals grouped by category colour. |
Cash Book Type filter | All Transactions / Income Only / Expenses Only — narrows the combined ledger view. |
Debit / Credit columns | Debit = money out (expenses), Credit = money in (income/sales); each row populates only one of the two. |
Tips & Best Practices
- Set up a handful of expense Categories (Rent, Utilities, Salaries, Supplies…) before you start logging expenses — it makes the P&L category pie chart and top-3 stat cards meaningful from day one.
- Always attach a Supplier to recurring vendor expenses (rent, wholesale purchases) rather than typing the vendor name fresh each time — it keeps PAN/TDS details consistent and saves typing.
- Use the P&L "This Year" / "Last Year" quick filters to compare year-over-year performance before your annual tax filing.
- Cross-check the Cash Book Net Balance against your actual bank/cash position periodically — a persistent mismatch usually means a sale or expense was recorded outside these two flows (e.g. manually adjusted stock).
Troubleshooting & FAQ
"Select a branch from the scope selector" error when adding an expense.
The Party PAN field shows an error even though I typed a valid-looking PAN.
Why is Vendor Name suddenly required?
The P&L Monthly Breakdown chart is empty.
I deleted a category but its expenses vanished from reports.
🧑💻 Developer Notes
Source component(s):
frontend-app/packages/pos-react-lib/src/pages/AccountingPage.jsx
Backend endpoints used:
GET /accounting/expensesPOST /accounting/expensesPUT /accounting/expenses/:idDELETE /accounting/expenses/:idGET /accounting/expenses/statsGET /accounting/expense-categoriesPOST /accounting/expense-categoriesPUT /accounting/expense-categories/:idDELETE /accounting/expense-categories/:idGET /accounting/profit-lossGET /accounting/ledgerGET /ledger/suppliers
Related tables (db-core repositories):
ExpenseExpenseCategorySaleSupplier
Redux slices:
scope (selectCurrentScope / getScopeQueryParams)
Feature flag key: billing (requires advanced plan tier or above)
The three tabs (Expenses / P&L / Cash Book) are separate internal components (ExpensesTab, PLTab, LedgerTab) that all live in one file and are switched by reading/writing the tab URL search param via useSearchParams, so each tab keeps its own independent loading/pagination state without unmounting the others' filters. Charts use recharts (BarChart / PieChart). Expense stats and the P&L endpoint are computed server-side; the frontend only formats and charts the response.