STAGING · DB=togra_stagin · changes here do not affect prod
Eolas · Togra Log in →
Eolas · Using Togra

Cuntasaíocht (Accounts) — module user guide

Last verified 7 Jun 2026


# Cuntasaíocht (Accounts) — User Guide

The double-entry book of record in Togra: how it works, surface by surface, how every other module's money movements post into it, and how it makes a production company's statutory accounting trustworthy by construction.


1. What Cuntasaíocht is for

Most of Togra is management finance — budgets, finance plans, cost reports, the producer's view of the money. Cuntasaíocht is the other thing: the statutory book of record. It is a real double-entry general ledger per legal entity, with a chart of accounts, balanced journals, accounting periods, a trial balance that always balances, VAT returns, financial statements and a year-end close. It's the set of books your external accountant and Revenue care about.

Its defining properties:

  • Double-entry and balanced. Every economic event posts a journal whose debits equal its credits. Nothing enters the books unbalanced.
  • Immutable. Posted journals are never edited — corrections are reversing entries, so the audit trail is complete. Periods open, close and lock.
  • Per legal entity. One ledger per entity: an S481 DAC for each scripted/animation/doc production (its own trial balance, P&L and balance sheet), or the producer company holding many S487A titles, separated by project.
  • Reconciles by construction. The cost report's actuals and the trial balance are both queries over the same journal lines, so the producer's cost report and the accountant's books can't drift apart.

Crucially, almost everything in Cuntasaíocht is fed from elsewhere. The producer raises POs and codes invoices; the production floor submits expenses and per-diems; sales invoices and petty cash post in. Cuntasaíocht is where all those subledgers land as balanced journals, and where period-end work (VAT, statements, year-end, WIP release, exports) happens on top.

Access is admin / lead only — the book of record is a lead-level surface.


2. The accounting model, end to end

How a production's money flows through the books:

  1. A chart of accounts is seeded per entity (assets, liabilities, income, expense, plus the production-specific accounts — WIP 1800, AR 1100, AP control 2100, input VAT 1900, output VAT 2200, payroll liabilities 2210/2220, bank 1200, income 4000).
  2. Commitments — a purchase order records a commitment (Open); its open value shows in the cost report's Committed column but isn't yet a journal.
  3. Posting the cost — an AP invoice is captured, three-way matched to the PO, approved and posted: Dr WIP 1800 (net, by cost code) + Dr input VAT 1900 / Cr AP control 2100 (gross). Net hits the cost report's actuals automatically.
  4. Other subledgers post in the same way — petty cash, PCard, crew expenses, per-diem (Dr WIP by cost code), and outbound sales invoices (Dr AR 1100 / Cr income 4000 / Cr output VAT 2200).
  5. Settling — a payment run batch-pays approved invoices and remits payroll (net wages 2220 + PAYE/PRSI/USC 2210), writing the bank side and producing a SEPA pain.001 file.
  6. Period-endVAT (input from purchases, output from sales) drafts the VAT3/VAT100; bank rec matches the statement to the ledger.
  7. StatementsP&L and balance sheet per entity from the trial balance, with production cost capitalised as WIP and released to cost of sales as a title earns revenue (the individual-film-forecast method); year-end close rolls the result to retained earnings.
  8. Export — the whole book hands off to Xero / Sage / QuickBooks / Big Red Cloud.

(The full technical model — account numbers, posting templates, the WIP/entity policy, 31 December year-ends and invoice-basis VAT — is documented in ACCOUNTING-ARCHITECTURE.md.)


3. How the module is laid out

The Accounts home (cuntasaiocht.php) groups the book of record into sections:

  • Ledger & journals — the general ledger.
  • Purchases → payments — purchase orders · accounts payable · payment runs (the subledger chain).
  • VAT & bank — VAT return · bank reconciliation (+ PCard).
  • Period-end & statements — financial statements (P&L / balance sheet / year-end) · WIP release.
  • Export — GL / accounting exports.
  • Related — in Airgead — cost report · petty cash · production-accountant · invoices (receivables): ledger-posting surfaces that stay canonical in Airgead but are surfaced here.
  • Related — on the production floor (Bordáil) — crew expenses · per-diem: crew-side spend that posts into the ledger, canonical in Bordáil.

The quick-access strip (sub-nav) surfaces Overview · Ledger · Purchase orders · Invoices (AP) · Invoices (AR) · Payment runs as primary, with PCard, VAT, Bank rec, Financial statements, WIP release and GL exports behind More ▾.


