Every job where Sage and DocuWare disagree, or where billing is stuck. Opening the app
refreshes DocuWare and reads Sage live — fix a job at the source and it drops off on the next refresh.
Loading…
WIP List
The healthy work-in-progress — open on both sides, no problem raised — with where each job
sits on the way to billing. Old rows here are candidates to bill out and force closed.
Loading…
Ready to Close in Sage
Completed work orders that already carry an invoice — the status was
just never clicked to Closed. Billed = register: close it. Billed ≠ register: partial billing, leave it open.
Loading…
WIP Check — Help
Billing at MCC works exclusively from the DocuWare lists — Sage never drives it. When the two systems
disagree about a work order, the money quietly goes missing. This app shows only the disagreements:
a healthy job never appears here, and an empty screen is the goal, not a malfunction. It writes nothing
to Sage or DocuWare.
How it works
Open the app. It shows the result of the last refresh straight away, then refreshes by itself — unless
someone refreshed in the last 5 minutes. Refresh forces one at any time.
A refresh reads every document in the DocuWare AR cabinet (about a minute) and reads Sage live from the
5-minute SageSync tables, then recomputes every queue. Read-only on both sides: nothing is filed or changed.
One refresh at a time. If someone else is refreshing, you see the last result until theirs lands.
Work the queues top to bottom — the money queue is first on purpose. Fixes happen in Sage and DocuWare,
never here; use Assigned + Note on a card to route who does what.
Fixed it? Mark it done to keep your place. The next refresh that sees the fix clears it for good.
WIP List — the healthy jobs the queues skip, with their billing stage, last visit and parts on order.
Close List — Completed WOs that already carry an invoice: billed = register, click them Closed in Sage.
For financial reporting, run Sage's WIP cutoff report: this app makes the WIP right, Sage counts it.
The queues — what each one means and what to do
Unbilled Money — the money queue
Sage says the job is done, but its documents are still stamped INCOMPLETE, so billing will never see it.
Do: stamp the trip documents Complete in DocuWare so the job stages for invoicing. Biggest dollars sort first — start at the top.
Ghost Paperwork
The WO is cancelled, closed, or already invoiced, but a document still sits in a live list.
Do: two possible actions — Invoice Stored if the job was billed, or WO CXL if it never will be
(archives the doc out of the WO doc type; it leaves the export and the finding clears itself next check).
Jumped the Gun
A document is staged for invoicing while Sage still shows the job open — and either side can be the liar.
The Open status is only an echo of the last assignment (adding one flips a WO to Open; deleting it leaves it
there), so "open" often just means a stuck status on finished work. When the board data shows every assignment
completed, the check reclassifies these automatically. Do: check the WO's Assignments tab in Sage; fix whichever side is wrong.
Missing Paperwork
Done per Sage, but DocuWare holds no live WO document, so no packet can ever be built. The pull now reads
ALL doc types, so when the paperwork exists under an archive type the card says so and names the fix —
cancelled (WO CXL) → mark the WO non-billable in Sage; already-billed packet → check why Sage disagrees.
Do: follow the card's story; genuinely missing → chase down the trip paperwork and file it.
Waiting on Signature
The paperwork exists but is unsigned — archived as WO No Signature Archive until the customer signs, which
keeps it out of every billing list. The signed copy arrives under a D-# placeholder and gets re-indexed.
Do: chase the signature. Nothing bills until it lands.
Wrong Doc Type
A live-stamped document under a doc type no billing list reads — almost always an accidental retype
(someone edited the wrong index box). New, never-seen doc types land here too, on purpose.
Do: change the Document Type back to WO in DocuWare.
Signed — Needs Re-Index
A signed WO came back and sits under a D-# placeholder WO number — the normal return path, but it goes
nowhere until re-indexed. Do: open the doc, read the real WO # off the paper, fix the index entry.
Stalled — Nothing Scheduled
Open job, documents waiting, nothing open or scheduled on the board. Nothing will move it on its own.
Split by the job's purchase orders in Sage: Waiting on parts (a PO still outstanding — chase the vendor),
Parts in (received after the last visit — book the trip), or plain stalled. Age counts from the last visit.
Do: schedule it, or complete/cancel the WO if it's actually over. (A job whose assignments are all
completed doesn't land here — it moves to the money queue, because the work happened.)
Fell Between the Lists
The document's stamp combination matches none of DocuWare's list filters (checked against the real list
definitions, captured 2026-08-14) — so nobody working from lists can see it. The card names the failing stamp.
Do: fix the named stamp in DocuWare so the doc lands back in a list. The rules include
3. Portal Reconcile: a Non-OSFN job waiting on Jen's portal check is in a list, not stranded.
Trip Left Behind
The job was invoiced but a trip document is still INCOMPLETE — the completing sweep missed it.
Do: stamp the stray document so it leaves the WIP list.
Half-Swept Job
Some trips staged, others still INCOMPLETE. Do: if it's mid-sweep it clears itself; otherwise stamp the missed trip.
Invoiced, Never Stamped
The invoice exists but the document never advanced to Invoice Stored. Do: advance it.
Never Stamped (TBD)
Still TBD after 14 days — a TBD document appears in no billing list at all. Do: stamp it Complete or Incomplete.
Bad WO Number
The WO # field is blank or not a number, so it can never be matched to a job. Do: fix the WO # on the document in DocuWare.
Step-3 Strays
Informational — historical strays in a list nothing reads any more. Move them out when convenient.
Legend
Red left edge on a card = money queue. This is where revenue goes missing.
$4,120.00Unbilled dollars on this job (Sale − Billed). No figure shown = Sage has no sale value for it — unknown, not zero.
37d73d204dAge of the problem: gray, amber past 60 days, red past 180. A ? means the age is unverified (see FAQ).
OSFN-ColdDocuWare category (billing route).
SuzanneWho this finding is assigned to.
✓ doneMarked done by a user — the fix was made at the source and the card drops to the bottom of its queue. It clears for good on the next refresh that sees the fix; if it comes back later it reopens with the mark wiped.
Missing invoice PDFSwept siblingKnown ghost scenarios (proven 2026-08-14). Missing invoice PDF: Sage generated the invoice but the PDF never entered DocuWare — stamp the doc Invoice Stored. Swept sibling: the job billed and the primary doc is Stored, but this trip doc was stapled into the packet without the stamp — stamp it Invoice Stored. Both are explained in the box above the ghost queue.
$61,300 unbilledQueue total — unbilled dollars across every finding in that queue.
Fields on a finding
Sale / Billed / Unbilled / Cost — Sage work-order header values, live (5-minute sync). Unbilled = Sale − Billed; Cost is actual cost to date.
Billing stage — where the job sits on the road to cash: Open → Done, paperwork in WIP → Portal reconcile (Jen, Non-OSFN only) → Ready to bill → Invoiced → Paid. Invoiced/Paid come from Sage's invoices (daily 5:30 sync).
Last visit — the latest day a tech was on the board for this job (the live board plus its history).
Parts on order — Sage purchase orders on the job with money still on order.
DocuWare list — which DocuWare list each document sits in, worked out from its stamps.
Sage status — Open, Cancelled, Closed, Completed (awaiting invoice), or Invoiced. Shown for context
only: the status is an automatic echo of the last assignment's status, with quirks (adding an assignment flips
a WO to Open, deleting it leaves it there), so the check never uses it to decide whether work is done — it
reads the assignments themselves.
Next assignment — the earliest future dispatch-board booking and who's booked.
Assignments — the WO's dispatch-board assignments by their own status: completed vs open. Any open
assignment — future, past, or parked on a bay — means the job is live and the complete-side queues leave it
alone. All completed means the work is done, whatever the header status says. "No data in sync window" means
the WO's assignments are older than the ±30-day board sync, and the check falls back to the header
heuristics plus the 14-day trailing window.
Age — measured from the best date available: Sage completion date first, then the DocuWare complete date, then the file date. The source is always named.
Hold note — lives in DocuWare, not here, and is shown for context only. It is a plain internal-communication
field: a note's presence proves nothing about whether the job is handled, so it never quiets or changes a finding.
Assigned to / Note — routing labels saved on the card. They survive refreshes and never change what the app computes.
FAQ
Why can't I dismiss a problem? On purpose. Problems clear only when reality stops producing them —
fix the job in Sage or DocuWare and the next refresh clears it. A cleared problem is proof, not a claim.
What does Mark done do, then? It keeps your place, nothing more. Working a long cleanup you'll stamp a document
in DocuWare and move on — Mark done drops that card to the bottom so you don't re-check it next visit, and the tab count
tracks what's left. It is not a dismissal: the card still clears only when a refresh confirms the data changed, and if it
ever comes back the done mark is wiped and it reopens.
I fixed it and it's still listed. Press Refresh. A DocuWare fix shows on the next refresh; a Sage fix needs
the 5-minute sync to pick it up first, so give it a few minutes.
Why did the count go up when nothing changed? Time passed. Jobs cross the 30-day settling window and
documents cross the 14-day TBD line just by aging, and Sage moves on every few minutes.
Why doesn't this show the total WIP dollar value? Deliberate. The queues filter (settling period, live-job rule),
and live data has no accounting cutoff, so an honest total is impossible here. The monthly WIP number for financial
reporting comes from Sage's cutoff report — run it after working the findings, so the change it books is real.
A job is legitimately parked — how do I quiet it? A properly parked job quiets itself: its open bay
assignment on the dispatch board reads as live, so the complete-side queues leave it alone for as long as it
actually sits there. If a finding is raised anyway, the park isn't on the board — either put it there, or use
Mark done to keep your place while you deal with it. Hold notes do NOT quiet findings: they're internal
communication, and a note's presence proves nothing.
What does an unverified age (?) mean? The DocuWare complete date was picked from a calendar defaulting to
today. When it sits within 2 days of the document's modify date, it was probably just accepted as-is — the real
age may be much older.
Why is a stranded-looking job not in the money queue? It has an open dispatch-board assignment —
anything with an assignment still open (future bookings and holding bays like PARTS ON ORDER alike) counts as
live and is deliberately left alone, for as long as the assignment actually stays open. On top of that, anything
worked in the last 14 days gets the same pass — paperwork from yesterday's trip is still in transit, and a job
is not stranded the morning after a tech was on site.
What is the WIP List tab? The opposite of the Check tab: jobs where both systems agree — open in Sage
(or completed awaiting invoice), documents in flight, no finding raised. It exists because "nothing is wrong"
and "nothing should be done" are different: a job parked on a holding bay for 297 days raises no finding, but a
human should still decide whether to bill it out and force it closed. Sorted oldest first with unbilled dollars;
the total is indicative only.
The Sage line says it's stale. SageSync's 5-minute run on the Sage server has not reported in for over
12 hours (it pauses overnight, which is normal). Check the scheduled task on the Sage server.
What does the floor do? Work orders below it are left out unless they are still Open, On Hold or Completed —
so an old document for a long-dead job reads as "below the floor" in Ghost Paperwork. Raise it once the old ghosts are stamped.