Ledgr/Documentation/Reports
Reports & analytics
Watch the lesson: Read your profit and loss and trial balance (2:03).
Financial, tax, management and compliance reports on one screen, plus a builder for the one nobody wrote — driven by the same period picker and exportable.
Reports & analytics is included from Business upwards. The dashboard's own KPI row and cash-runway ring work on every plan, including Free.
Choosing a period
Every report uses the same picker: a month, a quarter, your financial year, or a custom range. Balance-sheet style reports ask for a single as at date instead of a range. The period you pick is stamped on the export, so a PDF sitting in someone's inbox still says what it covers.
The financial statements, and the ledger under them
Scroll the table sideways to see every column.
| Report | What it shows |
|---|---|
| Income statement | Revenue, cost of sales, gross profit, operating expenses, other income, tax and net profit — presented on IFRS for SMEs lines |
| Balance sheet | Current and non-current assets with accumulated depreciation, current and non-current liabilities, and equity (share capital, retained earnings, any other reserves on a line of their own (a balance left on 3500 Opening Balance Equity shows there, with a warning and a year-end checklist item until it is cleared), and this year's profit — the same lines as the annual financial statements), as at your chosen date. A director's loan is a liability or, when the director owes you, a current asset — see a director's or shareholder's loan |
| Cash flow statement | Indirect method — from profit to cash — split into operating, investing and financing activities. Interest paid has its own line, in operating activities, and is the cash that left the bank, not the interest expensed; a loan's current portion is part of the same debt, so moving it to current liabilities moves no cash. A transaction that moves no cash is not in any section: a dividend declared and not yet paid, equipment bought on account and not yet paid for, an asset taken on hire purchase. They are listed beneath the statement as non-cash transactions, and the cash appears in the year it is paid (a dividend as a financing outflow). Equipment on a supplier bill that is still unpaid at the end of the period is left out and listed the same way. In the year you moved to Ledgr the statement covers the whole year, from last year's closing trial balance, as the annual financial statements do; only when your books begin at your opening trial balance does it start the day after it |
| Monthly and quarterly columns | The income statement, balance sheet and cash flow laid out month by month or quarter by quarter for the period, with a total column that is the period's own statement, and beside it last year's figures and the variance when you ask for a comparison |
| Funds | For a non-profit that tracks its funds on an analysis dimension (name one "Fund" in Settings and mark a value restricted when a donor has specified its purpose): each fund's balance brought forward, its income and expenditure for the period, and the balance it carries forward. Income with no fund is shown as unallocated, and the funds' total surplus is checked against the income statement. Open a fund for the report you send its donor. Restricted funds also appear as a Funds note in your annual financial statements |
| Rent roll | For a landlord: every lease on a recurring invoice, with its property, unit, tenant, rent, next escalation and the rent it brings, the deposit required and the deposit held (the amount taken less what was applied or refunded, tied to the Tenant Deposits Held account), and what each tenant owes and has let fall past due on the date you choose. The amounts owed are the same ones the aged debtors report shows |
| Cash forecast | Cash per your books today, then week by week for the next 30, 60, 90 or 180 days: invoices and bills by their due dates, the invoices your recurring schedules will raise, your next payroll's net pay and the VAT and PAYE your next returns will ask for. Open any week to see what makes it up, and open any line to go to its document |
| Management packs | Choose the reports for your month-end or board pack, add a cover and your commentary, and produce the whole pack as one PDF for last month or the financial year to date — or schedule it to arrive by email. Each report in the pack is the same report you see on screen for that period |
| Ratios | Current and quick ratio, debtor, creditor and stock days, gross and net margin — each showing the two figures it divides, taken from the statements above, and "n/a" where there is nothing to divide by |
| Trial balance | Every account with its opening balance, movement and closing balance, and whether debits equal credits |
| General ledger | Full transaction detail per account, with a running balance and the brought-forward figure |
| Journals | Every posting Ledgr made and why, plus where you enter your own |
| Chart of accounts | Add, rename and retire the accounts you post to. It lives here rather than in Settings because it is ledger data, not a preference |
| Loans | On Period Close: each borrowing's terms, its schedule, the part due within twelve months and the interest earned — see loans and borrowings |
| Fixed asset register | Assets, SARS wear-and-tear rates, the depreciation run and disposals — see fixed assets |
| FX revaluation | Restates the foreign-currency balances that were still owed at the date you choose — invoices, and the credit notes and customer credit you owe back, which move the other way (a payment made after that date does not take a document out of it, so running a past month again gives the same answer), and the money your books hold in a foreign bank account, at a date you choose and posts the gain or loss, leaving the documents alone. A foreign bank account is restated from what your books hold for it, so a statement line you have not yet matched or coded changes nothing. Run it at each period end, or a foreign debtor is carried at whatever the rate was on the day you invoiced |
Showing an account on a different line of the statements. The annual statements and their lead schedules put each account on a line by its type and its place in the chart. If you judge that an account belongs elsewhere — “Other Receivables & Prepayments” as an other current asset, say — open it in the chart of accounts and choose Shown on the statements as. The account moves on the statements, the balance sheet report and the cash flow, its lead schedule marks it as moved, and nothing it posts to changes. Choose As the chart classifies it to put it back. Cash and bank accounts, a director’s loan and the investment in a subsidiary cannot be moved: the loans register and the group own where they appear.
Supplier bills sit in operating expenses, not in cost of sales, unless the category you posted them to says otherwise — so if gross margin looks wrong, check the category on the bills before you doubt the report.
Loans and borrowings
A loan in your books is only a balance until Ledgr knows its terms. Under Period Close the Loans card keeps a register: who lent the money, the loan account it is booked to (2010 for a long-term loan, 2020 for an instalment sale), the amount, the yearly interest rate, the day it was advanced, the number of monthly instalments and the first instalment, plus the bank's own instalment if you have it and any security given. From those terms Ledgr works out the schedule, and the schedule decides three things you would otherwise have to do by hand:
- Current and non-current. The capital due within twelve months of the date on the balance sheet is shown under current liabilities as Current portion of interest-bearing borrowings, and the rest stays non-current (IFRS for SMEs section 4.7). You never move it with a journal, and the cash flow statement treats the two as the same debt. A group does the same: the consolidated balance sheet and the group's annual statements split each subsidiary's registered loan at that subsidiary's own closing rate, exactly as its own statements do.
- Interest. At each month end press Accrue the interest to this date: Ledgr debits Interest Paid and credits Accrued Loan Interest (2121) for the interest earned since the last instalment, and takes it back the next morning, because the instalment you pay pays that interest. Pressing it twice for the same date adds nothing. The accrued interest is part of the borrowing on the balance sheet.
- The tie to the ledger. The card compares each loan account with what the schedules say should be owed on it, and the accrued interest with what the accruals booked. A difference means a loan is not on the register or an instalment was coded away from its schedule.
- Fees and below-market loans. A fee the bank charged to arrange the loan is part of what the loan costs, not an expense on the day: code it to the loan's account (a fee the bank kept from the advance is already there, because less money arrived) and enter it as the loan's fees. A loan at a rate below what a similar loan would cost — an interest-free loan from a shareholder, say — is entered with that market rate, and Ledgr carries it at what its payments are worth at that rate: the difference is posted on the day it was advanced, to the owners' capital account when the lender is an owner lending as owner, or to Sundry Income otherwise. Each month-end accrual then charges part of the fees and the discount as interest at the loan's effective rate, so by the last instalment the whole of them has been charged and the loan is nil (IFRS for SMEs 11.13 to 11.20).
- Finance leases. A vehicle or machine you lease on terms that pass you its risks and
rewards — usually for most of its life, at payments worth about what it costs — is recorded with
POST /api/rented-leases/finance: the monthly payment, the number of payments, the rate implicit in the lease (or what borrowing would cost you), the item's fair value and its asset class. Ledgr recognises the asset and the obligation at the lower of the fair value and what the payments are worth at that rate; the obligation becomes a loan on this register, so its schedule splits each payment into finance charge and capital and the balance sheet splits it current and non-current, and the asset joins the fixed asset register, depreciated over the lease term unless you expect to own it at the end (IFRS for SMEs 20.9 to 20.12). Code each payment as you would a loan instalment. Payments are monthly, in arrears unless you say they are in advance (the first on the day the lease starts, which is then paid at once rather than owed). Initial direct costs (the legal fees or commission of arranging the lease) are added to the asset; the payment in advance and those costs leave the bank account you paid them from, on that account's own ledger (with several bank accounts, choose which; or name another account that paid them). Record one under Reports → Period Close → Loans, Record a finance lease. The annual financial statements' Finance leases note states the carrying amount of the assets held under finance leases, by class, at each year end (IFRS for SMEs 20.13(a)).
When you pay an instalment, code the bank line in two parts as the schedule shows: the interest to Interest Paid and the capital to the loan account. The annual financial statements then state each loan's terms and the maturity of what is still to be paid. A loan can be deleted until interest has been accrued on it.
A director's or shareholder's loan
Money between you and a director, member or shareholder is a loan, never equity. Equity is what is left after every liability, and a loan has to be repaid. Ledgr keeps these on account 3400 Shareholder / Members Loan and shows them by what the balance says:
- The company owes the director (a credit balance) — Loans from directors, a current liability on the balance sheet and in the annual financial statements, because it is repayable on demand unless a written agreement says otherwise. The related-party note prints the terms of the loan — whether it is secured, whether interest is charged and when it is repayable — exactly as you state them under Statement set details, and asks for them until you do; it never assumes the loan is unsecured or interest free.
- The director owes the company (a debit balance) — Loans to directors, a current asset. It never shows as negative equity. A loan to a director is financial assistance to a related person, so the annual financial statements' related-party note names section 45 of the Companies Act (a special resolution and the solvency and liquidity test) and the tax that can follow when it bears no interest or less than SARS's official rate: a deemed dividend under section 64E(4) of the Income Tax Act, and section 7C when the loan is to a trust connected to the director. The same words appear as a warning on the statement set, which says what the dividends tax comes to for each 1% of SARS's official rate on the balance outstanding all year (20% of 1%, less the interest the director actually pays). Ledgr does not hold the official rate, which moves with every Reserve Bank decision, so confirm the terms, the rate and the authority with your accountant. A close corporation is not under section 45: section 52 of the Close Corporations Act, 1984 forbids it to lend to a member, to another corporation in which its members together hold more than half, or to a company a member controls, or to give security for their debts, without the express written consent of all the members obtained beforehand, and a member who allows it without that consent must make good the corporation's loss. For a close corporation the warning and the note name section 52 in place of section 45.
In the cash flow statement, money a director lends the company and repays to them is a financing flow; money the company lends a director, and the director repays, is a loan the company made, so it is an investing flow, Loans to owners (advanced) / repaid (IFRS for SMEs 7.5(e) and (f)).
The account can change sides during the year, and each column of the statements puts it on the side it was on. Accounts opened before this change were set up as equity; the balance sheet and the statements read their balance in the same way, and the account now sits among your liabilities on the trial balance and the chart of accounts.
Prepayments
A bill paid ahead for a service — a year's insurance, an annual licence, rent paid in advance — is an expense on the day it is coded unless you code it to 1330 Other Receivables & Prepayments. Then list it under SARS → Income → Prepaid expenses with the day paid, the amount, the first and last day of the service and the expense account it is released to. At each month end Ledgr releases the part of the payment whose service has been received by then, counted by days, from 1330 to that account (IFRS for SMEs 2.36), so 1330 ends at nil on the last day of the service and each month carries its own share. A payment listed late is caught up at the next month end; the list shows what has been released so far. A payment listed without an expense account is not released by itself: release it with a journal, or add the account.
Management reports
| Report | What it shows |
|---|---|
| Departmental P&L | The income statement with a column per branch, department or project — see below |
| Cost centres | Where you set those branches, departments and projects up |
| Aged debtors | Current, 30, 60 and 90-plus buckets with a chart, and whether it agrees with the debtors control account |
| Aged creditors | The same for what you owe, against the creditors control account |
| Sales & margin | What you sold by item, by customer and by salesperson — quantity, revenue, cost of sales and the margin on each, with credit notes taken off — and what you bought by item and by supplier. It says whether its totals agree with the income statement |
| Budget vs actual | The budgets you set on your accounts against what was posted, as a chart, with the variance in rands and as a percentage |
| Budget by account | The same figures as a table, where you set each account's monthly budget and filter by cost centre |
| Project profitability | Revenue, cost and margin per job, drawing on time entries, parts and allocated purchases. It lives in Job Cards; the card on this screen takes you there. For a margin per branch, department or project across the whole ledger, use the departmental P&L |
| Break-even analysis | What has to be sold to cover fixed costs at your current margin: revenue, variable and fixed costs, contribution margin, break-even revenue and margin of safety — see below |
Both ageing reports state whether they agree with their control account and by how much. A debtors ageing that quietly disagrees with the balance sheet is worse than no report at all, because every figure on it looks reasonable and somebody will act on one.
Break-even
A break-even point turns on one thing your ledger does not record: which costs move with sales and which stay put. So the report starts from a convention and shows you every account it counted, so you can correct it.
- Cost of sales counts as variable and operating expenses as fixed until you say otherwise. Sales commission is an operating expense that is really variable; a production supervisor's salary is a cost of sale that is really fixed. Tap Fixed or Variable beside any account to change how it is counted, and Use default to go back. The choice is kept on the account, so every period you look at uses it.
- It is read off the income statement for the period you pick, so its revenue, cost of sales and operating expenses are the statement's own, and it says so. Other income and tax are left out, because neither moves with sales.
- Break-even revenue is fixed costs divided by the contribution margin ratio; the margin of safety is how far this period's revenue sits above it — or, when the period traded below break-even, how far short it fell.
- With no revenue in the period, or variable costs as large as revenue, there is no break-even point, and the report says which of the two it is rather than printing a number.
One company, several branches
A business with depots in three cities usually does not want three sets of books — it wants one VAT return and three columns. That is what a cost centre is: a tag on the transaction, marked branch, department, project or other.
- Reports → Cost Centres, and add them
Until you do, nothing anywhere asks you which branch a document is for. A single-location business never sees the field.
- Tag as you go
The field appears on the invoice wizard, expense capture, the bill modal and the employee record, labelled with your own word for it. Unallocated is always offered, because a shared overhead genuinely belongs to no branch.
- Reports → Departmental P&L
One column per cost centre, Unallocated, and the company total.
- It says whether the columns add up. The total column is the real income statement, not the branch columns pushed together — and the report states explicitly whether they reconcile to it.
- Everything posted before you started tagging sits in Unallocated, which is honest. Nothing is backfilled and no history is rewritten.
- Payroll splits by employee, from the cost centre on their record, read live — so moving somebody between branches moves their cost from the next run onwards. Staff cost is usually the biggest line on a branch P&L, which is why this half matters most. PAYE, UIF and SDL stay pooled: they are filed as one company figure and splitting them would look like more detail while meaning nothing.
- Trial balance and general ledger take the same filter, including the brought-forward balance — so a branch's running balances are that branch's, not the company's.
- Two more ways to slice the books. Under Reports → Cost Centres → Dimensions, name a second and a third dimension — a project and a fund, say — and add their values. An invoice, a bill, an expense and a journal line can carry one value of each beside its cost centre, and the Departmental P&L splits by whichever dimension you choose, with its own Unallocated column and the same check that the columns add up to the company's income statement.
Cost centres are for one legal entity with several places. If each one has its own VAT number and its own books, that is multi-company instead. Splitting one business across two entities means filing one VAT201 from two sets of books, which is a much bigger problem than a missing column.
Tax reports
- VAT analysis — input against output VAT, broken down, and reconciled against the VAT control accounts. This is the report to read before you generate a VAT201
- PAYE summary — the monthly employer tax position behind the EMP201. The card opens SARS Returns, where the EMP201 for each month is prepared from the payroll runs
- Provisional tax estimate — an IRP6 built from your year-to-date figures. The card opens SARS Returns, where the IRP6 is prepared
- Annual tax pack — the year-end bundle a practitioner asks for, in one download
- Audit trail — who changed what in your books, and when
The audit trail
Reports → Audit Trail lists every change to your books for the period you choose, newest first: invoices, quotes and credit notes created, changed, sent or voided; payments recorded or removed; bills; journals posted or reversed; periods closed or reopened; bank lines imported and matched; stock, assets and contacts. Each line says who did it, when, the document it was about and what changed, such as an invoice's old total and its new one.
- Filter by person and by kind of record — choose the person from everyone who has changed your books (an accountant who visited is listed too), and the kind from Sales, Purchases, Expenses, Banking, Journals, Periods, Contacts or Stock — and export every matching line as a CSV or a PDF, not only the page on screen.
- What Ledgr does on a schedule is named as Ledgr's — a recurring invoice raised, a month-end depreciation journal, a bank feed import — so no entry appears without saying where it came from.
- A supplier's bank details changing, a void and a closed month being reopened are flagged as warnings. A bank account is shown by its last four digits only.
- Every invoice, bill and journal has its own History on its detail screen: the same lines for that one document, for anyone who can open it.
- Who can read it. Anyone who can view reports, which includes an Accountant. Sign-ins, roles and payroll changes are not part of the books and stay in Roles & Permissions → Audit Log. Someone who can reach only some companies of a group cannot open it, because the trail covers every company.
- Kept and kept intact. Changes to the books are kept for at least seven years for a company or close corporation (the Companies Act, s24) and five years for a sole proprietor, partnership or trust (the Tax Administration Act, s29), whatever your audit retention setting. Ledgr cannot edit a line once it is written.
The annual tax pack
Pick the financial year and download one zip holding what that year produced: the trial balance, income statement and balance sheet, the fixed-asset register, the year's VAT201s, the EMP201s and the EMP501 reconciliation where you run payroll, the ITR14 working with its supporting trial balance, and the year's audit trail. Every file is the same output the report or return produces on its own screen.
- Nothing is left out quietly. The screen lists what the pack holds and what it does not, and a README inside the zip says the same: a return your plan does not include, one your role cannot read, a VAT or payroll period that has not ended, or a company that is not a VAT vendor or has no employees.
- A return that does not pass SARS's own checks stays out — a missing reference number, a period that does not balance — and the README names the reason, exactly as SARS Returns refuses to download it.
- Ledgr prepares these files; it does not submit them. Capture or upload each return on eFiling or e@syFile, or hand the pack to your tax practitioner.
Compliance reports
- Annual financial statements — statutory year-end statements with notes and
comparatives. A close corporation that is neither audited nor independently reviewed gets a
Report of the Accounting Officer page, stating what section 62 of the Close Corporations Act asks the
accounting officer to report on, within three months of the statements being completed, and the four matters the
officer must report to the Registrar by registered post (section 62(3)) — and, when the statements show
liabilities exceeding assets, that this is one of them; the officer issues and signs it. An audited or reviewed
close corporation still appoints an accounting officer (section 59(1)), and its page says the officer's report
belongs in the set too. The notes carry the date the statements were authorised for issue and by whom
(IFRS for SMEs 32.9), key management personnel compensation in total from the payroll (33.7) and, for a company the
Companies Act requires to be audited, each director's and prescribed officer's pay by name from the payroll — gross
pay, the employer's retirement-fund and medical aid contributions and any compensation for loss of office (section 30(4),
with names required from 22 May 2026); mark a prescribed officer on their employee record under Payroll, and add pay
made outside the payroll yourself, the operating-lease
commitments of the leases you rent (20.16) and, for a partnership, the appropriation of the profit to each
partner's current account. The first year that begins on or after
1 January 2027 is the first under the third edition of the IFRS for SMEs, and its basis of preparation
says so and what changed (Section 23, revenue). Once the directors have approved them, press Approve and lock the year
(you need approve rights, and the date approved must be captured under Details first; for a company,
so must the name of the person who prepared the statements or supervised their preparation, with their professional
designation if they have one, because section 29(1)(e) of the Companies Act puts both on the first page).
The year-end checklist comes first: approving is refused while a draft journal or open batch is
dated in the year, a control account does not tie to its records, a take-on difference sits on
3500 or an asset is not depreciated to the year end, and the refusal names each one. The foreign
revaluation and the VAT201s are reminders only, and the periods are what approving locks.
Ledgr then locks every month of the year, from its first day, including months before your
first entry, so nothing can be posted into it. A posting dated anywhere in an approved year
is refused with a message that says to reopen the year from the statements or to date the
entry after the year end. Ledgr keeps the
statements exactly as approved together with a fingerprint of the books they were built from.
From then on the screen, the PDF and the Excel file show the approved statements, not a
fresh calculation, and the details can no longer be edited. If the books are ever changed
behind an approval, the statements still show what was approved and a warning names the
figures that moved. To correct an approved year, press Reopen the year, give the
reason, fix the books and approve again with a new date. Who reopened it, when and why stay
on the statements and in the audit trail. Reopening is how Ledgr corrects an approved year
before its statements are issued.
An error in a year whose statements have already been issued is corrected in the next set instead (IFRS for SMEs 10.21): post the correcting journal in the current year, then name it under Details → Prior-period error, with what the error was, whether it happened last year or before, and (for last year) the income or expense account it belongs to. The comparatives are restated as if the error had not happened — the column says “restated” — this year’s results leave it out, and a note states the error and the correction to each line. An error from before last year restates the opening balances instead.
- Period close — lock a month so its figures stay put. Closing is what stops a correction landing in a period you have already reported on. Locking through a date locks every month up to it, back to the start of the financial year your books begin in, even months before your first entry. A month you have not closed and have not approved in annual statements stays open, whether or not it has a period row. A month your accountant closes or locks while working in your books is theirs to reopen: your own sign-in is refused with a message that says so, for as long as they are linked to your books. A month you closed yourself stays yours to reopen. A reviewer signs a closed month off (the person who closed it does not review it while a colleague who can approve reports exists), and the sign-off comes off if the month is reopened. The owner or an admin can also set an amount from which a hand-typed journal is posted by a second person who can approve: the person who made it saves it as a draft and the second person posts it. A business of one person is never held to that rule
- Accountant access — who can see your books, the invitations addressed to you, and the queries between you and your accountant. It is a tab in Settings rather than a report on this screen. The accountant's own client console is a separate screen on their side; see running a practice
- B-BBEE scorecard — all six elements with your points against each and the resulting level, drawing on the procurement and payroll data already captured. Use it to see where a level is slipping before the verification appointment, not after
Custom report builder
- Reports → Custom Builder → New report
- Choose how to group it
Tap a period — month, calendar quarter, calendar year or the whole period — then up to three of account, statement section, customer or supplier, cost centre and, on a plan with Multi-company, company. Columns are chosen by tapping, not dragging.
- Choose the figures
Revenue, cost of sales, gross profit, gross margin, operating expenses, other income, tax and net profit.
- Filter it if you need to
To particular statement sections, or to one cost centre.
- Run it, then save it
Run reads the report off your books for the period on the bar. Save it and it joins your saved reports; opening one re-runs it against your books as they stand, not a copy of an old answer.
Every row is the income statement for its slice of the ledger, so a report with no filter totals to exactly the income statement for the same period — and it says whether its rows add up to those totals. A customer's figures come from the invoices and credit notes raised to them; a posting with no customer or supplier is shown as its own row rather than dropped. Export CSV takes the table as it is on screen.
Exporting
The statements and the management reports export to PDF, Excel or CSV. PDF for sending to a bank or a funder, Excel when someone is going to pivot it, CSV when it is feeding another system. All three are the same table — every column and total the screen shows, including the ageing's tie to its control account — so a PDF, a workbook and a CSV of one report cannot disagree. A custom report exports as CSV, and the annual tax pack downloads as a zip.
Scheduled reports
Set a frequency, a format and a list of recipients, and the report is generated and sent without anyone remembering to do it. The report arrives in the email body and as an attachment in the format you chose — PDF to read and file, CSV to open in a spreadsheet. Schedules can be paused and resumed — useful for a monthly pack that should not go out mid-audit.
A scheduled report covers the same period the report shows on screen — the financial year to date — so a statement and a balance sheet sent together agree. The trial balance and the departmental P&L can be scheduled too, and so can a saved custom report: press Schedule beside it under Saved reports.
Each schedule shows when it last ran and what happened: who it was sent to, or why it was not sent.
Reconcile the bank, approve any payroll run still in draft and clear the expense approval queue. Those three are what usually make last month's numbers move after someone has already seen them.
Live figures in Excel
Exporting to Excel gives you a snapshot. If you have built a model on top of Ledgr's numbers, what you want is for the model to fetch fresh ones — without anyone re-exporting and re-pasting, which is where a monthly pack goes wrong.
Each report is available as a flat table at a URL, which Excel's Power Query can refresh on demand or on open:
let
// Roles & Users → API Keys, scope reports:read
Key = "ledgr_…",
Url = "https://www.ledgrsa.com/api/report-tables/trial-balance",
Source = Json.Document(
Web.Contents(Url, [Headers = [Authorization = "Bearer " & Key]])
),
Table = Table.FromRecords(Source)
in
Table
Swap trial-balance for general-ledger,
income-statement, balance-sheet, aged-debtors,
aged-creditors, vat-analysis, budget-vs-actual,
stock-valuation or stock-aging. Add
?from=2026-03-01&to=2027-02-28 to pin a period, or leave it off for the
current financial year. The stock valuation is taken as at the to date. GET /api/report-tables lists them all.
If you would rather not write any M at all, append ?format=csv and use
Data → From Web. Every cell is quoted, so an account name containing a comma
cannot split into two columns.
Everywhere else in the API an integration trades its key for a short-lived token. Excel
cannot do that — Power Query fetches a URL, it does not run a login — and a workbook that
refreshes monthly cannot hold a token that expires hourly. So this one route accepts the key
itself, and is narrowed to match: read-only, reports only, and it refuses a key without the
reports:read scope. Give the workbook a key of its own so it can be revoked
without disturbing anything else, and remember that a key pasted into a shared workbook is
readable by everyone who opens it.
This is not a report designer, and it deliberately does not try to be one — the layout, the pivots and the formatting stay yours, in your workbook, where you already know how they work. Ledgr's job is to keep the numbers underneath them current.
Common problems
| What you see | What to do |
|---|---|
| "Invalid date … — expected yyyy-MM-dd" | A malformed date is refused, never defaulted. Answering a different period from the one asked for is how a figure gets reconciled against the wrong month, so every report on this screen would rather fail than substitute. |
| "A report period has to start before it ends" | The two dates are the wrong way round; both are printed in the message. |
| The income statement and the balance sheet disagree | Check the period. Both default to the financial year to date. The dashboard's own tile is labelled "trailing 12 months" and is a different question. |
| Aged debtors will not agree with a past month's balance sheet | Pass the date. The ageing re-derives the position at that date — payments after it are reversed out — and checks against the control account at the same date, so the two agree to the cent. |
| The control difference on an aged report is not zero | That figure is doing its job: it is the gap between the age analysis and the control account in the ledger, and it is the one place a posting problem surfaces. Read it as a real difference to investigate rather than a display fault. |
| A departmental column does not add up to the total | The report says so explicitly rather than leaving you to add a row of figures. The tolerance scales with the number of columns, because each column's profit rounds to cents independently — so a rand out is a real break and a few cents is not. |
| Everything is in "Unallocated" | Cost centres are optional, and nothing posted before you created your first one carries the dimension. Nothing is backfilled, which is the honest answer: tag new documents and the columns fill from there. |
| The report shows no cost-centre columns at all | The empty state distinguishes two different situations — no cost centres exist (a setup task) versus cost centres exist and nothing is tagged (a data-entry one) — so read which one it says. |
| "costCentreId must be a UUID or the word …" | An unparseable filter is refused rather than widened to the whole company. A filtered report that quietly answers with everything is the worst outcome, because every figure on it is real and all of them are wrong for the question asked. |
| "Your company details are not set up yet" | Open Settings → Company, fill in your business details and save — that creates it. |
| "This company is not part of a group structure" | Consolidated reports need a parent and at least one subsidiary. See Multi-company. |
| Turnover reads nil on the ITR14 | Almost always an imported chart of accounts using a different word for income. Ledgr recognises the common alternative names; if a figure is still missing, check the account's type on the chart of accounts rather than its name. |
| A scheduled report never arrives | Open Scheduled Reports and read the schedule's last run — it says whether the report was sent, and if not, why. If it says it was sent, check the spam folder, then contact support. |