Sample output from the Income Statement Review — Where the Margin Lives prompt in the Sonar AI Prompt Library, run against a NetSuite test account. Every name and number here is test data. Back to the post · The library
SuiteStep, LLC · Parent Company (Consolidated) · Subsidiary 1 and Subsidiary 2 · FY2025 Income Statement Review

Where the Margin Lives

Eighty-one cents of every FY2025 revenue dollar were posted through twenty-four summary journals. The highest gross margin in the business — 56.7% — sits in the invoiced channel, one tenth of the total, and four invoices marked "TEST" account for every revenue spike of the year.

Period under review
FY2025, Jan–Dec 2025 (accounting periods 156–170; all periods open at the review date)
Subsequent period
Jan–Aug 2026 compared with Jan–Aug 2025; balance sheets at Dec 2025 and Aug 2026
Basis of preparation
NetSuite Income Statement (-200) and Balance Sheet (-202), consolidated; transaction-level general ledger via SuiteQL for splits the reports do not provide
Tie-out
6,511 P&L lines on 1,425 posting transactions across 53 accounts; every account, monthly and subsidiary total agrees with the printed report to the cent (Appendix A)
Summary of findings

Five numbers and six findings

Revenue
$10,836,924.65
FY2025 consolidated
Gross margin
38.1%
Gross profit $4,127,076.89
Net income
$1,163,832.67
10.7% net margin
Cash at Dec 2025
$2,262,964.25
9.2 months of operating expense; no debt
Net working capital
$1,500,234.50
54.6-day operating cycle
  1. Revenue mix. Four channels, defined by posting source, earn gross margins of 37.2% (summary journals, product), 56.7% (invoiced), 19.8% (services) and 46.6% (cash sales). The largest channel is not the most profitable. Section 1.
  2. Revenue quality. Four invoices memoed "TEST" (INV788–INV791) contribute $281,243 of revenue and $302,717.94 of open receivables with no shipment and no cost of sales. They explain every monthly revenue spike. Adjusted, net income is $882,589.67 (8.4%). Section 2.
  3. Customer base. Eight corporate accounts that order in eleven or twelve months of the year supply $701,106.05 — 59.8% of invoiced product revenue. Section 2.
  4. Cost structure. Forty-two of forty-six operating expense accounts, and interest expense, share one identical monthly index. $1,484,104.94 (50.5%) of operating expense is an allocation and cannot be managed as posted. Section 3.
  5. Subsidiaries. Subsidiary 1 reports 13.6% net margin against 7.2% for Subsidiary 2; the difference is almost entirely direct-channel revenue, and all four TEST invoices sit in Subsidiary 1. Section 4.
  6. Since the close. Jan–Aug 2026 revenue is up 18.7% and net income 85.6% on the prior-year period; receivables are up 61.4% and inventory 109.4% since Dec 2025. Section 5.

Thirteen recommendations follow, six on revenue and seven on cost, each sized in dollars or marked "unmeasured", with a named verification step. Assumptions are stated in Section 1 and Appendix C.

Section 1

Revenue mix: the largest channel is not the most profitable

Split by posting source rather than by account, FY2025 revenue comprises four businesses with gross margins from 19.8% to 56.7%. The printed statement presents 4210 Revenue - Products as a single line of $10,063,960.01.

Channel (posting source)RevenueMixCost of salesGross profitGM
Summary journals — product4210 via JE105–JE116, JE129–JE140; paired with 5310 Purchases$8,820,845.1281.4%$5,542,303.76$3,278,541.3637.2%
Invoiced (B2B, 367 invoices)4210 + 4450 via CustInvc; paired with 5340 via ItemShip$1,176,828.9110.9%$509,396.64$667,432.2756.7%
Services (summary journals)4310 via JE; paired with 5360 3rd Party Contracting$767,029.947.1%$614,785.59$152,244.3519.8%
Cash sales (retail, 530 tickets)4210 + 4450 via CashSale; paired with 5340 via CashSale$72,220.680.7%$38,561.77$33,658.9146.6%
Unassigned cost5340 via item receipts IR657 and IR660 (vendor Bedline)——$4,800.00($4,800.00)—
Total — agrees with Income Statement$10,836,924.65100.0%$6,709,847.76$4,127,076.8938.1%
Figure 1
Each channel's revenue divided into cost of sales and gross profit; the thinnest margins carry the most dollars
Source: transactionaccountingline joined to account and transaction, FY2025 posting periods, grouped by transaction type (Appendix B, Q3). Bars represent 100% of each channel's revenue; revenue in dollars at right. Emerald marks the highest-margin channel.
Governing assumptions

The summary journals are a summary import, not an allocation of revenue. Twenty-four journals memoed "Beg Balance Entries - Sub 1" and "- Sub 2", one per subsidiary per month, carry $9,587,875.06 of revenue (88.5%), $6,157,089.35 of cost of sales (91.8%) and $2,481,254.35 of operating expense (84.4%). The revenue is treated as real. The month-to-month cost relationships inside them are not relied upon; see Section 3.

Cost of sales is paired with revenue by posting origin. 5310 Purchases and 5360 3rd Party Contracting post only through the same journals as 4210 and 4310 and are paired with them. 5340 Cost of Sales posts from item fulfillments and cash sales and is paired with the invoiced and retail channels. 5360 runs at a near-fixed 11.1% of 5310 in every month, so the 19.8% services margin is a product of the allocation rather than a measurement.

Section 2

Revenue quality: four test invoices explain every spike

The summary journals form a stable base between $670,066.68 and $801,166.68 a month. The three months that stand apart — May, September and December — are attributable entirely to the invoiced channel and, within it, to four invoices.

