Northbridge Supply Co.

Month-End Revenue & Margin — July 2026

Period 2026-07-01 to 2026-07-31

Generated 2026-08-20T03:28:51
Pipeline v1.0.0

All figures on this page are synthetic. Northbridge Supply Co. is a fictional company and this document is a PJA Solutions reference build, produced to show how a month-end close pack is assembled, reconciled and evidenced. Nothing here describes a real business or a real client.

01Headline

The five figures this pack exists to state, for July 2026. Everything below either supports one of them or explains why it is not what you expected.

Net revenue

$336,794
not comparable

Gross margin $

$157,653
not comparable

Gross margin %

46.8%
not comparable

Orders

868
not comparable

Units

6,597
not comparable

Month-over-month movement is shown only where the pipeline supplied it. Where it did not, the prior-period figure is shown instead, or the comparison is marked not comparable — no delta is inferred here.

02Revenue bridge

How gross product revenue becomes net revenue. Totals are measured from zero; the steps between them are the deductions and additions applied in order.

Revenue bridge waterfallGross product revenue $354,161; Discounts −$12,564; Returns & allowances −$8,078; Shipping revenue $3,274; Net revenue $336,7940$100k$200k$300k$400kGross product revenue: $354,161 (total)$354,161Gross productrevenueDiscounts: −$12,564 (decrease)−$12,564DiscountsReturns & allowances: −$8,078 (decrease)−$8,078Returns &allowancesShipping revenue: $3,274 (increase)+$3,274ShippingrevenueNet revenue: $336,794 (total)$336,794Net revenue
Total (measured from zero)Increase (+)Decrease (−)
Revenue bridge, table view
Bridge stepAmount
Gross product revenue$354,161
Discounts($12,564)
Returns & allowances($8,078)
Shipping revenue$3,274
Net revenue$336,794

03By reporting segment

Segment detail as reported. Negative figures are shown in parentheses.

Revenue and margin by reporting segment. The bar shows each segment's net revenue against the largest segment. A dash means the pipeline supplied no value for that cell.
Reporting segmentNet rev.Gross revenueDiscountsReturnsNet revenueCOGSGross marginGM %OrdersUnits
DTC$38,259($1,274)($1,228)$35,757$21,607$14,15039.6%497661
Marketplace$14,008($481)($936)$12,591$8,071$4,52035.9%194245
Wholesale$195,926($6,854)($2,446)$186,625$92,954$93,67150.2%883,674
Retail$108,182($3,218)($2,769)$102,195$54,817$47,37846.4%882,017
Unassigned$1,061($736)($699)($374)$1,691($2,066)not available10

04By product line

Product line detail, then gross margin percentage plotted on a single axis for comparison across lines.

