Sample output from the Journal Entry Testing Tool prompt in the NetSuite AI Prompt Library, run against a NetSuite test account. Every name and number here is test data. Back to the post · The library

Substantive testing · NetSuite TD3016323

Journal Entry Testing

Population analysis, risk stratification, and exception testing of every posted journal entry in the account, with five exceptions and one series that should not be called a beginning balance.

Prepared 2026-09-23 · Scope: all 88 posted journal entries, October 2024 to October 2026 · Source: NetSuite via SuiteQL · Prompt: Journal Entry Testing Tool, NetSuite AI Prompt Library v1 · Standard Review depth

Population Summary

Scope: every posted journal entry in the account, 88 entries dated October 2024 to October 2026, 26.8 million dollars of debits, all balanced. Materiality for selection was set at $25,000 of total debits, which captures 59 entries and 99.8% of the value. The full population was tested, not a sample, because 88 entries is small enough to read.

The population divides into two groups that need different treatment. Forty-eight entries share the memo "Beg Balance Entries", one per month per subsidiary for 24 months, 62 or 63 lines each across about 50 accounts, 25.8 million dollars of debits, 96% of everything. They credit 19.8 million dollars to revenue, which is most of the revenue the account has ever recognized. All 48 were created on a single day, September 10, 2026, and are backdated by as much as 709 days. Whatever they are, they are not beginning balances. A beginning balance is posted once. These recur monthly and carry a full income statement each time.

The other forty are manual entries of the ordinary kind, 1.01 million dollars in total. Eleven have no description. Eight share the memo "Negative Cash Flow" and move round amounts between a bank account and equity. Three undescribed entries created on the evening of September 14 move $262,000 in round amounts between balance sheet accounts. Those eleven are the exceptions this test is designed to find.

Journal entries
88
all posted, all balanced
Beginning-balance series
96%
of debits, 48 monthly entries
Without a preparer
79
of 88; no approval status on any
Exceptions raised
5
see Testing Results
2024-1022024-1122024-1222025-0122025-0222025-0322025-0422025-0522025-0622025-0722025-0822025-0922025-1032025-1132025-1222026-0132026-0222026-0332026-0422026-0532026-0642026-0772026-08102026-09202026-102

Entries by transaction month. Two per month is the beginning-balance series; the rise from June 2026 is the manual entries, most of them created in September.

High-Risk Entry Identification

Risk indicators applied: period-end date (day 28 or later), creation outside 08:00 to 18:00, weekend creation, round amount above $10,000, description under ten characters, revenue credited without a cash or receivable debit, expense without cash or payable, P&L-only entries, and top-side keywords in the memo.

IndicatorEntriesNote
After-hours32creation timestamps between 03:00 and 07:00 and after 20:00
Inadequate description1511 with no memo, 4 under ten characters
Weekend11all Saturday, September 12
Round amount118 Negative Cash Flow entries plus 3 undescribed
Expense without cash or AP10accruals; expected for the type
P&L only4reclassifications between expense accounts
Period-end3day 28 or later
Beginning balance series (48)$25,774,072Negative Cash Flow series (8)$680,000Undescribed entries (11)$271,296All other manual (21)$63,600

The beginning-balance series does not trip the combination flags, because each entry touches bank, receivables, payables, and equity as well as the P&L. It trips the description test in substance rather than in length: the memo is present, and wrong. That is why the population summary, not the indicator table, is where this series shows up. A screen built on keywords would have passed it.

Sample Selection

All 11 manual entries above materiality were tested in full. The 48-entry beginning-balance series was treated as one recurring population: the first, a middle, and the last entry were examined line by line and the remainder compared for structure. Five entries below materiality were read for description and account combination. Nothing was sampled at random, because nothing needed to be.

EntryDateCreatedDebitsDescriptionAccount typesIndicators
JE1552026-06-012026-09-12 03:32$175,000Negative Cash FlowBank, EquityAfter-hours, Weekend, Round amount
JE1522025-11-012026-09-12 03:29$120,000Negative Cash FlowBank, EquityAfter-hours, Weekend, Round amount
JE1582026-09-012026-09-16 07:31$120,000Negative Cash FlowBank, EquityAfter-hours, Round amount
JE1622026-09-142026-09-14 21:14$112,000noneBank, OthCurrAssetAfter-hours, Round amount, Inadequate description
JE1532026-01-012026-09-12 03:30$100,000Negative Cash FlowBank, EquityAfter-hours, Weekend, Round amount
JE1602026-09-012026-09-14 20:57$85,000noneAcctRec, OthCurrAssetAfter-hours, Round amount, Inadequate description
JE1612026-09-012026-09-14 21:00$65,000noneAcctPay, OthCurrAssetAfter-hours, Round amount, Inadequate description
JE1512025-10-012026-09-12 03:28$50,000Negative Cash FlowBank, EquityAfter-hours, Weekend, Round amount
JE1542026-05-012026-09-12 03:30$50,000Negative Cash FlowBank, EquityAfter-hours, Weekend, Round amount
JE1562026-07-012026-09-12 03:33$50,000Negative Cash FlowBank, EquityAfter-hours, Weekend, Round amount
JE1502026-03-032026-09-10 18:18$33,70000000005/1-12102024-181841AcctPay, BankAfter-hours