Figure 2
Monthly revenue by channel, FY2025; the TEST invoices are shown as a separate hatched segment
Stacked by posting source. Monthly totals agree with the printed Income Statement in all twelve months (Appendix A). The hatched segment is INV791 (May), INV788 (September), INV789 and INV790 (December).

The four invoices

INV791 Mercury Co. $73,976 (May), INV788 Haskell Associates $41,356 (September), INV790 Global Information $101,799 and INV789 Gotter inc. $64,112 (December) total $281,243, or 23.9% of invoiced revenue. Each carries the memo "TEST — customer name", has two item lines, no item fulfillment, no cost of sales, and remains open, with $302,717.94 outstanding including tax. All four were entered in Subsidiary 1 with header location 03: Los Angeles Distribution Center. Excluding them, the invoiced channel ranges between $60,204.98 and $84,992.78 a month: May falls from $158,968.78 to $84,992.78, September from $124,737.33 to $83,381.33 and December from $239,847.86 to $73,936.86.

The customer base behind the invoiced channel

Eight corporate accounts ordered in eleven or twelve months of the year: Jones Manufacturing $178,652.46 (15.2% of invoiced product revenue), Design Excellence Ltd. $111,256.56, Panaderia Co. $101,643.89, Davis Supplies $101,488.06, Realpoint inc. $75,850.29, Recreational Outfitters $51,123.19, Hugo Limited $41,440.26 and Karmabit $39,651.34. Together they placed 93 invoices worth $701,106.05 — 59.8% of invoiced product revenue — with no identifiable acquisition cost. Eight always-on individual customers add $9,565.83. The remaining 25 accounts ordered in two to nine months and total $176,321.03 (15.0%). Four further one-month buyers — Ghetti Ltd $2,577, Schmidt & Sons Consulting $1,616, Jasper and Associates $339 and Kasson Ltd $241 — add $4,773.

Figure 3
Composition of invoiced product revenue (4210 via CustInvc, $1,173,008.91) by ordering cadence
Always-on: 10–12 active months. Episodic: 2–9. Bought once: one active month. 49 customers, 367 invoices (Appendix B, Q6).
Attention — forecast risk

If INV788–INV791 are test data, FY2025 revenue is $10,555,681.65, gross profit $3,845,833.89 (36.4%) and net income $882,589.67 (8.4%); approximately one quarter of reported profit is not supported by shipments. If they are genuine orders, $302,717.94 has been receivable for nine to sixteen months with nothing shipped and no cost recorded. In either case the invoiced channel's margin on shipped business is 43.1% on $895,585.91, not 56.7%.

Quarterly view

FY2025RevenueGross profitGM reportedGM excl. TESTInvoiced channel
Q1$2,638,864.60$906,472.0934.4%34.4%$196,735.08
Q2$2,597,442.90$1,027,684.0139.6%37.8%$296,711.62
Q3$2,656,449.18$990,740.0437.3%36.3%$289,953.71
Q4$2,944,167.97$1,202,180.7540.8%37.3%$393,428.50
FY2025$10,836,924.65$4,127,076.8938.1%36.4%$1,176,828.91

The apparent margin expansion from Q1 to Q4 (34.4% to 40.8%) is largely the TEST invoices, which carry no cost: excluding them the year runs between 34.4% and 37.8%.

Order economics

367 invoices averaged $3,196.21 (median $249.99); 530 cash sales averaged $132.28 (median $69.99). Direct revenue by location: 03: Los Angeles Distribution Center $537,394.69; 05: Miami $305,735.33; 01: San Francisco Store $66,135.83 ($41,063.71 cash sales, $25,072.12 invoiced); 02: New York Store $53,767.74 ($31,156.97 and $22,610.77); $286,016 of one-month invoices carry no line location. Freight was charged at a flat $3.99 on every cash sale ($2,114.70) and $8.50 on 300 invoices, $10.00 on 50, $90.00 on 8 and $50.00 on 1 ($3,820.00 on 359 of 367 invoices) — $5,934.70 in total, unchanged across the year, against 358 item fulfillments and an account 6080 Freight-out that exists but has never been posted to.

Section 3

Cost structure: half of operating expense moves on one factor

Indexed to January = 100, forty-two of the forty-six operating expense accounts — and 8100 Interest Expense — trace the same twelve-point curve: 100, 78.3, 75.5, 94.7, 98.0, 105.9, 106.9, 86.7, 80.5, 95.5, 104.6, 121.3.

Figure 4
Monthly cost pools indexed to January = 100, against revenue; forty-two accounts collapse onto a single line
The allocated family is drawn once because every member has the identical index (Appendix B, Q5). Wages step in 5% increments of January; rent steps once in September; advertising is a fixed share of journal revenue.

$1,484,104.94 of operating expense — 50.5% — cannot be managed as posted. Travel, IT and telecom, marketing, insurance, professional and outside services, facilities other than rent, training, recruitment, sick leave, dues, bank charges, contributions and amortisation rise and fall together by the same percentage each month. The five accounts fed by vendor bills (Dell US, Brocade Communications Systems US, Staples US, XCOM US and CDW US, 24 bills each) follow the same curve, which indicates the bills were generated from the factor rather than the factor from the bills. Reducing any of these lines changes a formula, not a cost.

