Month end
Month end: from agreements to invoices in one pass
It's the last working day of the month. Every agreement needs to bill, every hour that slipped past scope needs to be caught before it is lost, and every invoice that is ready needs to go out. One pass through Billing catches all three: the Approval Queue for what a plan already owes, a client's Ticket Charges tab for the time that will not invoice itself, and the Invoices list for what is ready to send. Nothing gets missed because nothing gets skipped.
What you will have
- Know what a real Approval Queue looks like at the moment nothing is waiting, and read the stat cards around it correctly.
- Read a client's Ticket Charges tab and tell time that will invoice from time that will not, and why.
- Mark a stray time entry billable and see exactly how far that gets it toward an invoice.
- Recognize an already-approved plan invoice and an already-converted quote invoice for what each one is.
- Read a client's own Invoices list the way you would right before sending a reminder.
- See a client's Billing tab exactly as the admin view shows it, with no impersonation needed.
Why it works this way
Marking a time entry billable does not invoice it by itself. Ticket charge invoices are only built once a month, on the 1st, and only for time sitting on a ticket that has actually closed. A billable minute on a ticket that is still open waits on both of those, which is why Items in Queue can still read 0 right after the flag changes.
A quote that converts to an invoice skips the Approval Queue entirely and lands Outstanding immediately, approved by SYSTEM rather than a person. A plan invoice like a Core period's still goes through a person's Approve, so the same client's Invoices list can carry both a SYSTEM-approved row and a person-approved row side by side, and that is expected.
Steps
Start at Billing > Approval Queue and read what is waiting.
Pending Approval reads 0 and Items in Queue reads 0. The queue is clear because this client's Core plan already billed for September, not because there was nothing to check this month. Total MRR $150.00, Total ARR $1,800.00 and Outstanding AR $13.3K sit alongside it as the always-on read of where the book stands.
Start at Billing > Approval Queue and read what is waiting. Open the client's Billing > Ticket Charges tab and read what will not invoice.
Bluebird Dental's Materials, Time and Combined pending charges all read $0.00, and a Time that won't invoice banner names one ticket underneath: #16 Front desk PC will not wake from sleep, 49 minutes. The banner names the reason directly: Billing status 'Out of Scope' has no mapped product. That ticket's own Billing field reads the same Out of Scope ($150.00/hr), so the real reason is what agreement-to-invoice already covers: a billing status with a price still needs a QuickBooks product linked to it before it can post, and this instance has no QuickBooks connected.
Open the client's Billing > Ticket Charges tab and read what will not invoice. Fix one item: mark a stray minute of logged time billable.
Ticket #17, a second front desk PC call still In Progress, had one minute logged Mon, Sep 14 sitting under Non-billable. Opening that entry and clicking its $ icon moved it: Time Entries now reads 0:01 hrs billable instead of 0:00. Nothing about the ticket's status, its billing rate, or its client changed - only that one minute's billable flag.
Fix one item: mark a stray minute of logged time billable. Check the Approval Queue again: Items in Queue still reads 0.
Marking a minute billable does not queue it by itself. Ticket charge invoices are only built once a month, on the 1st, and only for time on a ticket that has actually closed. Ticket #17 is still In Progress, so its newly-billable minute is waiting on both of those, not lost.
Check the Approval Queue again: Items in Queue still reads 0. Open the invoice that already ran this period: Invoice 4.
Bluebird Dental's Core plan billed itself on schedule: Invoice 4, Outstanding, period 2026-09, source Core, one line - Managed Desktop Support (1 @ $150.00) (Sep 2026) - for a $150.00 subtotal and total. Approved By reads Northwind Demo and Approved On Sep 15, 12:38 AM: a person approved this one, the same door agreement-to-invoice walks in full.
Open the invoice that already ran this period: Invoice 4. Open a quote that converted into its own invoice this month: Invoice 7.
Invoice 7 is Outstanding, source Quote, one line - AV Cabling and Mounts, "On-site cabling and wall mounts for the conference room AV refresh" - at $3,200.00, matching its subtotal and total. Approved By reads SYSTEM rather than a person: converting an accepted quote lands it Outstanding immediately, skipping the Approval Queue the way quote-to-invoice describes.
Open a quote that converted into its own invoice this month: Invoice 7. Open the client's Invoices list and read what is Outstanding.
Bluebird Dental carries five invoices, all Outstanding: three Quote invoices (5, 6, 7) at $3,200.00 each, the Core invoice (4) at $150.00, and a Manual invoice (DEMO-INV-2001) at $1,250.00. The Source column is the fast way to tell them apart without opening each one: Core for a plan, Quote for a converted quote, Manual for one typed by hand. Every row here is a candidate to send or follow up on before the month closes.
Open the client's Invoices list and read what is Outstanding. Open the client's Billing tab the way an admin reads it, no impersonation needed.
The same Outstanding $11,000.00, Paid $0.00 and Quotes 4 that a client would see from their own portal are also right here on the admin side, on the client's own Billing overview. There is no need to view as the client just to see what they owe.
Open the client's Billing tab the way an admin reads it, no impersonation needed.
The pages behind each click
Other ways to do this
Elise
Ask her to check the Approval Queue, mark time billable, or list what's Outstanding for a client - same underlying actions, not a lookalike shortcut.
QuickBooks connected
Connect QuickBooks from Settings > Integrations and give the Out of Scope status its own linked product; the same 49 minutes on ticket #16 would then post as a real invoice line instead of sitting in Time that won't invoice.
If it did not work
- If Items in Queue does not move after marking time billable, check whether the ticket itself has closed - ticket charge invoices are only built once a month, on the 1st, and only for time on a closed ticket.
- If a Ticket Charges banner names a status with no mapped product, that status still needs a QuickBooks product linked to it before its time can post - check Settings > Integrations for whether QuickBooks is connected at all.
- If a plan's period does not show up in the Approval Queue, check whether it already billed this month first, the same way Bluebird Dental's September Core period already had before this walk started.
Questions this page answers
What do the invoice source labels mean?
Every invoice carries a source label that says where it came from. Ticket Charges covers items and time from a closed ticket. Ticket means a quote that was tied to a ticket. Quote means an accepted quote with no ticket. Manual means somebody built it by hand. Plan invoices use the plan type, such as Core, License or Add-On. QB Sync marks an invoice pulled in from QuickBooks.
How do plan invoices work?
Plan invoices are made for you on a schedule. That can be monthly, quarterly or annual. They come from a client's active plans. Each line works out its own amount. That can be a synced user or device count, a manual count, a count of tagged things, a Microsoft licence count, or a flat price band by client size. The job runs every day at 7 AM in your instance timezone. Ticket charge invoices are made once a month instead, on the 1st.
Was this helpful?