Testing Results and Exceptions

  1. E1. The beginning-balance series is misdescribed and cannot be relied on as described. Forty-eight monthly entries labelled as beginning balances post a complete monthly income statement and balance sheet movement, 19.8 million dollars of it to revenue. They were created in one batch on September 10, 2026. Business purpose is undocumented. Management should explain whether these represent a migration of history from another system, in which case the memo should say so and the source should be retained, or something else.
  2. E2. Three undescribed round-amount entries, September 14, 2026. JE160 ($85,000, receivables to other current asset), JE161 ($65,000, payables to other current asset), and JE162 ($112,000, bank to other current asset), created between 20:57 and 21:14, no memo, no preparer. Every risk indicator the prompt carries fires on these. Supporting documentation is required before they can be accepted.
  3. E3. The "Negative Cash Flow" series. Eight entries totalling $680,000, each a round amount between $15,000 and $175,000, each moving cash against equity, created within six minutes of each other at 03:28 on a Saturday and backdated to eight different months. Cash-to-equity movements with a memo that describes a symptom rather than a transaction need a business purpose.
  4. E4. No preparer or approval evidence on 79 of 88 entries. The preparer field is empty on 79 entries and the approval status on all 88. Segregation of duties and authorization cannot be tested. This is a control gap, not a finding about any entry.
  5. E5. Entries dated in the future. Two rent accruals are dated October 1 and 2, 2026, after the test date, and are already posted. The period is open, so this is permitted by the system; it should not be permitted by policy.
Note on the beginning-balance series. The series is regular to the point of being mechanical: the same 50 accounts every month, the same line count, income credited in a smooth progression from $437,500 to $490,417. That regularity is consistent with a scripted history load into a demonstration or migration account. If that is what this is, the finding is a documentation failure rather than a misstatement. The test cannot tell the difference, and it is not supposed to. Human review required.

Recommendations

Appendix: Data Lineage

IDTypeNameHandleScopeUsed forComplete
DL-001SuiteQLJournal headerstransaction (type = Journal)All 88 entriesPopulation, dates, memos, preparer, approvalYes
DL-002SuiteQLJournal linestransactionline join transactionaccountingline join account3,076 posted linesDebits, credits, account types, combinationsYes
DL-003SuiteQLCreation timestampstransaction, TO_CHAR(createddate, HH24:MI)All 88 entriesAfter-hours and weekend testsYes

Adaptations from the prompt's templates: amounts come from transactionaccountingline (debit and credit columns) rather than transactionline.amount; account.accttype rather than acctype; transaction.subsidiary is not exposed, so subsidiary comes from the line; the JSON returned for createddate carries no time, so the hour was fetched separately with TO_CHAR; the preparer join to employee was dropped because the creator field is empty on 79 entries; LISTAGG was replaced by aggregation in code.

Queries
SELECT t.id, t.tranid, t.trandate, t.createddate, BUILTIN.DF(t.createdby), t.memo, BUILTIN.DF(t.approvalstatus), t.posting, BUILTIN.DF(t.postingperiod), t.lastmodifieddate, BUILTIN.DF(t.lastmodifiedby)
FROM transaction t WHERE t.type = 'Journal'

SELECT tl.transaction, tl.id, tl.subsidiary, a.acctnumber, a.fullname, a.accttype, tal.debit, tal.credit, tal.amount, tl.memo, BUILTIN.DF(tl.department), BUILTIN.DF(tl.entity)
FROM transactionline tl JOIN transaction t ON t.id = tl.transaction
JOIN transactionaccountingline tal ON tal.transaction = tl.transaction AND tal.transactionline = tl.id
JOIN account a ON a.id = tal.account
WHERE t.type = 'Journal' AND tal.posting = 'T'

SELECT id, TO_CHAR(createddate, 'YYYY-MM-DD HH24:MI'), TO_CHAR(createddate, 'DY') FROM transaction WHERE type = 'Journal'

Appendix: Assumptions and Verification

AssumptionCategoryRationaleSensitivityImpact if wrong
All journals are in the transaction table with posting = TDataSystem constraintHighPopulation completeness
Materiality $25,000 of debitsBusiness logicRoughly 0.1% of total debits; captures 99.8% of valueLowSample selection only; the population was fully tested
Period-end = day 28 or laterBusiness logicPrompt definitionLowThree entries
After hours = before 08:00 or from 18:00Business logicPrompt definitionLow32 entries
Creation timestamp reflects entry timeDataSystem fieldHighTiming indicators; the account's history was loaded in September 2026, so timing describes the load
TestObjectiveResult
G1-001Population completePass 88 headers, 3,076 lines, every header has lines
G1-002Entries balancePass debits equal credits on all 88
G1-003Timestamps presentPass creation timestamp on all 88
G2-001Indicator logicPass computed in code from dates, amounts, memos, and account types
G2-002Approval and preparer testableFail no approval status on any entry; preparer on 9

Confidence: 95% in the population figures and the indicator counts; 85% that E2 and E3 are undocumented rather than fraudulent, given the account's evident use as a demonstration environment; the characterization of the beginning-balance series is reported, not concluded, and requires management's explanation.

Analysis is read-only and derived from live SuiteQL. Customer- and vendor-specific actions require human review before any account change.SuiteStep, LLC