Three exact-ratio indicators. 8100 Interest Expense equals 6460 Taxi & Car Rental to the cent — $24,694.63 in FY2025 and $17,092.66 in Jan–Aug 2026 — while the Dec 2025 balance sheet carries no borrowing. The four telephone sub-accounts hold fixed proportions all year (Regular Service $81,028.44 : Internet $48,617.57 : Cellular $32,411.71 : Online Fees $64,823.43 = 2.5 : 1.5 : 1 : 2). 6060 Advertising, billed by one vendor, FrisCo US, in 24 bills, is exactly 2.6087% of that month's journal product revenue in every month ($230,109.00 in total).

Four accounts move independently. 6210 Salaries & Wages $971,755.70 steps in multiples of 5% of January; 6230 Payroll Expenses $102,539.95 tracks wages; 6610 Rent $150,040.00 was $12,100 a month through August and $13,310 from September (a 10% step, $14,520 annualised); and 6060 Advertising as described. Together they are $1,454,444.65, the other half of operating expense.

Figure 5
Operating expense pools ranked, FY2025; hatched pools are driven by the allocation factor
Pools sum to Total Expense $2,938,549.59. Wages & payroll = 6210 + 6230; IT & telecom = 6655 + 6670 family; Other G&A = 6240, 6320, 6330, 6350, 6880.

Ratios the ledger supports. IT and telecom is 33.4% of wages and telephone alone 23.3%. Travel and entertainment is 29.2% of wages; accommodation ($95,691.74) runs 1.55 times airfare ($61,736.62), consistent with long trips rather than frequent ones. Sick leave is 4.8% of wages. Advertising plus marketing is $446,187.13 — 4.1% of total revenue but 35.7% of the $1,249,049.59 of revenue that came through invoices and stores, the only revenue an advertising dollar could plausibly influence. Rent is 51.9% of facilities cost. No headcount or unit volumes exist in the ledger; nothing per employee or per unit is claimed.

Section 4

Subsidiaries: one factor, two outcomes

The two subsidiaries run the same journal structure at the same margin. The difference in their results — $815,711.29 against $348,121.38 — is the direct channel, and the four TEST invoices sit entirely in Subsidiary 1.

FY2025Subsidiary 1Subsidiary 2Consolidated
Revenue$5,987,948.32$4,848,976.33$10,836,924.65
of which summary journals (4210 + 4310)$5,046,250.06$4,541,625.00$9,587,875.06
of which direct (invoiced, cash, freight)$941,698.26 15.7% of revenue$307,351.33 6.3% of revenue$1,249,049.59
Journal gross margin (4210+4310 less 5310+5360)35.8%35.8%35.8%
Direct gross margin (direct revenue less 5340)60.5% 43.7% excl. TEST41.2%—
Gross margin, total39.7%36.1%38.1%
Operating expense (% of revenue)$1,546,532.04 (25.8%)$1,392,017.55 (28.7%)$2,938,549.59 (27.1%)
Net income (margin)$815,711.29 (13.6%)$348,121.38 (7.2%)$1,163,832.67 (10.7%)
Net income excluding TEST invoices$534,468.29 (9.4%)$348,121.38 (7.2%)$882,589.67 (8.4%)
Figure 6
Revenue by subsidiary and source, with gross margin by source
Source: Income Statement -200, FY2025, column = Subsidiary; journal revenue from the 24 "Beg Balance Entries" journals (Appendix B, Q7). Direct = revenue not posted by journal.

Every allocated pool splits between the subsidiaries in the same proportion as the journals themselves — advertising 52.6 : 47.4, wages 52.6 : 47.4, travel 52.9 : 47.1, IT 52.9 : 47.1, interest 52.9 : 47.1 — and rent is $75,020.00 in each. Subsidiary 2 therefore carries operating expense at 28.7% of revenue not because it spends more but because it has less direct revenue over which to spread the same factor. Subsidiary 2's direct business is 05: Miami ($305,735.33, including $357.00 of freight) plus one invoice of $1,616; Subsidiary 1 holds Los Angeles, both stores and all four TEST invoices. Excluding the TEST invoices, the net income gap narrows from $467,589.91 to $186,346.91.

Section 5

Since the close: growth is real, and so is the working-capital cost

Jan–Aug 2026 against the same eight months of 2025: revenue up 18.7%, gross margin up 2.9 points, operating expense up 8.7%; net income up 85.6%. Receivables rose 61.4% and inventory 109.4% since Dec 2025.

Jan–Aug20252026Change
Revenue$6,939,570.56$8,238,204.20+18.7%
Cost of sales$4,365,255.56$4,945,111.67+13.3%
Gross profit (GM)$2,574,315.00 (37.1%)$3,293,092.53 (40.0%)+27.9%
Operating expense (% of revenue)$1,913,464.38 (27.6%)$2,079,214.42 (25.2%)+8.7%
Other expense$16,048.00$17,017.16—
Net income (margin)$644,802.62 (9.3%)$1,196,785.95 (14.5%)+85.6%

Sixteen summary journals supply $6,940,541.72 of 2026 revenue (84.2%), so the mix finding stands. Accounts absent from FY2025 have begun to post — 4320 Sales Returns & Allowances $149.95, 5370 Stock Adjustment ($9,140.00), 5205 Purchase Price Variance $765.00, 6690 Bad Debt Expense $149.95, 6370 Legal Fees $2,000.00, 6250 Automobile Expense $2,000.00 — the first transaction-driven costs the ledger has shown.

Figure 7
Jan–Aug 2026 against Jan–Aug 2025: growth by operating expense pool, against revenue growth of 18.7%
Four allocated pools grew by an identical 6.51%: the factor grew, not consumption. Every pool grew more slowly than revenue.
Cash · Aug 2026
$2,647,366.57
+17.0%; 10.2 months of operating expense
Receivables
$2,108,404.79
+61.4% since Dec 2025
Inventory
$2,095,945.97
+109.4% since Dec 2025
Payables
$1,383,823.24
+71.5% since Dec 2025
Debt
$2,000.00
2410 Line of Credit Payable; none at Dec 2025