Revenue and margin by product line. A dash means the pipeline supplied no value for that cell.
Product lineNet revenueCOGSGross marginGM %Units
Accessories$134,494$69,615$64,87948.2%2,211
Consumables$113,201$53,717$59,48452.5%2,126
Hardware$71,623$41,300$30,32342.3%1,877
Unmapped ERP product$21,646$9,712$11,93455.1%383
Unattributed (no product code)($4,170)$4,796($8,966)not available0
Gross margin % by product line
Gross margin percent by product lineAccessories 48.2%; Consumables 52.5%; Hardware 42.3%; Unmapped ERP product 55.1%; Unattributed (no product code) not available0%20%40%60%AccessoriesAccessories: 48.2%48.2%ConsumablesConsumables: 52.5%52.5%HardwareHardware: 42.3%42.3%Unmapped ERP productUnmapped ERP product: 55.1%55.1%Unattributed (no product …— not available

05Reconciliation and tie-out

Webstore net revenue against the general ledger for the DTC and Marketplace segments, with every identified reconciling item listed and the remainder stated plainly.

Webstore net (source)

$49,856

GL net — DTC + Marketplace

$48,348

Variance

$1,507

Variance %

3.12%
Identified reconciling items
Reconciling itemAmount
Web sales of products with no ERP product code (mid-month launches) -- present in the webstore, impossible in the GL$424
Manual revenue adjustments applied to DTC / Marketplace in the GL and unknown to the webstore($515)

Unexplained residual

$1,597.93

This amount is the part of the variance that no reconciling item explains. It has not been written off, allocated or smoothed — it is carried here, in full, until someone accounts for it.

06Manual adjustments applied

Everything a person changed by hand during this close, with who applied it and why.

Every manual adjustment applied during this close, with the reason recorded at the time
DateDescriptionSegmentGL accountAmountApplied byNote
2026-07-21Freight allocation correction - wholesaleWholesale50500($430.00)K. Novaksegment corrected from 'Wholesle' (match 94%) -- fix the workbook, the source file is unchanged
2026-07-24Correct duplicate merchant fee batchMarketplace51000($340.55)K. Novakentered as a credit (trailing CR) -> negative
2026-07-24True-up June returns booked in error to JulyDTC42000$610.00R. Oseidate read from '24-Jul-2026'
2026-07-25Q3 co-op rebate accrualWholesale40000($2,400.00)K. Novakdate read from 'Jul 25 2026'
2026-07-25Retail partner chargeback offsetRetail40000($275.00)K. Novakdate read from '7/25/26'
2026-07-27Amazon FBA storage fee true-upMarketplace51000$189.20T. Brooksdate read from 'Jul 27 2026'
2026-07-28Discount code system error creditDTC41000($95.00)M. Chendate read from '28-Jul-2026'
2026-07-28Q2 co-op marketing accrual reversalWholesale40000$500.00T. Brooksdate read from '7/28/26'
2026-07-30Reclass inbound freight to COGSDTC50500($1,180.00)T. Brooksdate read from '7/30/26'

07Exception register

Every row the pipeline could not process cleanly. Nothing here was dropped silently; each entry states what it affects and what to do about it.

WarningDUP-ORDER-ROWDuplicate order lines removedRows 14 · Amount $1,320.86

identical order_id+sku+timestamp lines from an export retry (some re-formatted, e.g. '$5.79' for '5.79')

Action: Export retry produced identical order_id+sku rows. Confirm with the webstore admin that the retry was a re-export, not a real re-order.

ErrorSKU-UNMAPPEDLive web SKUs missing from the SKU mapRows 7 · Amount $6,570.95

live web SKUs with no row in the SKU MAP tab: nb1004-wht, nb1007-sm, nb1010-md, nb2101-wht, nb2102-md, nb2103-gry, nb2104-red

Action: Add these SKUs to the SKU MAP tab. Revenue is reported under a fallback or Unmapped line until they are added.

WarningSKU-FALLBACK-MATCHSKUs matched by fallback normaliser, not by the mapRows 3 · Amount $6,146.50

matched by the deterministic stem normaliser, NOT by the map: nb1004-wht -> NB-1004, nb1007-sm -> NB-1007, nb1010-md -> NB-1010 -- confirm each one

Action: Confirm each fallback match is correct, then add the pair to the SKU MAP so the next close matches on the map alone.

InfoSKU-MAP-STALESKU map rows for SKUs that no longer sellRows 2 · Amount $0.00

SKU MAP rows for SKUs absent from the order export: nb0900-blk, nb0901-wht

Action: Retire these rows from the SKU MAP tab at the next housekeeping pass.

ErrorSKU-NO-ERP-PRODUCTWeb SKU families with no ERP product codeRows 4 · Amount $424.45

web SKUs with no ERP product code at all (mid-month launches): nb2101-wht, nb2102-md, nb2103-gry, nb2104-red -- product families NB2101, NB2102, NB2103, NB2104

Action: Mid-month launches not yet extended into the ERP item master. Create the ERP product codes so COGS can be attributed.

WarningPRIOR-PERIOD-RETURNRefunds against prior-period ordersRows 25 · Amount ($2,728.98)

refunds dated in 2026-07 against orders placed in 2026-06 -- shown separately so they do not distort 2026-07 gross

Action: Shown as a separate line so July gross is not distorted. Confirm the returns provision covers them.

InfoORDER-MONTH-BOUNDARYOrders reclassified by the -05:00 business-day ruleRows 22 · Amount $0.00

22 order line(s) whose accounting month differs from a naive UTC reading of the timestamp; 12 of them belong to 2026-07 under the -05:00 local business-date rule

Action: Timestamps near midnight on the month boundary. Period is set from the LOCAL business date; no action needed, shown for audit.

InfoORDER-PENDING-EXCLUDEDPending orders excludedRows 84 · Amount $6,473.98

financial_status=pending across the whole export

Action: financial_status=pending is not yet revenue. They will fall into the month they settle.

InfoGL-PARK-EXCLUDEDParked GL documents excludedRows 5 · Amount $2,842.19

Doc Type PARK -- parked/unposted documents inside the 2026-07 date range, excluded from the close; the amount shown is the net value of the excluded postings across all accounts

Action: Doc Type PARK is unposted. Ask the GL team to post or delete them before the next close.

InfoGL-ACCRUAL-PULLED-INAugust-dated accruals pulled into JulyRows 6 · Amount $9,747.20

Doc Type ACCR posted outside 2026-07 and pulled into it per the close calendar

Action: Doc Type ACCR posted in early August relates to July activity and is included in July per the close calendar.

ErrorGL-COSTCENTER-UNMAPPEDGL cost centres absent from the channel mapRows 8 · Amount $1,317.18

cost centre CC-999 has no entry in the CHANNEL MAP; postings are reported under 'Unassigned', never dropped

Action: CC-999 and friends are unassigned. Bucketed to Unassigned, never dropped. Assign a reporting segment in the CHANNEL MAP tab.

WarningGL-PRODUCT-BLANKGL postings with no product codeRows 14 · Amount $4,048.06

GL postings with no Product Code (overhead, freight and fee postings); reported under 'Unattributed (no product code)'

Action: Overhead and freight postings cannot be attributed to a product line. Reported under Unattributed.

WarningGL-PRODUCT-UNMAPPEDERP product codes absent from the SKU mapRows 1 · Amount $31,357.93

ERP product codes posted in the GL with no product line in the SKU MAP: NB-1004

Action: Add the product code to the SKU MAP so it lands in a product line. The amount is the total value of every posting against these codes this period -- revenue and cost together -- not just their share of net revenue.

WarningGL-QTY-BLANKBlank Qty cells read as zeroRows 127 · Amount $9,077.14

Qty is empty on these postings; read as 0 and counted here instead of passing the substitution through silently. 1 of 127 blank cell(s) are on 40000 product-revenue postings and are silently understating Units by their true quantity -- this is not hypothetical, it is happening in this run.

Action: The cell was genuinely empty and is read as 0 units, counted here so the substitution is visible rather than silent. Check the detail: a blank on a 40000 product-revenue posting understates Units by that row's true quantity; on any other account it does not affect a reported figure.

InfoGL-DESC-INCONSISTENTGL account descriptions with inconsistent spellingRows 125 · Amount $0.00

125 row(s) carry stray whitespace or non-standard case on GL Account Desc; joined on the GL account code instead. 40000: 'Product Revenue' | 'product revenue'; 41000: 'Sales Discounts' | 'sales discounts'; 42000: 'Returns & Allowances' | 'returns & allowances'; 50000: 'COGS' | 'cogs'; 50500: 'Inbound Freight' | 'inbound freight'; 51000: 'Merchant Fees' | 'merchant fees'

Action: Same GL account carries several spellings/casings in the export. Canonicalised for reporting; tidy the ERP master data.

InfoADJ-BLANK-ROWBlank rows skipped in the manual adjustments tabRows 1 · Amount $0.00

1 blank row(s) inside the MANUAL ADJUSTMENTS section

Action: Cosmetic spacer rows in the workbook. No action.

WarningADJ-TOTAL-ROWSpreadsheet TOTAL row excluded from the sumRows 1 · Amount $0.00

row 53: Date='TOTAL' Amount='=SUM(E2:E10)' -- footer row, excluded from the adjustments total

Action: The workbook carries a =SUM() footer row. It is never added to the adjustments total. Remove it from the export if possible.

InfoADJ-CR-NOTATIONAdjustments entered with CR notationRows 1 · Amount ($340.55)

2026-07-24 'Correct duplicate merchant fee batch' entered as '340.55 CR'

Action: Trailing CR read as a credit (negative). Standardise on a signed number in the workbook.

WarningADJ-SEGMENT-TYPOMis-typed segment name correctedRows 1 · Amount ($430.00)

'Wholesle' -> 'Wholesale' (94% match) on 2026-07-21

Action: Corrected by closest match and reported. Fix the spelling in the workbook -- the correction is not applied to the source file.

WarningTIE-OUT-VARIANCEUnexplained webstore-to-GL varianceRows 1 · Amount $1,597.93

webstore $49,855.50 vs GL $48,348.12 across DTC + Marketplace; 2 known reconciling item(s) account for -$90.55; note 25 prior-period return(s) worth -$2,728.98 sit inside the webstore figure

Action: The residual after known reconciling items. Investigate before the books are closed.