← All guides

Statement won't calculate: find and clear the transactions blocking it

Troubleshooting · 7 min read

Back office desk with receipt stacks and an open coin drawer in front of a closed shop shutter
When calculation fails, the close stops here - with the day's paper.

Statement calculation is a gate. It pulls the day's transactions into statement lines — but only transactions that are present in the central database, inside the date and time range, and not already claimed by another statement. When a statement "won't calculate," comes up empty, or warns and stops, one of a short list of blockers is responsible. Work them in order. (This article goes deeper than our end-of-day overview: that one is the normal close routine; this one is for when the close itself fails.)

What actually blocks calculation

BlockerSignatureFirst place to look
No transactions in the rangeNothing to calculate at allThe date/time range vs. the actual transaction dates — including a POS clock that was changed
Transactions never arrived from the POSCalculation reports missing transactions, or totals are shortHighest Transaction No. at head office vs. on the terminal; replication status
Transactions present but never picked upRecords exist centrally, statement stays emptyPosting Status blank and no Statement No. on the transactions; the unposted-transactions count in Statement Information
A stuck open statement holds the entriesRecalculation changes nothing, day after dayOpen statements — including one with a blank Statement No.
Another open statement covers the same day and timeCalculation finds nothing new to takeOpen statement list for the store and period
End-of-day declaration missingWarning at calculation; counted amounts absentWhether the declaration transaction exists and replicated; Safe Management settings on the terminal

Two of these deserve emphasis because they are the least documented. ArcherPoint's statement-calculation troubleshooting makes the simplest point first: if there are no transactions for the day, there is no statement to calculate — an empty result is not always an error. And a long-running mibuso thread documents the nastiest case in detail: transactions that exist in the Transaction Header, Transaction Sales Entry, and Transaction Payment Entry tables, yet never appear in any statement, because their Posting Status is blank and no Statement No. was ever assigned.

Present or not present? The two-minute triage

Before changing anything, answer one question: do the day's transactions exist in the central (head office) database? Everything splits on the answer.

LS Central has a built-in assist for the first branch. With the Check for Missing Transactions field selected in the Functionality Profile (the profile must be the same for head office and stores), calculation compares the highest Transaction No. in the local database against the highest Transaction No. on each POS terminal via Transaction Server — pulling the latest transactions via Data Director where the terminal's Distribution Location is active for replication. Missing transactions insert a comment into the Statement Comment table, and at the store the calculation displays a page naming the terminals with missing transactions, with the option to abort. Read that page and those comments before overriding anything: they are the system telling you which terminal is behind.

Finding the offending transactions

  1. Start from Statement Information. In the reported mibuso case, the missing records were invisible to the statement but fully visible via BackOffice → Statements → Statement Information, using the assist button next to No. of Unposted Transactions — 234 records, which turned out to be everything that was missing. If that count is non-zero for your day, you have present-but-unposted transactions, whatever the statement says.
  2. Inspect their status fields. In the same case the records carried a Z-Report reference but a blank Posting Status and no Statement No. reference. That combination — sold, reported, never claimed by a statement — is the signature of the present-but-invisible blocker.
  3. Check the Transaction Status table. Forum diagnosis runs both ways: records present in the Transaction Status table for the same transaction number can mean the number was overwritten; the stuck records in the case above were notably absent from it. Either result tells you something — record which one you have before escalating.
  4. Verify date and time on the transactions themselves. A POS whose date was changed stamps transactions outside the range everyone is calculating for. Compare a stuck transaction's date/time against the statement's range before blaming the statement.
  5. Read calculation warnings literally. A dynamicsuser thread reports the warnings "Transaction Header records were found from POS Terminal … 34 were expected" and "End of Day Declaration is missing for Store …, Staff" — in that case replication had completed, the header records matched between store and head office, and the declaration was the last transaction of the day. The fix there was turning on Exclude from Safe Management on the POS Terminal Card. Warnings describe what the calculation believes, which is not always what happened.

Clearing procedure

  1. Snapshot the state. Note the unposted-transaction count, the transaction-number range for the day, and any open statements for the store. You need a "before" to prove the fix worked.
  2. Close upstream gaps first. If any terminal is behind, let replication finish and confirm the highest Transaction No. matches centrally. If an end-of-day declaration genuinely was not done, do it now — and confirm it replicated to head office, not just that it printed.
  3. Look for the blank statement. Open the Open Statement list/table and filter on a blank Statement No. The forum-documented cause: a statement calculated onto a blank statement number leaves a row that holds unposted sales entries, and new calculations never pick them up. If that row exists and shows unposted entries, clear that statement.
  4. Remove competing claims. Confirm there is no other open statement for the same store, day, and time window already holding the period. Two open statements cannot own the same transactions.
  5. If the declaration warning persists despite a posted declaration, check the POS Terminal Card's Safe Management settings — in the reported case, Exclude from Safe Management resolved a warning that survived every data check. Change it deliberately and note the change; it affects how declarations are handled for that terminal going forward.
  6. Clear and recalculate. Where a statement calculated wrongly or holds a phantom state, clearing the statement and recalculating is the documented resolution — the same move that cleared a phantom difference warning in a Dynamics Community thread. Recalculate for the store with the transaction starting and ending dates that match the transactions' actual dates and times.
  7. Review before posting. Calculation succeeding is not the finish line. Review the lines, then post — posting is covered in the end-of-day routine.

What success looks like

Calculation completes with no missing-transaction page and no records-found-vs-expected warning. The No. of Unposted Transactions for the day drops to zero. Statement lines exist for the day, grouped the way your store's Statement Method says they should be — LS divides lines by tender type per staff member (Staff), per POS terminal (POS Terminal), or in total (Total) — and the statement's transaction totals tie back to the POS reports for the day. If the count is not zero or the totals do not tie, the blocker is cleared only partially; go back to the triage question with the new numbers.

Prevention

Version note: forum reports on this failure span LS NAV and LS Central releases, and page names differ slightly between them. The status fields, tables, and clearing order above are the durable part; confirm exact page names in your version's help.

IndexBack to all guides →