Operating cycle at Dec 2025. Receivables $1,305,952.68 represent 44.0 days of revenue; inventory $1,001,084.33, 54.5 days of total cost of sales; payables $806,802.51, 43.9 days — a 54.6-day cycle holding $1,500,234.50 of net working capital, with cash of $2,262,964.25 covering 9.2 months of operating expense and no debt. Each ten days of DSO represents $296,902.05 of cash. Sales tax is payable in eight states at Dec 2025 ($113,747.53) and twelve at Aug 2026 ($217,882.59). Capital stock increased by $390,000.00 to $2,658,382.83 in 2026; retained earnings of $217,235.72 plus FY2025 net income equal the $1,381,068.39 shown at Aug 2026.

Attention — two inconsistencies

Interest expense with no debt. $24,694.63 of interest expense in FY2025 and $17,092.66 in 2026 against a balance sheet showing no borrowing until a $2,000.00 line of credit appears in 2026; both figures equal Taxi & Car Rental exactly.

Receivables the invoices do not explain. Of the $1,305,952.68 A/R at Dec 2025, $998,098.61 (76.4%) was posted by journals. Invoices net of payments contribute $307,854.07, of which $302,717.94 is the four TEST invoices, leaving $5,136.13 of genuinely open invoiced receivables. At Aug 2026 journals still carry $1,229,547.01 (58.3%) of the $2,108,404.79.

Sub-ledger caveat. Inventory in Stock stood at $1,001,084.33 at Dec 2025 against $552,758.41 of item-driven cost of sales (5340) for the year — 661 days of supply; at Aug 2026 it is $2,095,945.97 against a 2026 run rate implying 1,133 days. The journal-posted cost of sales in 5310 never relieves inventory, so the general ledger cannot establish whether the stock supports the wholesale business or sits beside it. The item sub-ledger (Inventory Valuation report) is the appropriate source.

Recommendations — increase revenue

Ranked by dollars at stake

01

Resolve the four TEST invoices before FY2025 is quoted externally

INV788, INV789, INV790 and INV791 are $281,243 of 4210 revenue and $302,717.94 of open 1110 Trade Receivables with no shipment and no 5340 cost. If genuine, ship and collect; if test data, reverse and restate revenue to $10,555,681.65 and net income to $882,589.67. Until resolved, every direct-channel margin carries a 23.9% uncertainty.

Verify: open each invoice — memo begins "TEST —", status Open, Related Records shows no fulfillment; confirm with the preparer for entries dated 2025-05-20, 2025-09-30, 2025-12-04 and 2025-12-10.
$302,717.94
receivable at risk
02

Expand the eight always-on corporate accounts

They represent $701,106.05 of 4210 invoiced revenue on 93 invoices, order monthly, and carry no identifiable acquisition cost. A 10% increase in order value is $70,110.61 of revenue and approximately $30,232.68 of gross profit at the channel's 43.1% margin excluding the TEST invoices. Jones Manufacturing alone is 15.2% of the channel — a concentration to protect as well as grow.

Verify: Sales by Customer Detail for the eight accounts, FY2025 — item mix and any month whose order fell below the account's own median.
$70,110.61
revenue, estimated
03

Reprice or restructure services (4310)

Services earned $767,029.94 at 19.8% gross margin against 37.2% on product. Each five points of margin is $38,351.50 a year; matching the product margin would be $132,846.18. Because 5360 is a near-fixed 11.1% of 5310, the margin is an allocation output; the real delivery cost should be confirmed before price is changed.

Verify: the source system behind JE105–JE116 / JE129–JE140 — whether 5360 is booked from contractor invoices or as a percentage of purchases.
$38,351.50
per 5 pts GM, estimated
04

Move the 25 episodic accounts toward a monthly cadence

They ordered in two to nine months of twelve and total $176,321.03 (15.0% of invoiced product revenue); Pineapple Republic ($76,760.96, nine months) is the largest. The ledger does not record why they did not order in the gap months, so the uplift is not sized.

Verify: per-account gap months from the FY2025 invoice list; open cases or returns in those months.
Unmeasured
$176,321.03 base
05

Recover freight in full

Freight revenue was $5,934.70 on 897 orders — a flat $3.99 on all 530 cash sales and predominantly $8.50 on invoices — unchanged across the year, while 6080 Freight-out has no postings and 358 fulfillments were shipped. Either carriers are paid within the 5310 journals or freight cost is absent from the books.

Verify: carrier invoices for FY2025; search journal lines for a freight vendor; compare with the $5,934.70 recovered.
Unmeasured
cost not on books
06

Increase retail ticket size

530 cash sales at $132.28 average and $69.99 median, 46.6% gross margin, across two stores ($41,063.71 San Francisco, $31,156.97 New York). Ten dollars more per ticket is $5,300 a year — modest, but the highest-margin revenue after the invoiced channel.

Verify: Sales by Item for CashSale, FY2025 — attach rate of the top five items.
$5,300
revenue, estimated
Recommendations — reduce cost

Ranked by dollars at stake

01

Correct the posting basis before reducing any line

Forty-two operating accounts worth $1,484,104.94 (50.5% of operating expense) and 8100 Interest Expense share one monthly index. They should be re-posted from source — payroll register, vendor bills, lease, carrier and telecom invoices — or, at minimum, the allocation basis should be documented in the journal memo. Every cost recommendation below is conditional on this one.

