Record-to-Report: Period Close Process Mining Analysis
NetSuite account TD3016323 (production, OneWorld, USD) · Case = monthly accounting period · Scope: all 168 monthly periods (Jan 2016 – Dec 2029) for close state; Oct 2024 – Oct 2026 for posting activity · Prepared 2026-09-04 · Revision 1 · Method: SuiteQL via sqlReduce and runSql over accountingperiod, transaction, transactionline, transactionaccountingline, account, systemnote · Third study in the series after Order-to-Cash and Procure-to-Pay · Document numbers link to the source record when opened inside NetSuite
- 0Executive summary
- 1Method, lineage and assumptions
- 2What the account records — and does not
- 3Period close: state and cycle time
- 4Journal population and process model
- 5Reversal, reclassification and approval trail
- 6Who touched what
- 7Intercompany and elimination
- 8Exception registers
- 9Data quality
- 10Findings and recommended actions
- AAppendix A — SuiteQL used
- BAppendix B — Reducer logic
- CAppendix C — Worked hand-check
- DAppendix D — Glossaries and run metadata
0Executive summary
57
Periods past their end date that have never been closed or locked
748 d
Median period-end → close for the 71 periods that were closed
0
Lock / close / reopen events recorded in system notes
40
Genuine journal entries; 6 reversal pairs, 9 tests, 4 pending approval
Record-to-report is the process finance leads most want measured and least often see. In this account it is not so much unmeasured as absent: no accounting period ending after November 2021 has been closed or locked. The 71 periods that were closed (Jan 2016 – Nov 2021) were closed in four bulk batches on four calendar days, a median of 748 days after period end — the shortest interval was 71 days, the longest 1,417. Every one of the 25 periods carrying the account's live transaction history (Oct 2024 → Sep 2026, 6,240 posting transactions, $19.8M gross in 2026 alone) is open to posting with A/R, A/P and GL unlocked, and the oldest unclosed period, Dec 2021, has been open 1,708 days.
Three findings follow from what can be measured:
- The close is a state, not a process. NetSuite records no system note when a period is locked or closed in this account; only
closedondate survives. Cycle time from period end to close is therefore known for 71 historical periods (median 748 days, in four batches) and undefined for the 57 open ones. There is no close checklist activity, no lock sequence (A/R → A/P → All), and nothing that distinguishes a soft close from a hard one. §3.
- Journals are few, but a third of them are reversals or tests. Of 40 genuine journal entries, 6 pairs (12 entries, 30%) are original + reversal, 5 (12.5%) are reclassifications or allocations, and 9 (22.5%) carry a "Test" memo or an Atlas sweep-test external id and post $100–$555 to real bank and A/R accounts in the current period. Four entries ($10,316) sit in Pending Approval with no approver assigned, two of them in periods that have already ended. Only one approval transition is observable in system notes, and it was self-approved by the administrator who entered it. §5.
- Intercompany runs, elimination has never. Three Advanced Intercompany Journals (JE91–JE93, $1,000/month, Sub 2 → Sub 3) and six intercompany operational documents exist; the elimination subsidiary xElim has zero lines in its history, the two accounts flagged for elimination (1910, 2910) have zero postings, and no transaction line anywhere carries
eliminate = T. Consolidated statements have never been eliminated. §7.
1Method, lineage and assumptions
The O2C and P2P studies used documents as objects and link tables as edges. Record-to-report has a different shape: the case is the accounting period; the events are (a) postings into the period, (b) journal entries with their approval, reversal and reclassification lineage, and (c) lock/close actions on the period record. Events of type (c) are read from systemnote; they turned out not to exist (§2), so the period lifecycle collapses to its recorded end state.
| Stage | Count | Note |
Monthly accounting periods (isquarter=F AND isyear=F) | 168 | Jan 2016 → Dec 2029; 71 closed, 57 open past end, 40 future |
| Transactions carrying a posting period (excl. non-posting order types) | 6,292 | 6,254 posting; 38 non-posting (pending-approval journals, deposits-in-transit, etc.) |
| Posting transactions, Oct 2024 → Oct 2026 | 6,240 | 25 types; Journal 84 (1.3%) |
| Journals | 88 | 48 synthetic "Beg Balance Entries" (JE102–JE149, excluded) · 40 genuine |
| System notes on journals | 29 on 9 journals | 1 status transition; 0 on the other 31 journals |
| System notes on accounting periods | 0 | No field on recordtype accountingperiod has ever been noted |
| Intercompany-flagged or paired transactions | 3 + 6 | 3 Advanced IC journals; 3 transfer orders, 1 receipt, 2 PO↔SO pairs |
Assumptions register
| # | Assumption | Effect |
| A1 | Case = monthly period; quarter and year roll-ups excluded. | 168 cases. |
| A2 | Close cycle time = closedondate − enddate in whole days; open periods have undefined cycle time and a "days open" = 2026-09-04 − enddate. | Only the 71 closed periods have a cycle time. |
| A3 | "Genuine journal" = type='Journal' and memo not LIKE 'Beg Balance%'. The 48 synthetic monthly journals are excluded from all journal analysis but retained in posting counts where stated. | 40 genuine journals. |
| A4 | Reversal detected two ways: system field isreversal='T' / reversal populated, OR memo LIKE 'Reversal of%' / externalid LIKE '%reversal-of%'. | 3 system-linked + 3 memo-linked pairs. |
| A5 | Reclassification/allocation = externalid LIKE 'Reclass%' or line memo 'Allocation%' or journaltype containing INTERCOMPANY. | 5 journals. |
| A6 | Test entry = memo LIKE 'Test%' or externalid LIKE 'atlas:%sweep-test%'. | 9 journals. |
| A7 | Actor = lastmodifiedby (and createdby where populated) resolved via BUILTIN.DF; system-note actors from systemnote.name. | Negative ids are system identities (§9). |
| A8 | Late posting cannot be measured from createddate in this account (demo load: 100% of Oct 2024 – Aug 2026 postings were created after period end; see §9). Trandate-vs-period mismatch is measured instead. | 0 mismatches. |
| A9 | Elimination "has run" if any transactionline.eliminate='T', any line on subsidiary 4, or any posting to an account.eliminate='T' account. | All three are zero. |
| A10 | Amounts = debit totals per journal from transactionaccountingline; USD single currency. | — |
| A11 | Ages as at 2026-09-04 (SYSDATE at run); negative = future-dated. | Sep 2026 and Oct 2026 periods contain future-dated postings. |
2What the account records — and does not
| Evidence sought | Where it should be | Found | Consequence |
| Period lock / close / reopen events | systemnote on recordtype accountingperiod | None. Zero notes on any of 168 periods; the only "closed"-named fields noted anywhere are EVENT.DCLOSED (calendar events) and CUSTJOB.DEXPCLOSED (projects) | Close is observable only as end state (closed, closedondate, alllocked/aplocked/arlocked) |
| Period close checklist tasks | Period Close Checklist (UI); no SuiteQL table | accountingperiodclosetask is not a searchable type | Task-level close activity unobservable |
| Journal approval transitions | systemnote field TRANDOC.KSTATUS | 1 (JE100, Pending Approval → Approved for Posting, 2026-05-10 by Timothy Dietrich) | Approval lead time unmeasurable |
| Journal create/edit notes | systemnote recordtypeid −30 | 29 notes on 9 of 40 journals, all by one actor, all 2026-05 | 31 journals have no audit trail beyond header fields |
| Reversal lineage | transaction.reversal / isreversal / reversaldate | Populated on 3 pairs; 3 further pairs linked only by memo and externalid | Half of reversals invisible to a field-based search |
| Creator identity | transaction.createdby | Populated on 9 of 40; lastmodifiedby on all | "Who created" unknown for 31 journals |
| Next approver | transaction.nextapprover, approvalstatus | NULL on all 4 pending journals | Nobody is assigned to approve them |
| Elimination | subsidiary 4 lines; eliminate flags | 0 / 0 / 0 | Never run (§7) |
Every other process in this series had a recorded trail to mine. Record-to-report has a recorded state and almost no trail. The analysis below is therefore honest about what is a measurement (period state, journal population, reversal pairs, actor matrix, intercompany postings) and what is an absence (close events, approval timing, creator identity).
3Period close: state and cycle time
Figure 1 — All 168 monthly periods. Emerald = closed (with days from period end to close); grey = open past end (bar = days open as at 2026-09-04); hollow = future. Four close batches are visible as plateaus.
Close batch (closedondate) | Periods | Range | Min days | Mean | Max days |
| 2019-12-18 | 34 | Jan 2016 – Oct 2018 | 413 | 916 | 1,417 |
| 2019-12-19 | 1 | Nov 2018 | 384 | 384 | 384 |
| 2022-01-27 | 13 | Dec 2018 – Dec 2019 | 758 | 941 | 1,123 |
| 2022-02-09 | 23 | Jan 2020 – Nov 2021 | 71 | 406 | 740 |
| All closed periods | 71 | Jan 2016 – Nov 2021 | 71 | median 748 · P90 1,204 | 1,417 |
| Open past end | 57 | Dec 2021 – Aug 2026 | 4 | median 857 | 1,708 |
| Future / current | 40 | Sep 2026 – Dec 2029 | All open, none locked |
The pattern is unambiguous: periods were closed in bulk, years in arrears, on four occasions — and not at all since 2022-02-09. All 71 closed periods have alllocked = aplocked = arlocked = T; all 97 open periods have every lock flag F and allownonglchanges = F. There is no soft-close (locked but not closed) state anywhere. The 25 periods that hold the account's operational history are all posting-open:
| Period | Period end | Posting txns | Non-posting | Journals | Genuine JEs | JE share | Last posting | Days open |
| Oct 2024 | 2024-10-31 | 365 | 0 | 2 | 0 | 0.5% | 2024-10-26 | 673 |
| Nov 2024 | 2024-11-30 | 206 | 0 | 2 | 0 | 1.0% | 2024-11-25 | 643 |
| Dec 2024 | 2024-12-31 | 213 | 0 | 2 | 0 | 0.9% | 2024-12-24 | 612 |
| Jan 2025 | 2025-01-31 | 216 | 0 | 2 | 0 | 0.9% | 2025-01-26 | 581 |
| Feb 2025 | 2025-02-28 | 207 | 0 | 2 | 0 | 1.0% | 2025-02-25 | 553 |
| Mar 2025 | 2025-03-31 | 214 | 0 | 2 | 0 | 0.9% | 2025-03-25 | 522 |
| Apr 2025 | 2025-04-30 | 294 | 0 | 2 | 0 | 0.7% | 2025-04-25 | 492 |
| May 2025 | 2025-05-31 | 221 | 0 | 2 | 0 | 0.9% | 2025-05-26 | 461 |
| Jun 2025 | 2025-06-30 | 225 | 0 | 2 | 0 | 0.9% | 2025-06-25 | 431 |
| Jul 2025 | 2025-07-31 | 287 | 0 | 2 | 0 | 0.7% | 2025-07-25 | 400 |
| Aug 2025 | 2025-08-31 | 210 | 0 | 2 | 0 | 1.0% | 2025-08-24 | 369 |
| Sep 2025 | 2025-09-30 | 229 | 0 | 2 | 0 | 0.9% | 2025-09-30 | 339 |
| Oct 2025 | 2025-10-31 | 216 | 0 | 3 | 1 | 1.4% | 2025-10-25 | 308 |
| Nov 2025 | 2025-11-30 | 294 | 0 | 3 | 1 | 1.0% | 2025-11-30 | 278 |
| Dec 2025 | 2025-12-31 | 215 | 0 | 2 | 0 | 0.9% | 2025-12-26 | 247 |
| Jan 2026 | 2026-01-31 | 228 | 0 | 3 | 1 | 1.3% | 2026-01-26 | 216 |
| Feb 2026 | 2026-02-28 | 220 | 0 | 2 | 0 | 0.9% | 2026-02-28 | 188 |
| Mar 2026 | 2026-03-31 | 227 | 0 | 3 | 1 | 1.3% | 2026-03-25 | 157 |
| Apr 2026 | 2026-04-30 | 222 | 0 | 2 | 0 | 0.9% | 2026-04-27 | 127 |
| May 2026 | 2026-05-31 | 348 | 0 | 3 | 1 | 0.9% | 2026-05-31 | 96 |
| Jun 2026 | 2026-06-30 | 312 | 0 | 4 | 2 | 1.3% | 2026-06-30 | 66 |
| Jul 2026 | 2026-07-31 | 335 | 6 | 7 | 5 | 2.1% | 2026-07-31 | 35 |
| Aug 2026 | 2026-08-31 | 357 | 4 | 10 | 8 | 2.8% | 2026-08-31 | 4 |
| Sep 2026 | 2026-09-30 | 377 | 28 | 20 | 18 | 5.3% | 2026-09-30 | −26 |
| Oct 2026 | 2026-10-31 | 2 | 0 | 2 | 2 | 100% | 2026-10-02 | −57 |
| 25 periods · none closed · none locked | 6,240 | 38 | 84 | 40 | 1.3% | Genuine journal activity concentrates in the last 3 periods (31 of 40) |
4Journal population and process model
Figure 2 — The 40 genuine journals classified by purpose (A4–A6). Counts and debit totals.
| Class | Journals | Debit total | Entries |
| Capital injection ("Negative Cash Flow": Dr 1010 Cash / Cr 3510 Capital Stock) | 8 | 680,000.00 | JE151 Oct-25 50K · JE152 Nov-25 120K · JE153 Jan-26 100K · JE154 May-26 50K · JE155 Jun-26 175K · JE156 Jul-26 50K · JE157 Aug-26 15K · JE158 Sep-26 120K |
| Inventory reclassification (no memo; Cr 1210 Inventory / Dr A/R, A/P, Cash) | 3 | 262,000.00 | JE160 Dr 1110 A/R 85,000 · JE161 Cr 2010 A/P 65,000 · JE162 Dr 1010 Cash 112,000 — all 2026-09-01, created 2026-09-14 |
| Accrual + reversal pairs (system-linked) | 6 | 57,700.00 | JE49 → JE50 legal fees 2,000 · JE52 → JE53 rent 10,000 · void-payment JE 41132 → JE150 33,700 |
| Test entry + reversal (memo-linked, Atlas sweep) | 6 | 600.00 | JE166 → JE171 · JE167 → JE168 · JE169 → JE170 (all 2026-09-17, $100 each, 1014 Payroll ↔ 1010 Checking) |
| Other test entries | 3 | 755.00 | JE163 "Test" Dr 1100 A/R / Cr 5340 COGS 100 · JE164 "Test 1138" Dr 1100 / Cr 1090 555 · JE165 "Test 1217" petty cash 100 |
| Reclassification / allocation | 2 | 6,084.10 | JE86 "Reclass1" rent accrual 2,880 · JE89 marketing allocation 3,204.10 (6 lines, all within 6757) |
| Advanced intercompany journal | 3 | 6,000.00 | JE91 Jul · JE92 Aug · JE93 Sep — 1,000 Sub 2 → Sub 3 via 6900 (§7) |
| Recurring / operational | 5 | 1,665.00 | JE51, JE97, JE98 vehicle insurance 300 · JE78 depreciation 750 · JE79 prepayment for PO318 15 |
| Fixed-asset depreciation (book-specific) | 3 | 207.62 | JE99 24.28 (pending) · JE100 91.67 · JE101 91.67 (pending) |
| Pending, unclassified | 1 | 200.00 | JE88 Dr 2010 A/P / Cr 6610 Rent — Sep 2026, Pending Approval |
| Total | 40 | 1,015,211.72 | 36 Approved for Posting · 4 Pending Approval · 33 JOURNAL · 4 BOOK_SPECIFIC · 3 ADVANCED_INTERCOMPANY |
Journal lifecycle model
Figure 3 — Journal lifecycle as observed. Solid = evidenced by a system field or system note; dashed = inferred from header state only. Counts are journals.
The reference lifecycle is Created → (Pending Approval → Approved) → Posted → [Reversed]. What the account evidences: 40 created (9 with a create note, 31 without); 4 currently Pending Approval; 1 observed approval transition (JE100); 36 posted; 6 reversed by a linked entry. There is no rejection, no edit-after-post, no reopen, and no voided journal. Because the approval step leaves a system note only when it happens through the UI and every other journal arrived Approved for Posting at creation, the process is effectively Created-as-Approved → Posted for 35 of 40 entries.
5Reversal, reclassification and approval trail
Reversal pairs (6)
| Original | Posted | Amount | Reversal | Posted | Days | Linkage | Nature |
| JE49 accrue legal fees | 2026-08-12 (Aug 2026) | 2,000.00 | JE50 | 2026-09-01 (Sep 2026) | 20 | reversal field, both directions | Month-end accrual, auto-reversed next period — textbook |
| JE52 rent expense accrual | 2026-10-01 (Oct 2026) | 10,000.00 | JE53 | 2026-10-02 (Oct 2026) | 1 | reversal field | Accrual and reversal in the same period, one day apart — net zero effect; future-dated |
| 41132 (void of payment 00000005/1-12102024-181841) | 2026-03-01 | 33,700.00 | JE150 | 2026-03-03 (Mar 2026) | 2 | reversal field; isreversal=T | Reversal of a voided vendor payment (P2P study §8-E); Ben Morgan, Controller |
| JE166 Atlas sweep test | 2026-09-17 | 100.00 | JE171 | 2026-09-17 | 0 | memo + externalid only | Test entry reversed same day; memo says "orphan from first sweep run (pre-reverseJE fix)" |
| JE167 Atlas sweep test | 2026-09-17 | 100.00 | JE168 | 2026-09-17 | 0 | memo + externalid only | Test entry reversed same day |
| JE169 Atlas sweep test | 2026-09-17 | 100.00 | JE170 | 2026-09-17 | 0 | memo + externalid only | Test entry reversed same day |
Reversal rate: 6 of 40 genuine journals are reversals (15.0%); 12 of 40 (30.0%) participate in a reversal pair. Excluding test entries, 3 of 31 substantive journals are reversals (9.7%), and all three are legitimate accrual or void reversals. Median original → reversal interval: 1.5 days overall; 20 days for the one genuine month-end accrual (JE49 → JE50). Half of the reversal pairs are invisible to a search on the reversal field — the Atlas-generated reversals set memo and externalid but not the system reversal link.
Reclassification and allocation (5)
| Journal | Date | Amount | Pattern |
JE86 "Rent Expense Accrual", externalid Reclass1 | 2026-09-15 | 2,880.00 | Dr 6610 Rent / Cr 2210 Accrued Expenses — labelled reclass, shaped like an accrual; created 2026-09-13, two days before its trandate |
| JE89 marketing allocation | 2026-08-27 | 3,204.10 | Six lines all within account 6757 — two "Allocation Source" credits (1,500 + 1,704.10) spread across four "Allocation" debits (801.03 ×3 + 801.01); a departmental re-spread with no department set on any line |
| JE91 · JE92 · JE93 | Jul · Aug · Sep 2026 | 1,000.00 each | Advanced Intercompany allocation: Sub 2 Dr 6900 IC Expenses / Cr 6250 Automobile; Sub 3 Dr 6250 / Cr 6900 — moves $1,000 of automobile expense from Sub 2 to Sub 3 each month (§7) |
Approval trail
| Journal | Trandate · Period | Amount | Status | Last modified by | Created | Next approver | Note |
| JE99 LP - Capitalize Asset JE | 2026-07-01 · Jul 2026 | 24.28 | Pending Approval | Emma Richards (Accountant) | 2026-09-21 | — | Period ended 35 days ago |
| JE101 book-specific depreciation | 2026-07-31 · Jul 2026 | 91.67 | Pending Approval | -System- | 2026-09-21 | — | Fixed-asset module output awaiting approval; sibling JE100 was approved |
| JE159 prepaid rent | 2026-08-01 · Aug 2026 | 10,000.00 | Pending Approval | Kathryn Glass | 2026-09-09 | — | Largest pending; Dr 6610 Rent / Cr 1400 Prepaid |
| JE88 | 2026-09-13 · Sep 2026 | 200.00 | Pending Approval | Kathryn Glass | 2026-09-30 | — | No memo |
| 4 pending · $10,316 · no approver assigned on any | 10,315.95 | Only observed approval: JE100 — Pending Approval → Approved for Posting, 2026-05-10 18:37, by Timothy Dietrich (Administrator), who is also its lastmodifiedby; no separate creator recorded |
6Who touched what
Figure 4 — Genuine journals by last-modifying identity (bars) and by creator where recorded (dots).
| Identity | Resolved as | Last modified | Created (recorded) | System notes | Journals | Observation |
| −5 | Kathryn Glass | 27 | 0 | 0 | JE49–53, 78, 79, 86, 88, 89, 91–93, 97, 98, 151–162 | A negative internal id resolving to an employee name — a system/import identity aliased to a person. Owns all capital injections ($680K), all inventory reclasses ($262K), all IC journals and 2 of 4 pending. Zero audit notes on any of the 27. |
| 3894 | Timothy Dietrich (Administrator) | 10 | 9 | 29 | JE100, 163–171 | All 9 test entries and the one observed approval (self-approved JE100). The only identity with an audit trail. Context: SLT (UI) for JE163–165, RST (RESTlet) for JE166–171. |
| −4 | -System- | 1 (+48 Beg Balance) | 0 | 0 | JE101 | Fixed-asset module depreciation journal. |
| 143 | Emma Richards (Accountant Boss, Sub 1) | 1 | 0 | 0 | JE99 | Pending approval since entry. |
| 149 | Ben Morgan (Controller, Sub 1) | 1 | 0 | 0 | JE150 | Reversal of the voided $33,700 vendor payment — the one journal touched by the Controller. |
| 5 identities | 40 | 9 | 29 | No journal has a recorded creator different from its last modifier → no maker/checker separation is observable anywhere |
Segregation of duties cannot be demonstrated from the record: no journal shows a creator, approver and poster as three different people; the single observed approval was performed by the entrant; the finance roles (Controller, Accountant) touch one journal each while a system-aliased identity carries 67.5% of entries, including every entry over $10,000.
7Intercompany and elimination
| Element | Evidence | State |
| Elimination subsidiary | Subsidiary 4 "xElim" (iselimination=T) | 0 transaction lines in all history |
| Elimination-flagged accounts | 1910 Intercompany Receivables US · 2910 Intercompany Payables - US (account.eliminate=T) | 0 postings each |
| Elimination-flagged lines | transactionline.eliminate='T' | 0 |
| Intercompany accounts with activity | 6900 Intercompany Expenses (6 lines, JE91–93) · 1091 Intercompany Clearing (2 lines) | Used, but neither is elimination-flagged; 4900 IC Revenue, 5900 IC COGS, 1900/2900 IC AR/AP parents: 0 postings |
| Advanced Intercompany Journals | JE91 2026-07-10 · JE92 2026-08-11 · JE93 2026-09-11 — $1,000 each | Both sides post to 6900; Sub 2 Dr / Sub 3 Cr — the account nets to zero on consolidation arithmetically, without an elimination entry |
| Intercompany transfer orders | TO13 2026-08-01 Received (→ IR405) · TO14 2026-09-03 Pending Fulfillment · TO12 2026-09-08 Pending Receipt — Sub 2 → Sub 3, $3.99 each | 1 complete, 2 open |
| Intercompany PO ↔ SO pairs | PO374 ↔ SO3148 (Interco Vendor US1-US2 / Interco Client US2-US1) · PO375 ↔ SO3149 — 2026-09-25, $29.99 each, intercotransaction populated | Both Pending Receipt / Pending Fulfillment — future-dated |
Elimination has never run
The configuration is in place — an elimination subsidiary, two eliminate-flagged accounts, paired intercompany entities — but every consolidated report ever produced from this account has been produced without an elimination pass. The current intercompany exposure that
would need eliminating is small ($3,000 of 6900 expense across Sub 2/Sub 3, which nets arithmetically, plus $67.96 of open goods movement), so the balance-sheet consequence today is immaterial. The process consequence is not: there is no evidence anyone has ever executed the intercompany elimination step of a close in this account.
8Exception registers
Complete lists. Ages as at 2026-09-04.
8-A · Open periods past end (57) — summary by year
| Year | Open periods | Range | Days open (oldest → newest) | Posting txns | Note |
| 2021 | 1 | Dec 2021 | 1,708 | 0 | Oldest open period; nothing posted to it |
| 2022 | 12 | Jan – Dec 2022 | 1,677 → 1,343 | 0 | Empty |
| 2023 | 12 | Jan – Dec 2023 | 1,312 → 978 | 0 | Empty |
| 2024 | 12 | Jan – Dec 2024 | 947 → 612 | 784 | Oct–Dec 2024 hold live history |
| 2025 | 12 | Jan – Dec 2025 | 581 → 247 | 2,828 | Full year of live history, all open |
| 2026 | 8 | Jan – Aug 2026 | 216 → 4 | 2,249 | Current fiscal year |
| Total | 57 | Dec 2021 – Aug 2026 | median 857 | 5,861 | Plus 379 postings in the current/future Sep–Oct 2026 |
8-B · All genuine journals (40)
| JE | Id | Trandate | Period | Created | Status | Type | Debits | Sub | Last modified by | Class | Memo |
| JE151 | 41777 | 2025-10-01 | Oct 2025 | 2026-09-12 | Approved | JOURNAL | 50,000.00 | 2 | Kathryn Glass | Capital | Negative Cash Flow |
| JE152 | 41778 | 2025-11-01 | Nov 2025 | 2026-09-12 | Approved | JOURNAL | 120,000.00 | 2 | Kathryn Glass | Capital | Negative Cash Flow |
| JE153 | 41779 | 2026-01-01 | Jan 2026 | 2026-09-12 | Approved | JOURNAL | 100,000.00 | 2 | Kathryn Glass | Capital | Negative Cash Flow |
| JE150 | 41133 | 2026-03-03 | Mar 2026 | 2026-09-10 | Approved | JOURNAL | 33,700.00 | 2 | Ben Morgan | Reversal | 00000005/1-12102024-181841 |
| JE154 | 41780 | 2026-05-01 | May 2026 | 2026-09-12 | Approved | JOURNAL | 50,000.00 | 2 | Kathryn Glass | Capital | Negative Cash Flow |
| JE155 | 41781 | 2026-06-01 | Jun 2026 | 2026-09-12 | Approved | JOURNAL | 175,000.00 | 2 | Kathryn Glass | Capital | Negative Cash Flow |
| JE100 | 31736 | 2026-06-30 | Jun 2026 | 2026-09-21 | Approved | BOOK_SPECIFIC | 91.67 | 2 | Timothy Dietrich | Depreciation | |
| JE97 | 31707 | 2026-07-01 | Jul 2026 | 2026-09-08 | Approved | JOURNAL | 300.00 | 2 | Kathryn Glass | Recurring | Monthly Vehicle Insurance |
| JE99 | 31725 | 2026-07-01 | Jul 2026 | 2026-09-21 | Pending | JOURNAL | 24.28 | 2 | Emma Richards | Depreciation | LP - Capitalize Asset JE |
| JE156 | 41782 | 2026-07-01 | Jul 2026 | 2026-09-12 | Approved | JOURNAL | 50,000.00 | 2 | Kathryn Glass | Capital | Negative Cash Flow |
| JE91 | 28667 | 2026-07-10 | Jul 2026 | 2026-09-30 | Approved | ADV_INTERCOMPANY | 2,000.00 | 2,3 | Kathryn Glass | Intercompany | |
| JE101 | 31737 | 2026-07-31 | Jul 2026 | 2026-09-21 | Pending | BOOK_SPECIFIC | 91.67 | 2 | -System- | Depreciation | |
| JE51 | 204 | 2026-08-01 | Aug 2026 | 2026-09-26 | Approved | JOURNAL | 300.00 | 2 | Kathryn Glass | Recurring | Monthly Vehicle Insurance |
| JE98 | 31708 | 2026-08-01 | Aug 2026 | 2026-09-08 | Approved | JOURNAL | 300.00 | 2 | Kathryn Glass | Recurring | Monthly Vehicle Insurance |
| JE157 | 41783 | 2026-08-01 | Aug 2026 | 2026-09-12 | Approved | JOURNAL | 15,000.00 | 2 | Kathryn Glass | Capital | Negative Cash Flow |
| JE159 | 42029 | 2026-08-01 | Aug 2026 | 2026-09-09 | Pending | BOOK_SPECIFIC | 10,000.00 | 2 | Kathryn Glass | Pending | |
| JE92 | 28670 | 2026-08-11 | Aug 2026 | 2026-09-30 | Approved | ADV_INTERCOMPANY | 2,000.00 | 2,3 | Kathryn Glass | Intercompany | |
| JE49 | 201 | 2026-08-12 | Aug 2026 | 2026-09-26 | Approved | JOURNAL | 2,000.00 | 2 | Kathryn Glass | Accrual (reversed) | accrue for legal fees in property damage dispute claim |
| JE89 | 28664 | 2026-08-27 | Aug 2026 | 2026-09-30 | Approved | BOOK_SPECIFIC | 3,204.10 | 2 | Kathryn Glass | Allocation | |
| JE79 | 24151 | 2026-08-31 | Aug 2026 | 2026-09-08 | Approved | JOURNAL | 15.00 | 2 | Kathryn Glass | Operational | Prepayment for PO318 |
| JE50 | 202 | 2026-09-01 | Sep 2026 | 2026-09-26 | Approved | JOURNAL | 2,000.00 | 2 | Kathryn Glass | Reversal | accrue for legal fees in property damage dispute claim |
| JE158 | 41805 | 2026-09-01 | Sep 2026 | 2026-09-16 | Approved | JOURNAL | 120,000.00 | 2 | Kathryn Glass | Capital | Negative Cash Flow |
| JE160 | 42039 | 2026-09-01 | Sep 2026 | 2026-09-14 | Approved | JOURNAL | 85,000.00 | 2 | Kathryn Glass | Inventory reclass | |
| JE161 | 42040 | 2026-09-01 | Sep 2026 | 2026-09-14 | Approved | JOURNAL | 65,000.00 | 2 | Kathryn Glass | Inventory reclass | |
| JE78 | 24127 | 2026-09-07 | Sep 2026 | 2026-09-07 | Approved | JOURNAL | 750.00 | 2 | Kathryn Glass | Operational | JE - LP |
| JE163 | 42259 | 2026-09-08 | Sep 2026 | 2026-09-08 | Approved | JOURNAL | 100.00 | 1 | Timothy Dietrich | Test | Test |
| JE164 | 42260 | 2026-09-08 | Sep 2026 | 2026-09-08 | Approved | JOURNAL | 555.00 | 1 | Timothy Dietrich | Test | Test 1138 |
| JE93 | 28671 | 2026-09-11 | Sep 2026 | 2026-09-30 | Approved | ADV_INTERCOMPANY | 2,000.00 | 2,3 | Kathryn Glass | Intercompany | |
| JE88 | 28658 | 2026-09-13 | Sep 2026 | 2026-09-30 | Pending | JOURNAL | 200.00 | 2 | Kathryn Glass | Pending | |
| JE162 | 42041 | 2026-09-14 | Sep 2026 | 2026-09-14 | Approved | JOURNAL | 112,000.00 | 2 | Kathryn Glass | Inventory reclass | |
| JE86 | 27423 | 2026-09-15 | Sep 2026 | 2026-09-13 | Approved | JOURNAL | 2,880.00 | 2 | Kathryn Glass | Reclass | Rent Expense Accrual |
| JE165 | 42329 | 2026-09-17 | Sep 2026 | 2026-09-17 | Approved | JOURNAL | 100.00 | 2 | Timothy Dietrich | Test | Test 1217 |
| JE166 | 42330 | 2026-09-17 | Sep 2026 | 2026-09-17 | Approved | JOURNAL | 100.00 | 2 | Timothy Dietrich | Test (reversed) | Atlas sweep test JE (sweep-test-1779080388) |
| JE167 | 42331 | 2026-09-17 | Sep 2026 | 2026-09-17 | Approved | JOURNAL | 100.00 | 2 | Timothy Dietrich | Test (reversed) | Atlas sweep test JE (sweep-test-1779080976) |
| JE168 | 42332 | 2026-09-17 | Sep 2026 | 2026-09-17 | Approved | JOURNAL | 100.00 | 2 | Timothy Dietrich | Reversal (test) | Reversal of JE167 |
| JE169 | 42333 | 2026-09-17 | Sep 2026 | 2026-09-17 | Approved | JOURNAL | 100.00 | 2 | Timothy Dietrich | Test (reversed) | Atlas sweep test JE (sweep-test-1779081054) |
| JE170 | 42334 | 2026-09-17 | Sep 2026 | 2026-09-17 | Approved | JOURNAL | 100.00 | 2 | Timothy Dietrich | Reversal (test) | Reversal of JE169 |
| JE171 | 42335 | 2026-09-17 | Sep 2026 | 2026-09-17 | Approved | JOURNAL | 100.00 | 2 | Timothy Dietrich | Reversal (test) | Reversal of JE166 |
| JE52 | 211 | 2026-10-01 | Oct 2026 | 2026-10-15 | Approved | JOURNAL | 10,000.00 | 2 | Kathryn Glass | Accrual (reversed) | Rent Expense Accrual |
| JE53 | 212 | 2026-10-02 | Oct 2026 | 2026-10-15 | Approved | JOURNAL | 10,000.00 | 2 | Kathryn Glass | Reversal | Rent Expense Accrual |
| 40 journals · 36 approved · 4 pending · 12 in reversal pairs · 9 tests | 1,015,211.72 | Debits summed once per journal (IC journals counted across both subsidiaries) |
8-C · Test entries posted to production (9)
JE163 (Dr 1100 A/R / Cr 5340 COGS, $100, Parent Company), JE164 (Dr 1100 A/R / Cr 1090 Undeposited Funds, $555, Parent Company), JE165 (petty cash ↔ checking, $100), JE166–JE171 (1014 Payroll ↔ 1010 Checking, $100 each, three pairs net to zero). Net residual on the ledger: JE163 + JE164 + JE165 = $755 of unreversed test postings — $655 of it inflating Parent Company A/R and understating COGS / Undeposited Funds in Sep 2026. All nine were entered by the administrator between 2026-05-08 and 2026-05-17 (system-note clock) into Sep 2026 trandates.
8-D · Intercompany documents (9) — see §7 table
9Data quality — what limits the analysis
| Limitation | Evidence | What it prevents |
| No system notes on accounting periods | 0 notes on 168 period records; only closedondate survives | Lock sequence, reopen events, who closed, soft-vs-hard close — all unobservable |
| Two clocks | System notes on JE163–171 are dated 2026-05-08 → 05-17; the same journals' createddate and trandate read 2026-09-08 → 09-17; DB SYSDATE = 2026-09-04 | A ~4-month offset between the note clock and the transaction clock; timing across the two sources cannot be combined |
createddate is a load date | 100% of Oct 2024 – Aug 2026 postings have createddate after their period end (max 686 days); Sep 2026 has 2 of 377 | Late-posting and cutoff analysis impossible; only trandate-vs-period mismatch is testable (0 found) |
| Creator not recorded | createdby NULL on 31 of 40 genuine journals and on all 48 Beg Balance journals | Maker/checker separation cannot be evidenced |
| Negative-id identities resolve to names | lastmodifiedby = −5 → "Kathryn Glass" (27 journals); −4 → "-System-" | Attribution to a human is unreliable for two-thirds of journals |
| Half of reversals unlinked | JE168/170/171 have memo "Reversal of JE…" and externalid "reversal-of-<id>" but reversal and isreversal are NULL/F | A field-based reversal search finds 3 of 6 pairs |
| Synthetic ledger | 48 "Beg Balance Entries" journals, JE102–JE149, ~$0.75–0.93M/month | Excluded here; any GL reconciliation must exclude them too |
| Future-dated activity | Sep 2026 (26 days ahead) and Oct 2026 hold 379 postings and 20 journals | "Current period" analysis is partly forward-looking |
10Findings and recommended actions
- Institute the close — start by locking, not closing. Fifty-seven periods past their end are open to posting; the 25 that carry live history (Oct 2024 → Aug 2026, $19.8M gross in 2026) can be altered by anyone with transaction permissions and no note would record it. Lock A/R, A/P and All on every period through Jul 2026 now; close Dec 2021 → Dec 2024 (zero or complete activity) outright; then adopt a standing rule — lock by working day 5, close by working day 10 — and enforce it through the Period Close Checklist so the close leaves a trail. Measure cycle time from the first month this is done; today it cannot be measured because it does not occur.
- Clean the journal population and close the approval gap. Reverse JE163, JE164 and JE165 ($755 of test postings sitting in Parent Company A/R, COGS, Undeposited Funds and petty cash — the six Atlas pairs already net to zero). Assign an approver and clear the four pending journals ($10,316; JE99 and JE101 are in a period that ended 35 days ago). Require the
reversal link on script-generated reversals so all six pairs — not three — are discoverable. Enforce a memo on every journal: JE88, JE89, JE91–93, JE100–101, JE159–162 ($292K) have none.
- Run elimination once, then every month. The elimination subsidiary and eliminate-flagged accounts exist and have never been used; JE91–93 are the only intercompany postings and they self-net, so a first elimination run will post nothing material — which is exactly the right moment to establish the step. Pair it with the actor finding: two-thirds of journals, including all eight capital injections ($680K) and three inventory reclasses ($262K, no memo, created the same day), are attributed to a negative-id system identity that displays as a person; the Controller has touched one journal. Decide who owns journals in this account and make the record show it.
AAppendix A — SuiteQL used
Verbatim as executed. Q1–Q2 feed the reducer; the rest are probes and registers.
Q1 — Monthly periods with close state (reducer input periods)
SELECT id, periodname, TO_CHAR(startdate,'YYYY-MM-DD') AS startdate, TO_CHAR(enddate,'YYYY-MM-DD') AS enddate, closed,
TO_CHAR(closedondate,'YYYY-MM-DD') AS closedon, alllocked, aplocked, arlocked
FROM accountingperiod WHERE isquarter='F' AND isyear='F'
Q2 — Period-bearing transactions (reducer input txns)
SELECT t.id, t.type, t.tranid, TO_CHAR(t.trandate,'YYYY-MM-DD') AS trandate, TO_CHAR(t.createddate,'YYYY-MM-DD') AS created,
t.postingperiod, t.posting, t.status, t.journaltype, t.isreversal, t.reversal, t.createdby, t.lastmodifiedby,
CASE WHEN t.memo LIKE 'Beg Balance%' THEN 'T' ELSE 'F' END AS begbal,
CASE WHEN t.memo LIKE 'Reversal of%' OR t.externalid LIKE '%reversal-of%' THEN 'T' ELSE 'F' END AS memo_reversal,
CASE WHEN t.externalid LIKE 'Reclass%' OR t.memo LIKE '%Reclass%' OR t.memo LIKE '%Allocation%' THEN 'T' ELSE 'F' END AS reclass
FROM transaction t
WHERE t.postingperiod IS NOT NULL
AND t.type NOT IN ('SalesOrd','PurchOrd','Estimate','Opprtnty','WorkOrd','TrnfrOrd','VendAuth','RtnAuth','PurchReq')
Q3 — Journal census
SELECT t.type, COUNT(*) AS docs, COUNT(DISTINCT t.status) AS statuses, TO_CHAR(MIN(t.trandate),'YYYY-MM-DD') AS first_date,
TO_CHAR(MAX(t.trandate),'YYYY-MM-DD') AS last_date,
SUM(CASE WHEN t.memo LIKE 'Beg Balance%' THEN 1 ELSE 0 END) AS beg_bal, SUM(CASE WHEN t.posting='T' THEN 1 ELSE 0 END) AS posting
FROM transaction t WHERE UPPER(t.type) LIKE '%JOURNAL%' GROUP BY t.type
Q4 — System notes on journals (field coverage)
SELECT sn.field, sn.type, COUNT(*) AS notes, COUNT(DISTINCT sn.recordid) AS journals, COUNT(DISTINCT sn.name) AS actors
FROM systemnote sn JOIN transaction t ON t.id = sn.recordid AND sn.recordtypeid = -30
WHERE t.type = 'Journal' GROUP BY sn.field, sn.type ORDER BY COUNT(*) DESC
Q5 — System notes on accounting periods (none found)
SELECT sn.recordtypeid, sn.field, COUNT(*) AS notes, COUNT(DISTINCT sn.recordid) AS recs
FROM systemnote sn WHERE UPPER(sn.field) LIKE '%LOCK%' OR UPPER(sn.field) LIKE '%CLOSE%'
OR UPPER(sn.field) LIKE '%ACCTPERIOD%' OR UPPER(sn.field) LIKE '%ACCOUNTINGPERIOD%'
GROUP BY sn.recordtypeid, sn.field ORDER BY COUNT(*) DESC
Q6 — Genuine journals with lineage fields
SELECT t.id, t.tranid, TO_CHAR(t.trandate,'YYYY-MM-DD') AS trandate, TO_CHAR(t.createddate,'YYYY-MM-DD') AS created,
ap.periodname, BUILTIN.DF(t.status) AS status_label, t.posting, t.isreversal, t.reversal,
TO_CHAR(t.reversaldate,'YYYY-MM-DD') AS reversaldate, t.journaltype, t.createdby, t.lastmodifiedby,
BUILTIN.DF(t.createdby) AS created_by, t.externalid, t.memo
FROM transaction t LEFT JOIN accountingperiod ap ON ap.id = t.postingperiod
WHERE t.type = 'Journal' AND (t.memo IS NULL OR t.memo NOT LIKE 'Beg Balance%') ORDER BY t.trandate, t.id
Q7 — Journal line composition
SELECT t.id, t.tranid, tl.subsidiary, a.accttype, COUNT(*) AS lines,
ROUND(SUM(CASE WHEN tal.amount > 0 THEN tal.amount ELSE 0 END),2) AS debits,
ROUND(SUM(CASE WHEN tal.amount < 0 THEN -tal.amount ELSE 0 END),2) AS credits,
MAX(a.acctnumber || ' ' || a.fullname) AS sample_account
FROM transaction t JOIN transactionline tl ON tl.transaction = t.id
JOIN transactionaccountingline tal ON tal.transaction = t.id AND tal.transactionline = tl.id JOIN account a ON a.id = tal.account
WHERE t.type = 'Journal' AND (t.memo IS NULL OR t.memo NOT LIKE 'Beg Balance%')
GROUP BY t.id, t.tranid, tl.subsidiary, a.accttype ORDER BY t.id, tl.subsidiary, a.accttype
Q8 — Full system-note trail on journals
SELECT t.tranid, sn.recordid, TO_CHAR(sn.date,'YYYY-MM-DD HH24:MI') AS note_time, sn.name AS actor_id, BUILTIN.DF(sn.name) AS actor,
sn.field, sn.type, sn.oldvalue, sn.newvalue, sn.context, BUILTIN.DF(sn.role) AS role
FROM systemnote sn JOIN transaction t ON t.id = sn.recordid AND sn.recordtypeid = -30
WHERE t.type = 'Journal' ORDER BY sn.date, sn.recordid
Q9 — Pending-approval queue
SELECT t.id, t.tranid, TO_CHAR(t.trandate,'YYYY-MM-DD') AS trandate, TO_CHAR(t.createddate,'YYYY-MM-DD') AS created, ap.periodname,
t.journaltype, t.nextapprover, BUILTIN.DF(t.nextapprover) AS approver, t.approvalstatus, BUILTIN.DF(t.lastmodifiedby) AS last_modified_by,
t.memo, (SELECT ROUND(SUM(CASE WHEN tal.amount > 0 THEN tal.amount ELSE 0 END),2) FROM transactionaccountingline tal WHERE tal.transaction = t.id) AS debit_total
FROM transaction t LEFT JOIN accountingperiod ap ON ap.id = t.postingperiod WHERE t.type = 'Journal' AND t.posting = 'F' ORDER BY t.trandate
Q10 — Intercompany / elimination evidence
SELECT (SELECT COUNT(*) FROM transactionline WHERE eliminate = 'T') AS elim_flagged_lines,
(SELECT COUNT(*) FROM transactionline WHERE subsidiary = 4) AS sub4_lines,
(SELECT COUNT(*) FROM account WHERE eliminate = 'T') AS elim_accounts,
(SELECT COUNT(*) FROM transaction WHERE intercompany = 'T') AS interco_flagged_txns,
(SELECT COUNT(*) FROM transaction WHERE intercotransaction IS NOT NULL) AS interco_paired_txns,
(SELECT COUNT(*) FROM accountingperiod WHERE isquarter='F' AND isyear='F' AND closed='F' AND enddate < SYSDATE) AS open_periods_past_end,
(SELECT MIN(periodname) FROM accountingperiod WHERE isquarter='F' AND isyear='F' AND closed='F') AS oldest_open_period
FROM dual;
SELECT a.id, a.acctnumber, a.fullname, a.accttype, a.eliminate, (SELECT COUNT(*) FROM transactionaccountingline tal WHERE tal.account = a.id) AS postings
FROM account a WHERE a.eliminate = 'T' OR a.fullname LIKE '%Intercompany%' OR a.fullname LIKE '%Elimination%' ORDER BY a.acctnumber;
SELECT t.id, t.type, t.tranid, TO_CHAR(t.trandate,'YYYY-MM-DD') AS trandate, BUILTIN.DF(t.status) AS status_label, t.intercompany, t.intercotransaction,
BUILTIN.DF(t.entity) AS entity, t.tosubsidiary, ROUND(ABS(t.foreigntotal),2) AS total
FROM transaction t WHERE t.intercompany = 'T' OR t.intercotransaction IS NOT NULL ORDER BY t.trandate, t.id
Q11 — Trandate vs posting period mismatch (0 rows)
SELECT t.type, COUNT(*) AS docs FROM transaction t JOIN accountingperiod ap ON ap.id = t.postingperiod
WHERE t.posting = 'T' AND (t.trandate < ap.startdate OR t.trandate > ap.enddate) GROUP BY t.type
Q12 — Close batches
SELECT TO_CHAR(closedondate,'YYYY-MM-DD') AS closed_on, COUNT(*) AS periods, MIN(periodname) AS first_period, MAX(periodname) AS last_period,
MIN(closedondate - enddate) AS min_days, ROUND(AVG(closedondate - enddate),0) AS avg_days, MAX(closedondate - enddate) AS max_days
FROM accountingperiod WHERE isquarter='F' AND isyear='F' AND closed='T' GROUP BY TO_CHAR(closedondate,'YYYY-MM-DD') ORDER BY 1
Query notes
Two probes failed and are recorded:
GROUP BY BUILTIN.DF(t.lastmodifiedby) → "Invalid or unsupported search" (group on the raw id, resolve in a separate SELECT);
accountingperiodclosetask → "Invalid search type" (the Period Close Checklist has no SuiteQL surface).
closedondate − enddate returns fractional days (time component on
closedondate); whole-day figures are floored.
BAppendix B — Reducer logic
// sqlReduce, contract "whole": rows.periods (168), rows.txns (6,292)
P = indexBy(periods, id); today = 2026-09-04
for each period: rs = txns in period; posting = rs.posting==='T'; je = type==='Journal'; realJe = je && begbal==='F'
reversalJe = realJe with isreversal==='T' or memo_reversal==='T'; reversedJe = realJe with reversal set and not itself a reversal
reclassJe = realJe.reclass==='T'; icJe = journaltype contains 'INTERCOMPANY'; pendingJe = realJe.posting==='F'
daysOpen = closed ? null : daysBetween(enddate, today); closeDays = closedon ? daysBetween(enddate, closedon) : null
closeCycleDays = H.stats(closed periods' closeDays); closeBatches = countBy(closedon)
openPastEnd = open periods with enddate < today → H.stats(daysOpen)
actor matrix = countBy(realJE, lastmodifiedby) and countBy(realJE, createdby); reversalPairs from isreversal rows; memoReversals from memo flag
return per-period rows for Oct 2024 → Oct 2026 + aggregates (6.6 KB)
Worker 18 ms; queries 944 ms; 1.75 MB decoded / 147 KB on wire. Classification of the 40 journals into purpose classes (§4) was done from Q6/Q7 output by inspection — the population is small enough that every entry is listed in §8-B.
CAppendix C — Worked hand-check
| Check | Working | Result |
| Period counts | 71 closed + 57 open past end + 40 future/current = 168 | ✓ |
| Close batches | 34 + 1 + 13 + 23 = 71 | ✓ |
| Nov 2021 close cycle | closedondate 2022-02-09 − enddate 2021-11-30 = 71 days (the minimum) | ✓ matches Q12 min |
| Dec 2021 days open | 2026-09-04 − 2021-12-31 = 1,708 | ✓ matches reducer max |
| Journal counts | 88 = 48 Beg Balance + 40 genuine; 40 = 36 Approved + 4 Pending; 33 JOURNAL + 4 BOOK_SPECIFIC + 3 ADV_IC = 40 | ✓ |
| Purpose classes | 8 + 3 + 6 + 6 + 3 + 2 + 3 + 5 + 3 + 1 = 40 | ✓ |
| Debit total | 680,000 + 262,000 + 57,700 + 600 + 755 + 6,084.10 + 6,000 + 1,665 + 207.62 + 200 = 1,015,211.72 | ✓ |
| Actors | 27 + 10 + 1 + 1 + 1 = 40; creators 9 recorded + 31 NULL = 40 | ✓ |
| Reversal pairs | 3 system-linked (JE49→50, JE52→53, 41132→JE150) + 3 memo-linked (JE166→171, 167→168, 169→170) = 6; 12 journals involved = 30% | ✓ |
| Consolidated payment tie-in | JE150 $33,700 = P2P study voided payment 00000005/1-12102024-181841 $33,700 | ✓ cross-study |
| Window postings | Σ type mix Oct 2024 → Oct 2026 = 6,240; Journal 84 → 1.3% | ✓ |
DAppendix D — Glossaries and run metadata
Status codes (live labels)
| Type | Code | Label | Docs |
| Journal | B | Approved for Posting | 84 |
| Journal | A | Pending Approval | 4 |
Journal types observed
journaltype | Docs |
|---|
| JOURNAL | 81 (33 genuine) |
| BOOK_SPECIFIC_JOURNAL | 4 |
| BOOK_SPECIFIC_ADVANCED_INTERCOMPANY_JOURNAL | 3 |
System-note contexts
SLT Suitelet/UI · RST RESTlet. Field ids: TRANDOC.KSTATUS status · TRANDOC.NKEY create · TRANDOC.SDOCNUM number · TRANDOC.KSUBSIDIARYMAIN subsidiary · TRANDOC.IMPACT GL impact flag.
Run metadata
| Item | Value |
| Account / environment | TD3016323 · production · OneWorld · USD |
| Analysis date | 2026-09-04 (SYSDATE 07:01) |
| Tooling | Sonar AI v1.15.0 · 1 sqlReduce (whole) · 17 runSql probes/registers · no records created, modified or deleted |
| Inputs | 168 periods · 6,292 transactions · 29 system notes · 9 accounts · 9 IC documents |
| Companions | Order-to-Cash and Procure-to-Pay object-centric studies, same account and date; JE150 and the voided payment cross-reference P2P §8-E |
| Privacy | Employee names appear in §6 as resolved by the account; a redacted edition can be produced on request |