Every external auditor asks the same question, and no standard NetSuite report answers it: what changed after the books were closed?

It's one of a family of questions that live in the gaps between reports. A customer's payment sits unapplied while their invoices age into the collections queue, and a collector calls a customer who already paid. A fulfillment shipped weeks ago and the invoice never followed. A vendor bill is stuck in approval on the last day of the month, and the expense lands in the wrong period. Balance reports don't show any of it, because it lives in the links and the timestamps, not the balances. I've been building a set of prompts for exactly these questions, and they'll be in the next release of the Sonar AI Prompt Library.

If you're new to this, Sonar AI is an AI agent that runs inside NetSuite. Every prompt in the library is a playbook that I engineered and tested against live NetSuite data, and you run it inside your own account, against your own records.

The Rules They Share

All of these prompts are read-only. They draft, they flag, they recommend, and a person posts. The accrual prompt goes as far as writing the proposed journal entries line by line, fully specified, but posting happens only after the report is delivered and only with explicit confirmation per entry.

They're also skeptical by default. An accrual candidate is a hypothesis until the evidence supports it. An unapplied payment three days old is workflow, not a finding. A record modified after the close might be a GL-impacting change, or it might be a metadata touch from a system job, and headlining the raw count without that split overstates the problem and destroys credibility with the people the report is for.

And every dollar traces to a transaction id that you can click. I think that's the difference between a report you can act on and a report you have to re-verify.

Financial Close Integrity Audit

This is the one that answers the auditor's question. It correlates transaction modification timestamps against posting-period status across every transaction type, profiles journal-entry behavior at the period boundaries, and maps who holds the ability to reopen periods.

The prompt is honest about what SuiteQL exposes. The period record carries a closed flag, not necessarily a closed date, so by default it treats a modification more than 45 days after period end as post-close, probes for a real close timestamp, and states which method it used. And it reports zero findings as an attestation, because "the post-close modification query runs clean" is exactly the answer the audience wants.

Month-End Accrual Identification and Proposed Journal Review

This one works both sides of the ledger and both directions in time. On the expense side: received-not-billed purchase orders, recurring vendor bills that are missing or under-billed this month, bills stuck in approval, late-arriving invoices, and prepaid balances that haven't moved when they should have. On the revenue side: fulfilled-not-invoiced orders. And it looks for expenses that belong to future periods, not just the ones missing from this one.

Every candidate is classified. A receipt-versus-bill gap may be an accrual, or a deliberate short-bill, or a pending credit, or a data-entry error, and the prompt never presents a review item as a confirmed accrual. It also checks sign conventions before reporting any amount, because vendor bill totals can carry a negative sign in SuiteQL and sales order lines always do.

Orphaned Transaction Chains

NetSuite's transaction flows are chains. Sales order to fulfillment to invoice. Purchase order to receipt to bill. Credit memo to application. Every broken link is money in limbo: shipped-but-unbilled revenue, received-but-unvouchered liability, credits that never found their invoice.

The prompt walks the chains and produces the itemized break list, dollar-quantified and aged. Age is the severity axis. A fulfillment shipped yesterday that's waiting for tonight's billing run is workflow in motion, and the report presents the young cohort that way rather than as findings. It also discovers the account's actual link types before assuming which chains exist, because accounts differ with their features.

Unapplied Cash and Credits Sweep

Unapplied balances are the quietest misstatement in NetSuite. The prompt sweeps all four instrument types, customer payments, credit memos, vendor credits, and deposits, ages every unapplied dollar, and, where the data supports it, points each one at its likely application target. It suggests applications and never performs them.

It also carries a trap that I found the hard way. For payment and credit instruments, the column you'd expect to hold the unpaid amount is null, and querying it silently zeroes the entire sweep, which reports a false all-clear. The correct column is the unused payment amount. That single fact is the difference between the prompt working and the prompt lying, and it's written into the hard rules.

Financial Policy Compliance Report

This is the ERP analogue of an investment-policy-adherence report. Instead of allocation limits, it tests live transactions against financial policy rules: approval thresholds, PO-before-bill coverage, payment-terms adherence, customer credit limits, closed-period postings, and stale open documents. It asks for your policy parameters once, uses labeled defaults where you haven't stated them, and marks every finding derived from a default so you can confirm the threshold.

It distinguishes policy violations, where a rule was broken, from hygiene defects, where the data is too incomplete to test, such as customers with no credit limit set. Both are findings. They aren't the same severity class.

And the Checklist

The Month-End Close Checklist Generator is already in the library, in the free tier, and it's the natural companion to the five above. It reads the account's configuration, such as the subsidiary count, the currencies, and the account types in use, and generates a dependency-sequenced close checklist with ownership, time estimates, and sign-offs, at a depth that matches the environment. A OneWorld, multi-currency account gets subsidiary sequencing and FX revaluation tasks by default.

Wrapping Up

I used to think of the close as a deadline. I've come to think of it as a filter. Everything that was slightly wrong during the month either gets caught before the period locks, or it becomes a fact of the financial statements. These prompts are meant to run before the filter, on the questions that no standard report joins.

The five new prompts will be in the next release of the Sonar AI Prompt Library, in the paid tier. I'll post here when it's out.