Verify: the FY2025 journal template behind "Beg Balance Entries": a single driver column should reproduce the index 100, 78.3, 75.5 … 121.3.
$1,484,104.94
unmanageable as posted
02

Reclassify interest expense

8100 Interest Expense is $24,694.63 in FY2025 and $17,092.66 in Jan–Aug 2026, equal to 6460 Taxi & Car Rental to the cent in both periods, with no borrowing on the Dec 2025 balance sheet. It appears to be a mis-mapped allocation line that understates operating expense and misstates other expense.

Verify: the 8100 lines in JE105–JE116 / JE129–JE140; confirm no loan or card liability existed before 2410 appeared in 2026.
$24,694.63
misclassified
03

Apply a travel policy once travel is posted from source

Travel and entertainment is $283,988.39 — 29.2% of wages — with accommodation at $95,691.74 running 1.55 times airfare and business meals at $55,562.95. A 10% reduction is $28,398.84. The figure is currently allocated, so no saving can be realised until the pool is posted from expense reports.

Verify: expense-report records for FY2025 (none exist in the GL); trip count and nights per trip.
$28,398.84
estimated, after 01
04

Renegotiate the advertising arrangement to performance terms

FrisCo US billed $230,109.00 across 24 bills — exactly 2.6087% of journal product revenue each month, which describes a fee formula rather than a media plan. With marketing the total is $446,187.13, or 35.7% of the $1,249,049.59 of revenue that came through invoices and stores.

Verify: the FrisCo contract; whether 2.6087% is written into it; any attribution data for the eight always-on accounts.
$230,109.00
contract under review
05

Audit telecom and IT once posted from invoices

$324,115.46 of IT and telecom is 33.4% of wages; telephone alone is $226,881.15 in four sub-accounts holding exact 2.5 : 1.5 : 1 : 2 proportions all year, which carrier invoices would not produce. The saving is unmeasurable until source documents replace the factor.

Verify: Brocade Communications Systems US bills ($81,028.44, 24 bills) against 6671 — whether the bill amounts follow the factor curve.
Unmeasured
$324,115.46 pool
06

Confirm the rent step

6610 Rent moved from $12,100 to $13,310 a month in September 2025, a 10% increase worth $14,520 a year, and is the only facilities line that moves independently of the factor. If the lease contains an escalator this is it; otherwise the step is unexplained.

Verify: the lease escalation clause; the September 2025 journal line memo.
$14,520
annualised step
07

Establish the purpose of the inventory build

Inventory in Stock rose from $1,001,084.33 to $2,095,945.97 between Dec 2025 and Aug 2026 — an additional $1,094,861.64 of cash on hand as stock. Measured against the only cost of sales that relieves it (5340), that is 661 days of supply rising to 1,133. Carrying cost is not recorded, so it is not sized.

Verify: Inventory Valuation by location; 5340 shipped cost by month in 2026; whether the 5310 journals should have relieved 1210.
Unmeasured
$1,094,861.64 added
Limits of the evidence

What this statement cannot establish

Appendix A

Sources and tie-out

NetSuite report runs

ReportFilters submittedHeader as renderedPeriod verifiedUsed for
Income Statement (-200)crit_1_mod = LFY (periods 156–170); crit_2 = -1 Consolidated; range = acctmonthFY 2025, twelve monthly columns + TotalYesMonthly P&L, Figures 2 and 4, quarterly table
Income Statement (-200)crit_1_mod = LFY; crit_2 = -1; range = allFY 2025YesAccount totals, P&L strip, pools
Income Statement (-200)crit_1_mod = LFY; crit_2 = -1; range = subsid_sicFY 2025, Subsidiary 1 / Subsidiary 2 / TotalYesSection 4
Income Statement (-200)crit_1_from = 156, crit_1_to = 165 (CUSTOM); crit_2 = -1From Jan 2025 to Aug 2025YesSection 5 comparison base
Income Statement (-200)crit_1_from = 173, crit_1_to = 182 (CUSTOM); crit_2 = -1From Jan 2026 to Aug 2026YesSection 5 current period
Balance Sheet (-202)crit_1_to = 170 (CUSTOM); crit_2 = -1End of Dec 2025YesOperating cycle, A/R decomposition
Balance Sheet (-202)crit_1_to = 182 (CUSTOM); crit_2 = -1End of Aug 2026YesBalance-sheet strip

Report runs were issued sequentially; each response carried periodVerified = true and a rendered header matching the requested period. Consolidated context (-1) includes Subsidiary 1, Subsidiary 2 and xElim; xElim recorded no P&L activity.

Tie-out of derived figures to the printed reports

ItemPrinted reportDerived from GL / componentsDifference
Total Income (channels, Section 1)$10,836,924.65$10,836,924.650.00
Total Cost of Sales (channels + unassigned)$6,709,847.76$6,709,847.760.00
5340 Cost of Sales by posting source (ItemShip + CashSale + ItemRcpt)$552,758.41$552,758.410.00
Total Expense, 46 accounts, eleven pools$2,938,549.59$2,938,549.590.00
Net Income (Income − COGS − Expense − Other)$1,163,832.67$1,163,832.670.00
Monthly revenue totals, channels vs report (12 of 12)12 months12 agree0.00
Subsidiary 1 + Subsidiary 2 revenue$10,836,924.65$10,836,924.650.00
Subsidiary 1 + Subsidiary 2 net income$1,163,832.67$1,163,832.670.00
Balance Sheet Dec 2025: Liabilities + Equity vs Assets$4,570,001.26$4,570,001.260.00
Balance Sheet Aug 2026: Liabilities + Equity vs Assets$6,863,556.10$6,863,556.100.00
Retained earnings roll (Dec 2025 RE + FY2025 NI = Aug 2026 RE)$1,381,068.39$1,381,068.390.00
A/R Dec 2025 (journals + invoices net of payments)$1,305,952.68$1,305,952.680.00

