Skip to content

Journal Control

Open in Nocthink

Module: Accounting · URL: /accounting/journal-control · Responsible role: F.A.T Manager · Also used by: Owner/Director (full); docs/role.md gives Accounting Staff read access, but the route needs accounting.approve, so Accounting Staff can't open it today

Journal Control — journals ordered by number from JV-2023-0011 (opening balances, 747,500.00), FY2023 pledges and the 500,000.00 Whitcomb endowment gift, the JV-2025-0001 Konrad-Adenauer-Stiftung grant receipt (Project Fund, GR-AM6G24C, 21,661.54), then the 2025 manual payroll, office rent and research travel journals, with date, source, source number, wrapped description and plain-number debit and credit, under All sources / All balances / All statuses dropdowns

Screenshot: Sarah Hall (Finance Manager, also holds the F.A.T Manager role), Nocthink Demo Institute demo data. Status is cut off at the right edge and Balance is off-screen; scroll the table sideways to see them (every journal shown is Posted and Balanced).

Why I use this page

Journal Control is my check before posting and before closing a period. It lists each journal as a single row: where it came from, its totals, whether it balances, and whether it is posted, ready to post or blocked. From it I build the list of drafts to post or send back before I move the closing date in Period Close.

What's on the screen

  • Header — the title Journal Control and a description. There are no actions; the page is read-only.
  • Toolbar:
    • A Sources dropdown (reads All sources when nothing is picked): Manual Journal, Donor Invoice, Purchase Invoice, Vendor Payment, Sale, Project Fund, Payroll, or a transaction type (Grant Receipt, Expense, Advance, Advance Settlement, Allocation).
    • A Balances dropdown (All balances, Balanced, Unbalanced) and a Statuses dropdown (All statuses, Posted, Ready to Post, Blocked, Rejected).
    • A sort/view control and Search journals…, which searches the journal number.
    • The dropdowns and the search run on the server, so they cover every journal, not just the page on screen.
  • Table:
    • Journal No. stays in place when I scroll sideways. Date follows (Dec 31, 2023).
    • Source and Source No. show where the journal came from, for example Project Fund with the grant number GR-AM6G24C.
    • Description wraps at word boundaries and is clamped to two lines; hover over it to read the full text.
    • Debit and Credit are plain numbers in the base currency's format, without a currency symbol (21,661.54, 747,500.00).
    • Status is the posting status. Balance is red when the journal is Unbalanced.
  • Footer — the row count and pager. The server sends 100 journals a page, ordered by journal number; the pager moves through every page.

How I …

Build my posting list

  1. Open Accounting → Journal Control.
  2. In Statuses, pick Ready to Post. These are balanced journals that haven't been posted yet.
  3. Note the journal numbers, then post each one from Journal Entries with Post (in the row) or Post balanced journal (on the detail page).
  4. If a post is refused because of a grant rule (outside the grant period, or the funder's prior approval needed), enter the reason the prompt asks for (at least 10 characters). A frozen grant or an unallowable cost can't be overridden; send those journals back to Accounting Staff.

Find journals that can't be posted

  1. In Statuses, pick Blocked (or in Balances, pick Unbalanced). These rows have a non-zero difference between debit and credit.
  2. Compare Debit and Credit to see the gap.
  3. Ask the preparer to fix the lines. Draft journals can be edited only through the API today.

Review postings by source before closing a period

  1. In Sources, pick one source, for example Payroll or Purchase Invoice.
  2. Check that every journal for the month shows Posted.
  3. When nothing is left unposted for the period, set the closing date in Period Close.

Access & permissions

  • The route needs accounting.approve (lib/domain-routes.ts), which in the seeded roles means the F.A.T Manager. Owners and Directors also pass.
  • The API itself needs only accounting view authority, so Accounting Staff could read the data through the API. In the UI the menu is hidden from them, even though docs/role.md marks Accounting Staff as R.
  • Nothing can be changed on this page. Posting happens in Journal Entries.

Caveats

  • An unposted journal is Ready to Post when it balances and Blocked when it doesn't. Rejected journals (from source flows) have their own status; they can't be posted.
  • A balanced journal dated on or before the closing date still shows Ready to Post, but posting it fails with "The books are closed through …".

Limitations

  • Rows don't link to their journals, and there is no post button here.
  • No date-range or period filter, and no export.
  • Journal Entries — where I open and post the journals listed here.
  • Period Close — set the closing date once everything for the period is posted.
  • Trial Balance — confirm the posted ledger balances after the posting run.
  • Exceptions — F.A.T. AI exceptions that may be holding up journals.
  • Transactions — transactions that show up here as a source type.