4. The surfaces in detail

Ledger & journals

General ledger (ledger.php) — the book of record itself: the chart of accounts, balanced double-entry journals (immutable; corrections are reversing entries), monthly periods (open / close / lock), and a trial balance that always balances. One ledger per legal entity — an S481 DAC per production, or the producer company holding many S487A titles separated by project. Everything below posts here.

Purchases → payments (the subledger chain)

Purchase orders (purchase-orders.php) — the commitment register. A PO moves Draft → Open (committed) → Part-received → Received (or Cancelled). Open and part-received POs feed the cost report's Committed column; a PO is a commitment, not yet a journal — receiving converts it. PO approval over a configured threshold escalates to admin sign-off.

Accounts payable (accounts-payable.php) — vendor invoices coded to budget lines. An invoice moves Draft → Approved (posted) → Paid (or Cancelled); only drafts can be edited. On approval it three-way matches to the PO and posts: Dr WIP 1800 (net, by cost code) + Dr input VAT 1900 / Cr AP control 2100 (gross). The net flows straight into the cost report's actuals; pending approvals surface in the "what needs me" inbox.

Accounts receivable (accounts-receivable.php) — the sales-invoice subledger, symmetric with AP: broadcaster advances, sales-agent MGs, licence fees, service-mode billing. An invoice moves Draft → Sent (posted) → Part-paid → Paid (or Cancelled). Issuing posts Dr AR 1100 / Cr income 4000 (net) + Cr output VAT 2200 (VAT, into the VAT3 output box); recording a receipt posts Dr bank 1200 / Cr AR 1100 so the receivable clears — partial receipts post only the delta, and cancelling unwinds both legs. (The same invoices are also reachable from Airgead's Invoices for the producer's financing view; this is the accountant's project-scoped subledger.)

Payment runs (payment-runs.php) — batch-pay approved invoices and remit payroll (net wages 2220 + PAYE/PRSI/USC 2210 to Revenue), writing the bank side and producing a SEPA pain.001 bank file (or CSV).

PCard (pcard.php) — purchasing cards: import a card statement (CSV), code each transaction to a cost code + VAT, approve → it posts to the ledger and flows into the cost report; paying the card bill settles the card liability.

VAT & bank

VAT return (vat-return.php) — drafts the Irish VAT3 (T1 / T2 / T3 / T4) or UK VAT100 straight from the ledger: input VAT from purchases + petty cash, output VAT from sales. Hand the figures to your accountant. Bank reconciliation (bank-rec.php) — upload a bank statement (CSV) and auto-match its lines to ledger transactions.

Period-end & statements

Financial statements (financial-statements.php) — Profit & Loss and Balance Sheet per entity, the trial balance, and the year-end close that rolls the result to retained earnings. Production cost is capitalised as WIP and released to cost of sales as a title earns revenue. WIP release (wip-release.php) — release capitalised production cost (WIP, account 1800) to cost of sales as a title earns revenue, using the individual-film-forecast method.

Export

GL / accounting exports (accounting-exports.php) — CSV / general-ledger exports for Xero, Sage, QuickBooks or Big Red Cloud (Suppliers / Sales / Purchases / Expenses), so the books hand off cleanly to whatever your accountant runs.

Ledger-posting surfaces that live elsewhere (cross-listed here)

The Accounts home surfaces, for discoverability, the surfaces that post into the book of record but are canonically operated in another module:

  • In Airgead (production finance): Cost report (reads the ledger's WIP journal lines for its actuals), Petty cash (float spend posts to the ledger), Production accountant (the PA dashboard), Invoices / receivables (issued sales invoices post Dr AR 1100 / Cr income 4000 / Cr output VAT 2200 — the AR mirror of AP).
  • On the production floor (Bordáil): Crew expenses (approved claims post WIP by cost code + input VAT against a crew-reimbursements payable; a payment run settles it) and Per-diem (accruals post WIP by cost code when paid).

Each keeps its canonical home; the cross-listing means everything that touches the book of record is reachable from the book of record.


5. Cuntasaíocht and the rest of Togra

The governing principle: if it's a statutory double-entry record, it lives in Cuntasaíocht; if it's the producer assembling or controlling the money, it lives in Airgead — but the two share one ledger.

  • Airgead → Cuntasaíocht. Airgead's finance plan, budgets and tax-credit work feed the production; its cost report reads the ledger; its petty cash, invoices and PA dashboard post into it. The cost report and the trial balance are the same journal lines seen two ways, so they reconcile to the cent.
  • Bordáil → Cuntasaíocht. The production floor's crew expenses and per-diems post journals into the ledger as they're approved/paid; payroll is remitted through Accounts' payment runs.
  • Teoranta is the company forecast one level up; Iarratas holds the funding-application packs. Neither is the book of record — that's Cuntasaíocht alone.
  • The approvals inbox surfaces the book-of-record items that need a person: pending PO approvals and pending AP invoice approvals (including over-threshold escalations).
  • Entity resolution. When any module posts for a project, Togra resolves the right ledger entity automatically: the DAC for an S481 production, otherwise the producer (parent) company — so a project's costs always land in the correct set of books.
Audit note (2026-06-07): the Cuntasaíocht surfaces are correctly homed and internally coherent — the ledger, the PO→AP→payment-run subledger chain, PCard, VAT, bank rec, statements, WIP release and exports are all book-of-record surfaces in the right place. The one gap found was discoverability: crew expenses and per-diem post to the ledger but weren't cross-listed on the Accounts home (unlike cost report / petty cash / invoices). That's now fixed with a "production floor (Bordáil)" cross-reference section.

6. How this makes accounting easier for a production company

  • One book of record, reconciled by construction. Because the cost report and the trial balance read the same journals, the producer's numbers and the statutory books are the same numbers — no month-end reconciliation between two systems.
  • Audit-ready by default. Immutable journals, reversing-entry corrections, and locking periods mean the trail is always complete — what an S481 compliance report or an external audit needs.
  • The right books per credit. S481 productions get their own DAC ledger (its own statements); S487A titles are separated by project inside the producer company — automatically, because posting resolves the entity for you.
  • Period-end from the ledger, not a spreadsheet. VAT3/VAT100, P&L, balance sheet, WIP release and year-end close are all generated from the journals, so they're consistent and fast.
  • Nothing posts twice or goes missing. The PO → AP → payment-run chain (with three-way match and immutable posting) and the subledgers that feed in (petty cash, PCard, crew expenses, per-diem, sales invoices) mean every cost is captured once, coded once, and settled once.
  • Hands off cleanly to your accountant. When you'd rather your accountant run Xero or Big Red Cloud, the GL export gives them the suppliers, sales, purchases and expenses in their format.

7. Worked examples

A. A cost through the books. Raise a PO (Open — it shows as Committed in the cost report). When the invoice arrives, capture it in Accounts payable, three-way match to the PO, approve — it posts Dr WIP 1800 (net) + Dr input VAT 1900 / Cr AP control 2100, and the net appears in the cost report actuals. Batch it into a payment run to pay the supplier (Cr bank 1200 / Dr AP control 2100) and produce the SEPA file.

B. Month-end VAT. Open VAT return: input VAT is pulled from posted purchases + petty cash, output VAT from posted sales invoices; review the VAT3 boxes and hand them to your accountant. Run bank rec to match the month's statement to the ledger.

C. A title earns revenue. As a film starts earning, use WIP release to move the capitalised production cost from WIP (1800) to cost of sales by the individual-film-forecast method, so the financial statements show the matching cost against the revenue. At the entity's 31 December year-end, run the year-end close to roll the result to retained earnings.

D. An S481 production's books. Because the project has a DAC, every PO/AP/expense/per-diem posts to that DAC's ledger automatically. Its financial statements (trial balance, P&L, balance sheet) stand alone for the S481 compliance report, and the GL export hands the DAC's book to the external accountant who files the claim.


This guide reflects the Cuntasaíocht module as shipped. For the deep technical model see ACCOUNTING-ARCHITECTURE.md; the Airgead guide covers the production-finance side that feeds these books, and the in-app manual covers the surrounding modules.

Sources

  • · cuntasaiocht.php (Accounts home — the section map + cross-listed ledger-posting surfaces)
  • · lib/gl.php · lib/gl_cost_sync.php (general ledger, entity resolver, cost sync)
  • · lib/accounts_payable.php · lib/purchase_orders.php · lib/payment_runs.php (subledger chain + verified status enums + posting lines)
  • · lib/invoices.php · lib/petty_cash.php · lib/worker_expenses.php · lib/per_diem.php (subledgers that post in)
  • · ACCOUNTING-ARCHITECTURE.md (the deep technical reference)