General ledger census, FY2025 P&L postings

Transaction typeTransactionsGL linesNet P&L effectAccounts touched
Journal241,368$924,836.734210, 4310, 5310, 5360, 40 expense accounts, 8100
CustInvc3671,422$1,176,828.914210, 4450
CashSale5301,626$33,658.914210, 4450, 5340
ItemShip3581,047($509,396.64)5340
VendBill1441,032($457,295.24)6060, 6240, 6630, 6640, 6655, 6671
ItemRcpt216($4,800.00)5340
Total1,4256,511$1,163,832.6753 accounts
Appendix B

Queries

All queries are SuiteQL executed against the production account on 2026-09-18 with Administrator permissions. Period ids: FY2025 monthly periods are 156–158, 160–162, 164–166, 168–170 (159, 163, 167 are quarter roll-ups and receive no postings). Amounts on transactionaccountingline follow the GL sign convention; revenue is credit-negative and is negated for presentation.

Q1Accounting periods, 2025–202630 rows

Resolves period names to internal ids for report filters and WHERE clauses.

SELECT id, periodname, TO_CHAR(startdate,'YYYY-MM-DD') AS startdate, isquarter, isyear, closed
FROM accountingperiod
WHERE startdate >= TO_DATE('2025-01-01','YYYY-MM-DD') AND startdate < TO_DATE('2026-10-01','YYYY-MM-DD')
ORDER BY startdate, isyear DESC, isquarter DESC
Q2Census of FY2025 P&L postings by transaction type6 rows

Establishes which transaction types post to P&L accounts and the line and transaction counts used in the tie-out.

SELECT t.type, COUNT(DISTINCT t.id) AS txns, COUNT(*) AS lines, ROUND(SUM(-tal.amount),2) AS amt
FROM transactionaccountingline tal
JOIN transaction t ON tal.transaction = t.id
JOIN account a ON tal.account = a.id
WHERE t.posting = 'T' AND tal.posting = 'T'
  AND t.postingperiod BETWEEN 156 AND 170
  AND a.accttype IN ('Income','COGS','Expense','OthExpense','OthIncome')
GROUP BY t.type ORDER BY t.type
Q3Revenue and cost of sales by account and posting type11 rows

The channel split in Section 1. Note that account.acctname is not exposed to SuiteQL; fullname is used.

SELECT a.acctnumber, a.fullname, a.accttype, t.type, COUNT(DISTINCT t.id) AS txns, ROUND(SUM(-tal.amount),2) AS amt
FROM transactionaccountingline tal
JOIN transaction t ON tal.transaction = t.id
JOIN account a ON tal.account = a.id
WHERE t.posting = 'T' AND tal.posting = 'T'
  AND t.postingperiod BETWEEN 156 AND 170
  AND a.accttype IN ('Income','COGS','OthIncome')
GROUP BY a.acctnumber, a.fullname, a.accttype, t.type
ORDER BY a.acctnumber, t.type
Q4Monthly matrix by account and posting type686 rows, reduced in a sandbox

Feeds Figures 2 and 4, the exact-ratio tests (5360 / 5310, 6060 / journal 4210, 8100 = 6460) and the monthly tie-out. Reduced with JavaScript; rows never left the browser.

SELECT a.acctnumber AS acct, a.accttype AS atype, t.type AS ttype, t.postingperiod AS per,
       ROUND(SUM(-tal.amount),2) AS amt, COUNT(DISTINCT t.id) AS txns
FROM transactionaccountingline tal
JOIN transaction t ON tal.transaction = t.id
JOIN account a ON tal.account = a.id
WHERE t.posting = 'T' AND tal.posting = 'T'
  AND t.postingperiod BETWEEN 156 AND 170
  AND a.accttype IN ('Income','COGS','Expense','OthExpense','OthIncome')
GROUP BY a.acctnumber, a.accttype, t.type, t.postingperiod
Q5Expense accounts by month, for the allocation-index cluster test564 rows, reduced in a sandbox

Each account's twelve monthly values are indexed to January = 100 and rounded to one decimal; accounts with an identical index vector are grouped. Result: one cluster of 39 accounts (including 8100), a second of 3 (6240, 6640, 6759) differing only in September rounding (80.4 vs 80.5), and 6630 differing in November rounding (104.7 vs 104.6) — 42 operating accounts on one factor; 6060, 6210, 6230 and 6610 independent.

SELECT a.acctnumber AS acct, a.accttype AS atype, t.postingperiod AS per, ROUND(SUM(-tal.amount),2) AS amt
FROM transactionaccountingline tal
JOIN transaction t ON tal.transaction = t.id
JOIN account a ON tal.account = a.id
WHERE t.posting = 'T' AND tal.posting = 'T'
  AND t.postingperiod BETWEEN 156 AND 170
  AND a.accttype IN ('Expense','OthExpense')
GROUP BY a.acctnumber, a.accttype, t.postingperiod
Q6Direct-channel revenue by transaction, customer, period, subsidiary and location1,793 rows + 77 customers, reduced in a sandbox

Feeds Section 2: customer cadence (active months out of twelve), order counts and averages, freight values, location split and subsidiary split. Customer names via the entity table; entity type via BUILTIN.DF(e.type).

