Revenue grew 65% year-over-year while total costs grew only 40% — a 12.8-point improvement in cost-to-revenue efficiency. But the aggregate hides three structural risks: overhead more than doubled, a one-time July rent event of ~$142K distorted the facilities line, and 97% of costs post to the GL with no department attribution.
Costs were classified into four cost centers by GL account (mapping rules in §8). The benchmark test for every center: did it grow slower than the +65.2% revenue growth?
| Cost Center | FY26 YTD | FY25 YTD | Δ $ | Δ % | vs. Revenue Growth (+65.2%) |
|---|---|---|---|---|---|
| Procurement / COGS | $3,128,346 | $2,393,576 | +$734,770 | +30.7% | HEALTHY — below revenue growth |
| Labor (salaries, payroll tax, commissions, direct labor, workers’ comp) | $747,961 | $527,125 | +$220,836 | +41.9% | HEALTHY — below revenue growth |
| Overhead (facilities, T&E, insurance, D&A, prof. fees, bad debt) | $649,163 | $311,641 | +$337,521 | +108.3% | CRITICAL — 1.7× revenue growth |
| Technology (IT, telecom, computers, online fees) | $60,049 | $44,925 | +$15,124 | +33.7% | UNDER-INVESTED vs. benchmark (§5) |
| Total | $4,585,518 | $3,277,267 | +$1,308,251 | +39.9% |
Pulling the 20-month trend surfaced two anomalies that the annual totals concealed — both change the optimization strategy.
6610) ran $9.5–11.8K/mo through Jan 2026, stepped up to ~$27–32K/mo in Feb 2026 (+$20K/mo run-rate), then posted a single ~$142K charge in July 2026. That one posting is ~45% of YTD rent. If it is an annual prepayment, the P&L timing should be smoothed via amortization; if it is a lease settlement or true-up, it is one-time and the "297% rent growth" narrative overstates the structural problem. Recommend immediate drill-down on the July 6610 postings.
5071) grew 291% YoY, which supports the margin-event hypothesis.
The single most consequential finding of this analysis is structural, not financial: 97.3% of all cost postings carry no department code, making true departmental P&L accountability impossible today.
| Department | FY26 YTD | FY25 YTD | Δ $ | Δ % | Note |
|---|---|---|---|---|---|
| Unattributed ("No Department") | $4,461,163 | $3,095,147 | +$1,366,016 | +44.1% | 97.3% OF COST BASE |
| Operations | $55,549 | $55,417 | +$132 | +0.2% | Flat — depreciation only |
| Administration | $26,367 | $5,833 | +$20,533 | +352% | New auto + leasehold depreciation |
| Marketing | $14,583 | $0 | +$14,583 | new | F&F depreciation began FY26 |
| Sales | $14,330 | $119,370 | −$105,041 | −88% | FY25 COGS coding moved elsewhere |
| Production | $6,975 | $0 | +$6,975 | new | Mfg WIP activity began FY26 |
| Products | $4,469 | $1,500 | +$2,969 | +198% | Small base |
| Engineering | $2,083 | $0 | +$2,083 | new | Small base |
| Support / Professional Services | $0 | $0 | — | — | No cost postings either year |
The Sales department's −88% swing reflects a coding-practice change (COGS Purchases stopped being tagged to Sales in FY26), not a real cost reduction — further evidence that department dimension usage is inconsistent.
| GL Account | Cost Center | FY26 YTD | FY25 YTD | Δ $ | Δ % | Flag |
|---|---|---|---|---|---|---|
| 5010 · COGS – Purchases | Procurement | $3,353,131 | $2,391,329 | +$961,802 | +40.2% | OK vs +65% rev |
| 6610 · Rent Expense | Overhead | $312,294 | $78,500 | +$233,794 | +297.8% | JULY EVENT — §3 |
| 6210 · Salaries & Wages | Labor | $491,046 | $334,646 | +$156,401 | +46.7% | WATCH |
| 6070 · Commission Expense | Labor | $186,667 | $131,667 | +$55,000 | +41.8% | Variable w/ sales |
| 6870 · Depr – Leasehold Improvements | Overhead | $66,500 | $49,583 | +$16,917 | +34.1% | Facilities-linked |
| 6820 · Depr – Furniture & Fixtures | Overhead | $26,250 | $11,667 | +$14,583 | +125% | Facilities-linked |
| 5020 · Direct Labor & Overtime | Labor | $38,361 | $24,781 | +$13,580 | +54.8% | OT premium likely |
| 6690–6695 · Bad Debt & Deductions | Overhead | $11,756 | $164 | +$11,592 | new | NEW LEAKAGE |
| 6060 · Advertising | Overhead | $43,124 | $33,208 | +$9,916 | +29.9% | OK |
| 6830 · Depr – Automotive | Overhead | $10,750 | $1,500 | +$9,250 | +617% | New vehicles |
| 5071 · Purchase Price Variance | Procurement | $8,776 | $2,246 | +$6,530 | +290.7% | PRICE DISCIPLINE |
| 6410–6460 · T&E cluster (all) | Overhead | $64,049 | $44,925 | +$19,124 | +42.6% | Taxi +182% within |
| Ratio | FY26 Actual | Typical Range* | Assessment |
|---|---|---|---|
| COGS % of revenue | 48.3% | 50–65% | FAVORABLE ~52% gross margin, above peer median |
| SG&A labor % of revenue | 11.5% | 10–18% | IN RANGE |
| Facilities / rent % of revenue | 4.8% | 2–4% | ABOVE RANGE — inflated by July event; ~3.9% excluding it, still at the top of range |
| Technology % of revenue | 0.9% | 2–5% | UNDER-INVESTED — may indicate deferred IT spend or shadow spend in other lines |
| T&E % of revenue | 1.0% | 0.5–1.5% | IN RANGE but growing faster than revenue-adjusted expectations |
| Bad debt / deductions % of revenue | 0.18% | < 0.3% | EMERGING — five new deduction sub-accounts appeared in FY26 |
* Benchmark ranges are general industry rules-of-thumb for mid-market product / distribution businesses, applied from analyst knowledge — not pulled from a live subscription benchmark service. Validate against your industry code (e.g., RMA Annual Statement Studies, IBISWorld) before using in board materials. See Assumptions (§8).
The top 10 vendors represent ~$1.90M of billed spend — negotiating leverage exists precisely because purchase volume grew 40% YoY. High bill-count vendors (B. Brown at 242 bills, Bull's Head at 257) are also process-cost candidates for consolidated invoicing.
| # | Vendor | Bills | Total Billed | % of Top-10 | Negotiation Angle |
|---|---|---|---|---|---|
| 1 | Brocade Communications Systems | 26 | $473,731 | 24.9% | Volume-tier renegotiation — largest single exposure |
| 2 | ACME Industries | 7 | $295,441 | 15.5% | Few large bills — contract-level repricing |
| 3 | Regal Grains and Beans | 26 | $199,391 | 10.5% | Commodity input — index-linked pricing |
| 4 | B. Brown Frozen Foods | 242 | $173,309 | 9.1% | 242 bills YTD — consolidate invoicing, seek rebate |
| 5 | WebStaurant | 26 | $165,894 | 8.7% | Catalog vendor — competitive bid |
| 6 | JAN MAC | 19 | $148,834 | 7.8% | Mid-tier — bundle with #3 category |
| 7 | Lancome | 1 | $125,000 | 6.6% | Single $125K bill — verify one-time vs recurring |
| 8 | The Apple Store | 26 | $119,325 | 6.3% | Retail-priced tech buying — move to business/VPP channel |
| 9 | Bull's Head Foods | 257 | $107,112 | 5.6% | 257 bills — highest process cost per dollar |
| 10 | Corrugated Solutions | 26 | $89,364 | 4.7% | Packaging — spot-vs-contract review |
Ranked by annualized savings potential, risk-adjusted. Combined opportunity: $170K–$310K per year (≈ 4–7% of the current cost base).
Rent annualizes to ~$500K against a 2–4% of revenue benchmark (currently 4.8%; ~3.9% excluding the July anomaly). The Feb 2026 step-up added ~$20K/month of run-rate; the July ~$142K posting needs classification (prepayment → amortize; settlement → exclude from run-rate; error → correct).
Actions: ① Drill into July 6610 postings this week. ② Audit lease portfolio vs. headcount plan. ③ If space leads headcount by >12 months, sublease or renegotiate. Target: facilities ≤ 3.5% of revenue.
COGS Purchases ($3.35M YTD) is the largest cost line, PPV grew 291%, and the top-10 vendor list (§6) shows clear concentration. A 40% volume increase is a negotiating window that closes if growth plateaus. Even 1.5–3% off addressable purchase spend clears $50–100K.
Actions: ① Renegotiate top-5 vendors with volume-tier proposals. ② Set PO price tolerances in NetSuite to catch price creep at entry. ③ Consolidate the 500-bill/yr micro-invoice vendors (B. Brown, Bull's Head) to monthly summary billing. ④ Move Apple purchases to business channel.
Direct Labor & Overtime grew 54.8% against 40% COGS growth — the ~15-point gap is consistent with overtime premium creep. Separately, Salaries & Wages grew 46.7% ($156K); if any of that is unplanned comp drift rather than budgeted headcount, it compounds permanently.
Actions: ① Production shift-scheduling review; convert chronic OT into a planned hire when sustained OT > $25K/yr. ② Reconcile FY26 salary growth against the approved headcount plan. ③ Confirm commission plan (up 41.8%) still aligns payout to margin, not just revenue.
Five deduction sub-accounts appeared in FY26 with zero prior history: Advertising Charge ($6.8K), Damaged ($2.1K), Freight Allowance ($1.1K), Short Shipped ($0.8K), Price Discrepancy ($0.7K) — $11.6K YTD, ~$19K annualized and trending up. Industry experience: 25–60% of retailer chargebacks are disputable with documentation.
Actions: ① Validation workflow before any deduction is written off. ② Dispute advertising and short-ship charges with proof-of-delivery / promo agreements. ③ Track deduction rate by customer to identify the source account.
With 97.3% of costs unattributed, no manager owns a number. Organizations that enforce dimension-level accountability typically shave 1–2% off controllable spend within a year — simply because visible numbers get managed. This also unlocks every future budget-vs-actual and departmental P&L capability.
Actions: ① Make department mandatory on Vendor Bill, Journal Entry, and payroll-allocation forms (form config + optional validation user event — implementable in NetSuite this week). ② Backfill top-20 recurring vendors' default departments. ③ Republish this analysis quarterly once coding coverage > 80%.
Full reproducibility: every number in this report traces to the SuiteQL queries below, run against the NetSuite GL on August 15, 2026.
FY 2026, internal id 205). "YTD" = Jan 1 – Aug 15 in both years for a true like-for-like window.transactionaccountingline joined to transaction where posting = 'T', account types COGS, Expense, OthExpense (costs) and Income, OthIncome (revenue). Non-posting documents (POs, SOs) are excluded.transactionaccountingline.amount; revenue is stored negative and was negated for display. Vendor bill foreigntotal values post negative in this account, so vendor spend uses ABS().transactionline.department joined via tl.id = tal.transactionline; lines with null department are reported as "Unattributed."SELECT
COALESCE(d.name, 'No Department') AS dept,
a.acctnumber, a.fullname AS account_name, a.accttype,
ROUND(SUM(CASE WHEN t.trandate >= TO_DATE('2026-01-01','YYYY-MM-DD')
THEN tal.amount ELSE 0 END), 2) AS fy2026_ytd,
ROUND(SUM(CASE WHEN t.trandate < TO_DATE('2026-01-01','YYYY-MM-DD')
THEN tal.amount ELSE 0 END), 2) AS fy2025_ytd
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
LEFT JOIN department d ON tl.department = d.id
WHERE t.posting = 'T'
AND a.accttype IN ('Expense','OthExpense','COGS')
AND ((t.trandate BETWEEN TO_DATE('2026-01-01','YYYY-MM-DD') AND TO_DATE('2026-08-15','YYYY-MM-DD'))
OR (t.trandate BETWEEN TO_DATE('2025-01-01','YYYY-MM-DD') AND TO_DATE('2025-08-15','YYYY-MM-DD')))
GROUP BY COALESCE(d.name,'No Department'), a.acctnumber, a.fullname, a.accttype
HAVING SUM(ABS(tal.amount)) > 0
ORDER BY COALESCE(d.name,'No Department'), a.acctnumberSELECT
ROUND(SUM(CASE WHEN t.trandate >= TO_DATE('2026-01-01','YYYY-MM-DD')
THEN -tal.amount ELSE 0 END), 2) AS revenue_fy2026_ytd,
ROUND(SUM(CASE WHEN t.trandate < TO_DATE('2026-01-01','YYYY-MM-DD')
THEN -tal.amount ELSE 0 END), 2) AS revenue_fy2025_ytd
FROM transactionaccountingline tal
JOIN transaction t ON tal.transaction = t.id
JOIN account a ON tal.account = a.id
WHERE t.posting = 'T'
AND a.accttype IN ('Income','OthIncome')
AND ((t.trandate BETWEEN TO_DATE('2026-01-01','YYYY-MM-DD') AND TO_DATE('2026-08-15','YYYY-MM-DD'))
OR (t.trandate BETWEEN TO_DATE('2025-01-01','YYYY-MM-DD') AND TO_DATE('2025-08-15','YYYY-MM-DD')))
Result: FY26 $6,478,570.39 · FY25 $3,921,702.45
SELECT
TO_CHAR(t.trandate,'YYYY-MM') AS mth,
ROUND(SUM(CASE WHEN a.accttype='COGS' THEN tal.amount ELSE 0 END),2) AS cogs,
ROUND(SUM(CASE WHEN a.acctnumber IN ('6210','6230','6070')
OR a.fullname LIKE '%Direct Labor%'
OR a.fullname LIKE '%Workers'' compensation%' THEN tal.amount ELSE 0 END),2) AS labor_sga,
ROUND(SUM(CASE WHEN a.fullname LIKE '%IT Expenses%' THEN tal.amount ELSE 0 END),2) AS technology,
ROUND(SUM(CASE WHEN a.acctnumber='6610' THEN tal.amount ELSE 0 END),2) AS rent,
ROUND(SUM(tal.amount),2) AS total_cost
FROM transactionaccountingline tal
JOIN transaction t ON tal.transaction = t.id
JOIN account a ON tal.account = a.id
WHERE t.posting='T' AND a.accttype IN ('Expense','OthExpense','COGS')
AND t.trandate BETWEEN TO_DATE('2025-01-01','YYYY-MM-DD') AND TO_DATE('2026-08-15','YYYY-MM-DD')
GROUP BY TO_CHAR(t.trandate,'YYYY-MM')
ORDER BY TO_CHAR(t.trandate,'YYYY-MM')
Key output: rent by month 2026 = 11,833 / 31,833 / 31,833 / 27,333 / 27,333 / 31,333 / 142,294 / 8,500.
SELECT
v.entityid AS vendor,
COUNT(DISTINCT t.id) AS bill_count,
ROUND(SUM(ABS(t.foreigntotal)), 2) AS total_billed
FROM transaction t
JOIN vendor v ON t.entity = v.id
WHERE t.type='VendBill' AND t.posting='T'
AND t.trandate BETWEEN TO_DATE('2026-01-01','YYYY-MM-DD') AND TO_DATE('2026-08-15','YYYY-MM-DD')
GROUP BY v.entityid
ORDER BY SUM(ABS(t.foreigntotal)) DESC
FETCH FIRST 10 ROWS ONLY
Note the ABS(): vendor bill foreigntotal posts negative in this account. A first pass without ABS() returned an inverted ranking — corrected and validated against bill counts.
-- Departments (9 active) SELECT d.id, d.name, d.fullname, d.isinactive FROM department d ORDER BY d.fullname -- Cost accounts (98 active COGS/Expense/OthExpense; note: acctname is -- NOT_EXPOSED to SuiteQL in this account — use fullname) SELECT a.id, a.acctnumber, a.fullname, a.accttype FROM account a WHERE a.accttype IN ('Expense','OthExpense','COGS') AND (a.isinactive='F' OR a.isinactive IS NULL) ORDER BY a.accttype, a.acctnumber
Fiscal calendar confirmed via accounting periods: FY 2026 (id 205, 1/1–12/31/2026), Q3 2026 (id 214), Aug 2026 (id 216).