SELECT t.id AS tid, t.type AS ttype, t.entity AS ent, t.postingperiod AS per,
       tl.subsidiary AS sub, tl.location AS loc, a.acctnumber AS acct, ROUND(SUM(-tal.amount),2) AS amt
FROM transactionaccountingline tal
JOIN transaction t ON tal.transaction = t.id
JOIN transactionline tl ON tl.transaction = t.id AND tl.id = tal.transactionline
JOIN account a ON tal.account = a.id
WHERE t.posting = 'T' AND tal.posting = 'T'
  AND t.postingperiod BETWEEN 156 AND 170
  AND a.accttype = 'Income' AND t.type IN ('CustInvc','CashSale')
GROUP BY t.id, t.type, t.entity, t.postingperiod, tl.subsidiary, tl.location, a.acctnumber;

SELECT e.id AS ent, e.entityid AS name, BUILTIN.DF(e.type) AS etype
FROM entity e
WHERE e.id IN (SELECT DISTINCT t.entity FROM transaction t
               WHERE t.type IN ('CustInvc','CashSale') AND t.postingperiod BETWEEN 156 AND 170)
Q7The FY2025 summary journals26 rows

Identifies JE105–JE116 (Subsidiary 1) and JE129–JE140 (Subsidiary 2), dated the first of each month, 62–63 lines each, plus two two-line "Negative Cash Flow" journals with no income effect.

SELECT t.id, t.tranid, TO_CHAR(t.trandate,'YYYY-MM-DD') AS trandate, t.postingperiod AS per, t.memo,
       MIN(tl.subsidiary) AS sub, COUNT(*) AS lines,
       ROUND(SUM(CASE WHEN a.accttype='Income' THEN -tal.amount ELSE 0 END),2) AS income
FROM transaction t
JOIN transactionaccountingline tal ON tal.transaction = t.id
JOIN transactionline tl ON tl.transaction = t.id AND tl.id = tal.transactionline
JOIN account a ON tal.account = a.id
WHERE t.type = 'Journal' AND t.posting = 'T' AND t.postingperiod BETWEEN 156 AND 170
GROUP BY t.id, t.tranid, t.trandate, t.postingperiod, t.memo
ORDER BY t.postingperiod, t.tranid
Q8Vendor concentration behind vendor-billed expense accounts6 rows

Each of the six accounts fed by vendor bills has exactly one vendor and 24 bills.

SELECT a.acctnumber AS acct, e.entityid AS vendor, COUNT(DISTINCT t.id) AS bills,
       ROUND(SUM(tal.amount),2) AS amt, ROUND(MIN(tal.amount),2) AS min_line, ROUND(MAX(tal.amount),2) AS max_line
FROM transactionaccountingline tal
JOIN transaction t ON tal.transaction = t.id
JOIN account a ON tal.account = a.id
LEFT JOIN entity e ON e.id = t.entity
WHERE t.type = 'VendBill' AND t.posting = 'T' AND tal.posting = 'T'
  AND t.postingperiod BETWEEN 156 AND 170
  AND a.accttype IN ('Expense','OthExpense')
GROUP BY a.acctnumber, e.entityid
ORDER BY a.acctnumber, SUM(tal.amount) DESC
Q9Missing-account audit12 rows

Confirms that returns (4320), discounts (4520), freight-out (6080), bad debt (6690), stock adjustment (5370) and purchase price variance (5205) exist in the chart of accounts and are active; none carried FY2025 postings.

SELECT a.acctnumber, a.fullname, a.accttype, a.isinactive
FROM account a
WHERE a.acctnumber IN ('4320','4330','4400','5370','5205','6690','8300','6340','4310','5360')
   OR LOWER(a.fullname) LIKE '%discount%' OR LOWER(a.fullname) LIKE '%shrink%'
   OR LOWER(a.fullname) LIKE '%obsolesc%' OR LOWER(a.fullname) LIKE '%freight%'
   OR LOWER(a.fullname) LIKE '%bad debt%'
ORDER BY a.acctnumber
Q10Large FY2025 invoices: shipments, location and cost recorded9 rows

Surfaces the four TEST invoices (memo, status Open, 2 item lines, 0 shipments, no COGS) alongside five genuine large invoices from Jones Manufacturing and Pineapple Republic (status Paid). Shipments via nexttransactionlinelink, which is populated in this account where nexttransactionlink is not.

SELECT t.tranid, TO_CHAR(t.trandate,'YYYY-MM-DD') AS trandate, e.entityid AS customer, t.foreigntotal, t.status, t.memo,
  (SELECT COUNT(*) FROM transactionline tl WHERE tl.transaction = t.id AND tl.mainline='F' AND tl.taxline='F' AND tl.item IS NOT NULL) AS item_lines,
  (SELECT COUNT(*) FROM nexttransactionlinelink nl JOIN transaction s ON s.id = nl.nextdoc
     WHERE nl.previousdoc = t.id AND s.type='ItemShip') AS shipments,
  (SELECT MIN(tl.location) FROM transactionline tl WHERE tl.transaction = t.id) AS loc,
  (SELECT ROUND(SUM(-tal.amount),2) FROM transactionaccountingline tal JOIN account a ON a.id = tal.account
     WHERE tal.transaction = t.id AND a.accttype='COGS') AS cogs
FROM transaction t JOIN entity e ON e.id = t.entity
WHERE t.type='CustInvc' AND t.postingperiod BETWEEN 156 AND 170 AND t.foreigntotal >= 20000
ORDER BY t.foreigntotal DESC
Q11A/R movement by posting source and era12 rows

Decomposes 1110 Trade Receivables at Dec 2025 and Aug 2026 into journal-posted and invoice-driven components.

SELECT t.type,
       CASE WHEN t.postingperiod BETWEEN 156 AND 170 THEN 'FY2025'
            WHEN t.postingperiod < 156 THEN 'pre-2025' ELSE 'FY2026' END AS era,
       COUNT(DISTINCT t.id) AS txns, ROUND(SUM(tal.amount),2) AS ar_movement
FROM transactionaccountingline tal
JOIN transaction t ON t.id = tal.transaction
JOIN account a ON a.id = tal.account
WHERE a.acctnumber = '1110' AND t.posting='T' AND tal.posting='T' AND t.postingperiod <= 182
GROUP BY t.type, CASE WHEN t.postingperiod BETWEEN 156 AND 170 THEN 'FY2025'
                      WHEN t.postingperiod < 156 THEN 'pre-2025' ELSE 'FY2026' END
ORDER BY 2, 1
Q12Supporting look-ups3 queries

The two item receipts posting to 5340; the 2026 summary journals; and the subsidiary of the TEST invoices.

-- IR657 and IR660 (vendor Bedline), $2,400 each to 5340
SELECT t.tranid, TO_CHAR(t.trandate,'YYYY-MM-DD') AS trandate, e.entityid AS entity, ROUND(SUM(-tal.amount),2) AS cogs
FROM transactionaccountingline tal JOIN transaction t ON t.id = tal.transaction
JOIN account a ON a.id = tal.account LEFT JOIN entity e ON e.id = t.entity
WHERE t.type='ItemRcpt' AND a.acctnumber='5340' AND t.postingperiod BETWEEN 156 AND 170
GROUP BY t.tranid, t.trandate, e.entityid;

-- Sixteen 2026 summary journals: $6,940,541.72 income
SELECT COUNT(DISTINCT t.id) AS journals,
       ROUND(SUM(CASE WHEN a.accttype='Income' THEN -tal.amount ELSE 0 END),2) AS income
FROM transactionaccountingline tal JOIN transaction t ON t.id = tal.transaction JOIN account a ON a.id = tal.account
WHERE t.type='Journal' AND t.posting='T' AND tal.posting='T'
  AND t.postingperiod BETWEEN 173 AND 182 AND t.memo LIKE 'Beg Balance%';

-- TEST invoices: all Subsidiary 1
SELECT t.tranid, MIN(tl.subsidiary) AS sub, s.name AS subname
FROM transaction t JOIN transactionline tl ON tl.transaction = t.id JOIN subsidiary s ON s.id = tl.subsidiary
WHERE t.tranid IN ('INV788','INV789','INV790','INV791')
GROUP BY t.tranid, s.name ORDER BY t.tranid
Appendix C

Method, assumptions and verification

Order of work

  1. Ingest and tie out: the FY2025 Income Statement was run by month, in total and by subsidiary; every account total derived from the general ledger was reconciled to the printed subtotal before analysis proceeded.
  2. Analyse: channel P&L by posting source; monthly trend; customer cadence; order economics; expense-pool indexing and cluster detection; ratio checks limited to what the ledger supports; missing-account audit; balance-sheet and subsequent-period review.
  3. Confirm: the goal, three blocking questions with recommended defaults, and the assumptions below were presented and accepted before the document was built.
  4. Build and verify: every dollar figure in the prose and tables was matched programmatically against a dictionary of values re-derived from the parsed rows and transcribed reports; arithmetic identities (channel, pool, cadence, A/R and balance-sheet sums) were checked independently. The same check runs in this document at load; see below.

Assumptions

  1. The twenty-four "Beg Balance Entries" journals are a summary import from another system. Their revenue is treated as real; their internal cost relationships are not relied upon. Their exclusion would remove 88.5% of revenue, so they are retained and disclosed rather than excluded.
  2. The four TEST invoices are retained in the tied-out figures and shown separately; adjusted figures are provided wherever they change a conclusion.
  3. Cost of sales is paired with revenue by posting origin: 5310 with journal 4210; 5360 with 4310; 5340 (ItemShip) with invoiced revenue; 5340 (CashSale) with cash sales; the $4,800.00 posted by two item receipts is left unassigned.
  4. Customer names in the entity table denote distinct entities.
  5. 4450 Freight Revenue is the full freight recovery; 6080 Freight-out exists but has no postings.
  6. 6060 Advertising, at a constant 2.6087% of journal product revenue, is a fee arrangement rather than performance media.
  7. The 42-account block with an identical monthly index is driven by one allocation factor; 8100 Interest Expense, equal to 6460 in both periods with no borrowing recorded, is a mis-mapped member of that block.
  8. Not undertaken: tax, valuation, financing, cash deployment, headcount-based or benchmark-based claims.

Classification rules

Channel = transaction type of the posting transaction (Journal, CustInvc, CashSale) and account (4310 for services). Customer cadence = number of distinct FY2025 monthly periods in which a customer's invoices posted 4210 revenue: always-on 10–12, episodic 2–9, bought once 1. Expense pools group accounts as listed under Figure 5. Allocation-factor membership = identical January-indexed monthly vector to one decimal place (two members differ by 0.1 in one month through rounding and are included).

Verification

Before publication, 205 dollar figures (142 distinct) in the prior draft were extracted and matched against the source dictionary: 138 matched exactly; the four exceptions were regular-expression artifacts (trailing punctuation and a truncated approximation, since removed). 43 further figures introduced in Section 4, the quarterly table and the location split matched 43 of 43. Twenty-five arithmetic identities passed. The same procedure runs in this document when it is opened:

Live verification of this document

Running…