36 analyses. Open any one and read the worksheet.

Every analysis runs on the general ledger you already export — no subledger, no procurement extract, no extra client system. The worksheets below are the ones the application produces, on a fictional engagement.

GL Analyzer

21 analyses

Full-population testing of the ledger itself: completeness, the statements it produces, risk scoring, and the classic journal entry fraud patterns.

  • MaterialityCompute the engagement materiality record once, from a stated basis and a stated rate, and let every other worksheet read it.

    Compute the engagement materiality record once, from a stated basis and a stated rate, and let every other worksheet read it.

    Basis
    64,200
    Overall materiality
    500
    Performance materiality
    250
    Tolerable error (TE)
    250

    The engagement materiality record, computed here and read everywhere else. Pick the benchmark lines that make up the basis, set one percentage, and the rest of the ladder follows. Nothing on this worksheet is a conclusion: the benchmark, the rate and each step down the ladder are judgements, shown as inputs so a reviewer can see what was chosen rather than infer it from a number.

    Result grid5 rows
    ThresholdDerived fromRateAmountUsed by
    Overall materialityBasis 64,2000.78%500Completion · SUD
    Performance materialityOverall materiality50%250Completion · Sampling
    Tolerable error (TE)Performance materiality100%250GL · TE Threshold
    Clearly trivialOverall materiality5%25Completion · SUD
    Significant captionTolerable error (TE)10x2,500GL · TE Threshold
  • GL StatisticsProve the population being analyzed is the complete general ledger before any other test draws a conclusion.chart

    Prove the population being analyzed is the complete general ledger before any other test draws a conclusion.

    Postings by period (period-12/13 spike)
    18J19F20M19A21M20J22J21A23S22O24N41D12+1
    Journals
    41,338
    Lines
    213,774
    Dr minus Cr
    0
    Out-of-period
    312

    Completeness of the data set (ISA 500). The 15,500 revenue break and the orphan account invalidate downstream tests until explained.

    Result grid4 rows
    AccountGL net movementTB period movementDifferenceFlag
    1100 Cash(2,419,640)(2,419,640)0
    1200 Trade receivables3,720,1183,720,1180
    4000 Revenue(12,900,400)(12,884,900)(15,500)Exception: GL not equal TB
    9999 (not in COA)41,200n/a (orphan)n/aException: orphan account
  • Balance SheetEvery account group in statement order, rolled up through its parents, each level against last year.

    Every account group in statement order, rolled up through its parents, each level against last year.

    Balance Sheet
    CYPY
    Non-current assets28,92027,210
    Property, plant & equipment18,90017,650
    Intangible assets — net6,4206,420
    Other non-current assets3,6003,140
    Current assets19,64516,880
    Inventory7,3105,980
    Trade receivables9,5155,860
    Prepayments & other receivables680480
    Cash & equivalents2,1404,560
    Total assets48,56544,090
    Non-current liabilities(14,620)(16,540)
    2700 Long-term borrowings(14,000)(16,000)
    2800 Deferred tax liability(620)(540)
    Current liabilities(15,275)(12,569)
    Trade payables(8,420)(5,110)
    Accruals & other payables(6,635)(7,279)
    Deferred revenue(220)(180)
    Total liabilities(29,895)(29,109)
    Total equity18,67014,981
    Total liabilities & equity(48,565)(44,090)
    Total Assets
    48,565
    Total Liabilities
    29,895
    Balance check
    0

    Ordered most-illiquid to most-liquid. Two identities are asserted rather than assumed: total assets 48,565 = liabilities 29,895 + equity 18,670, and opening equity 14,981 + profit 3,689 − distributions nil = closing equity 18,670, which is what ties this statement to the income statement. Receivables are shown gross with the allowance beneath them rather than netted away, so the provision test has something to point at.

    Result grid6 of 8 rows
    FS CaptionCYPYDelta AbsDelta %% Assets
    Non-current assets28,92027,210+1,710+6.3%60.0%
    Current assets19,64516,880+2,765+16.4%40.5%
    Total assets48,56544,090+4,475+10.1%100.0%
    Non-current liabilities(14,620)(16,540)+1,920(11.6%)
    Current liabilities(15,275)(12,569)(2,706)+21.5%
    Total liabilities(29,895)(29,109)(786)+2.7%
  • Income StatementA tree of the mapping levels, ordered revenue down to net income, each node against last year.

    A tree of the mapping levels, ordered revenue down to net income, each node against last year.

    Income Statement
    CYPY
    Revenue64,20051,300
    4000 Product revenue58,20046,300
    4100 Service revenue6,0005,000
    Cost of goods sold(39,680)(29,400)
    5000 Materials(24,300)(17,200)
    5100 Direct labour(11,200)(9,100)
    5200 Overhead absorbed(4,180)(3,100)
    Gross profit24,52021,900
    Operating expenses(19,200)(15,000)
    6100 Selling & marketing(9,140)(7,020)
    6200 Admin expenses(8,060)(7,980)
    6800 Restructuring(2,000)0
    Operating profit (EBIT)5,3206,900
    6900 Finance costs(650)(520)
    Profit before tax4,6706,380
    7900 Income tax expense(981)(1,340)
    Profit for the year3,6895,040
    Gross margin %
    38.2%
    Operating margin %
    8.3%
    Net margin %
    5.7%
    Eff. tax %
    21.0%

    Revenue up +25.1% but profit down 26.8%, gross margin erodes 44% to 33%.

    Result grid6 of 9 rows
    CaptionCYPYDelta AbsDelta %% Rev
    Revenue64,20051,300+12,900+25.1%100.0%
    Cost of goods sold(39,680)(29,400)10,280+35.0%(61.8%)
    Gross profit24,52021,900+2,620+12.0%38.2%
    Operating expenses(19,200)(15,000)4,200+28.0%(29.9%)
    Operating profit (EBIT)5,3206,9001,58022.9%8.3%
    6900 Finance costs(650)(520)130+25.0%(1.0%)
  • Cash Flow & FCFReconstruct the cash flow statement from the GL alone and test whether reported profit translates into real cash.chart

    Reconstruct the cash flow statement from the GL alone and test whether reported profit translates into real cash.

    Cash bridge — 3,689 of profit, no free cash, and 2,420 less in the bank (USD 000)
    3,689Net income1,345Non-cash(5,250)WC assets2,591WC liab.2,375CF op(2,680)Cash CapEx500Disposals(460)Deposits(265)FCF(2,000)Debt repaid(155)Gap(2,420)Δ Cash
    Cash Flow & FCF
    Amount
    CF op — Cash Flow from Operations+2,375
    Net income+3,689
    Non-cash add-backs and reversals+1,345
    Working capital — assets(5,250)
    Working capital — liabilities+2,591
    CF inv — Cash Flow from Investing(2,640)
    Purchase of fixed assets (cash CapEx)(2,680)
    Disposal proceeds+500
    Financial assets (shares)0
    Loans & deposits (LT) placed(460)
    FCF — Free Cash Flow (CF op + CF inv)(265)
    CF op+2,375
    CF inv(2,640)
    CF fin — Cash Flow from Financing(2,000)
    Proceeds from share issue0
    Dividends paid0
    Short-term debt — drawn / repaid0
    Proceeds from long-term borrowings0
    Repayment of long-term borrowings(2,000)
    Interest paid — presented in CF op by policy0
    Deeper lines are in the worksheet grid below.
    CF op
    +2,375
    CF inv
    (2,640)
    FCF
    (265)
    CF fin
    (2,000)

    Indirect-method cash-flow statement built from the GL alone. Expand any line to see what it is made of; the lowest level opens the trial-balance accounts or the journal entries behind it. Every block is signed as cash impact — money in positive, money out negative — so the statement reads by addition throughout: FCF = CF op + CF inv, and CF op + CF inv + CF fin gives the movement in cash, which must reconcile to the raw movement on the cash accounts. The residual is the gap, and it carries only what the statement genuinely cannot explain.

    Result grid5 rows
    LineAmount
    CF op — Cash Flow from Operations+2,375
    CF inv — Cash Flow from Investing(2,640)
    FCF — Free Cash Flow (CF op + CF inv)(265)
    CF fin — Cash Flow from Financing(2,000)
    Cash reconciliation(155)
  • Gross MarginRepeat the gross margin build per segment to surface a losing segment hidden inside a healthy blended average.chart

    Repeat the gross margin build per segment to surface a losing segment hidden inside a healthy blended average.

    Gross margin by segment, prior year against current
    Software 67.268Hardware 28.416.3Services 33.133.5Spare parts 4.2-15Total 42.736.7Per Income Sta… 42.738.2PYCY

    One line per segment carrying a margin. A line falling steeply is a segment whose margin moved, whatever its absolute level; the overhead absorbed against no segment is on the grid rather than here.

    Median GM%
    24.7%
    Hardware GM%
    15.9%
    Spare parts GM%
    (15.0%)

    Hardware margin is volatile and collapsing; spare parts sell below cost. Segment revenue and cost reconcile to the income statement, with absorbed overhead carrying no segment basis shown as its own line rather than spread across the four.

    Result grid6 of 7 rows
    SegmentRevenueCOGSGross ProfitGM%GM% PY
    Software21,4006,85014,55068.0%67.2%
    Hardware27,70023,1804,52016.3%28.4%
    Services13,9009,2504,65033.5%33.1%
    Spare parts1,2001,380(180)(15.0%)4.2%
    Total64,20040,66023,54036.7%42.7%
    Unallocated overhead(980)+980
  • Three-Way FlowPick any three accounts and trace how much of the flow actually follows that path — Revenue → Receivable → Cash ships as a one-click preset. Surfaces what leaves the path in both directions; the worksheet shows, it does not conclude.chart

    Pick any three accounts and trace how much of the flow actually follows that path — Revenue → Receivable → Cash ships as a one-click preset. Surfaces what leaves the path in both directions; the worksheet shows, it does not conclude.

    96,00025% not from revenue4,0004% of revenue25,00025% of revenue98,0002% not from receivable4,0003% of receivable2,0002% of receivableRevenue · 1st100,000Receivable · 2nd121,000Cash · 3rd100,000Not to receivable4,000Not to cash4,000Not from revenue25,000Not from receivable2,000
    Receivable vs revenue
    121%
    Into AR not from revenue
    25,000
    Cash vs receivable
    83%

    Receivable is 121% of revenue — even the part fully sourced from revenue does not make the two match, because 25% of receivable debits did not come from revenue while 4% of revenue never reached receivable. Cash is 83% of receivable. Every figure links to its journals — the call is yours.

    Result grid6 rows
    FromToAmountShare
    Revenue · 1stReceivable · 2nd96,00025% not from revenue
    Revenue · 1stNot to receivable4,000Exception: 4% of revenue
    Not from revenueReceivable · 2nd25,000Exception: 25% of revenue
    Receivable · 2ndCash · 3rd98,0002% not from receivable
    Receivable · 2ndNot to cash4,000Exception: 3% of receivable
    Not from receivableCash · 3rd2,000Exception: 2% of receivable
  • Monthly ActivityDetect accounts posting an abnormal amount in a given month relative to their own history.chart

    Detect accounts posting an abnormal amount in a given month relative to their own history.

    Acct 6500 Professional fees — Dec spike (z = 9.1)
    28J27F29M28A26M30J27J29A28S27O31N90D
    Anomalies |score|>3
    47
    Dormant reactivated
    6
    Result grid4 rows
    AccountMonthNet MovementMedian (ex-month)1.4826 x MADRobust score
    6500 Professional feesDec90228168+9.1
    7200 Repairs & maintAug04412(3.7)
    2900 Suspense (dormant)Dec31800n/m
    4000 RevenueDec(1,940)(1,070)260(3.3)
  • Dimension AnalysisProfile who is posting, not just what, because authorization risk lives at the user level.

    Profile who is posting, not just what, because authorization risk lives at the user level.

    Wide-spread users
    2
    Result grid4 rows
    UserDistinct accounts touchedTop account (value)Manual entriesFlag
    SYSTEM1424000 Revenue0
    A.Lee (GL clerk)111200 AR410
    J.Smith (Controller)92900 Suspense640Watch: senior + suspense conc.
    R.Kahn (temp)246900 Other86Watch: rare wide spread
  • JE SummaryCollapse individual lines to one row per journal entry.chart

    Collapse individual lines to one row per journal entry.

    Entries by source module
    3Manual1AP subledger

    Modules ranked by how many entries each posted. One module carrying almost all of them — a module posting entries that look manual — is a different question from a person doing it.

    OSJE detected
    7
    Self-approved
    23
    Missing approver
    4
    Result grid4 rows
    journal_identry_datesourcecreated_byapproved_byDr
    JV-441202024-12-31ManualJ.SmithJ.Smith902
    JV-441312024-12-31ManualA.Lee318
    JV-441352024-12-30ManualR.KahnJ.Smith1,500
    AP-902332024-12-28AP subledgerSYSTEMSYSTEM44
  • JE Line ItemsNarrow a multi-million-line ledger to the subset worth a human reading.chart

    Narrow a multi-million-line ledger to the subset worth a human reading.

    Share of lines by journal type
    100Manual

    Each type as a share of the line population, largest first. Manual is the type every other test weights, so its bar is the first thing to read. Type is an attribute of a line, never a filter on it.

    Total lines
    213,774
    After filters
    142
    Result grid4 rows
    journal_idlinedateaccountnetcreated_by
    JV-44120112-316500 Prof fees+902J.Smith
    JV-44120212-312900 Suspense902J.Smith
    JV-44131112-312900 Suspense+318A.Lee
    JV-43880412-294000 Revenue5,000R.Kahn
  • Risk-Based JETurn individual flags into one combined score per entry.chart

    Turn individual flags into one combined score per entry.

    Entries by risk tier
    3HIGH1LOW

    Bars in severity order, High to Low. A fat High bar means the weights, not the ledger, need looking at. The height is a count of entries, never a conclusion about them.

    Population
    41,338
    High 3+
    214
    Med
    1,902
    Low
    39,222

    ISA 240 testing for management override. Click a row to open the full journal entry.

    Result grid4 rows
    journal_idManRoundTimingKeywordSenior
    JV-43880YYY (Sun 12-29)Y
    JV-44120YY (per-end 12-31)YY
    JV-44131YY (per-end 12-31)Y
    AP-90233
  • Risk ScoringVisualize the shape of the entire risk-scored population at once.chart

    Visualize the shape of the entire risk-scored population at once.

    Entries by score band
    2HIGH1LOW

    Bands are the buckets the scoring defines; the height is how many entries landed in each.

    Low 0-32
    39,222 · 94.9%
    Med 33-66
    1,902 · 4.6%
    High 67-100
    214 · 0.5%

    Continuous 0-100 score over 100% of the population (ISA 240).

    Result grid3 rows
    journal_idscorebandtop contributors
    JV-4412094HIGHself-approved · suspense · period-end · keyword
    JV-4388088HIGHround · period-end · rare flow · plug
    AP-902337LOW(none material)
  • ClusteringIdentify account-to-account posting patterns that occur so rarely they fit no normal business process.

    Identify account-to-account posting patterns that occur so rarely they fit no normal business process.

    Outliers (no cluster)
    3
    Top rare flow
    4000 to 2800 x3
    Result grid3 rows
    Rare account flowFrequencyExample journalNote
    4000 Revenue to 2900 Suspense3JV-43880Watch: outlier — fits no cluster
    6500 Prof fees to 2900 Suspense2JV-44120expense to suspense
    4000 Revenue to 1200 AR1within normal cluster
  • ExplainabilityProduce a documented breakdown of why any flagged entry received its score.chart

    Produce a documented breakdown of why any flagged entry received its score.

    Entries by their heaviest contributing flag
    80%Self-approval +31Rare flow +26

    Flags ranked by how many entries each one tops, with the cumulative share. The first bar carrying most of it — the cumulative line jumping to near the cutoff at once — is a single rule driving the score.

    Per-transaction why
    Yes
    Standard
    ISA 230
    Result grid2 rows
    journal_idscorebandtop contributor
    JV-4412094HIGHSelf-approval +31
    JV-4388088HIGHRare flow +26
  • Benford 1st DigitTest whether amounts follow the natural distribution that occurs when numbers arise organically.chart

    Test whether amounts follow the natural distribution that occurs when numbers arise organically.

    First-digit frequency against Benford
    123456789
    • Observed
    • Benford ±2pp
    • Outside band

    Band is ±2pp around expectation. Marked digits fall outside it; the entries behind them are the population to open.

    n
    188,402
    Chi-square
    412.6
    MAD
    0.018

    MAD 0.018 = non-conformity. Digit-2 spike (round plugs near 2,000-2,950) drives the break.

    Result grid6 of 9 rows
    First digitObserved %Expected %Z-scoreFlag
    128.9%30.1%1.6
    224.1%17.6%+9.4Watch: Z>1.96 (pairs 24)
    311.0%12.5%1.9
    411.8%9.7%+4.2Watch: pairs 24, 49
    56.0%7.9%3.1Watch: Z>1.96
    66.1%6.7%1.0
  • Relationship RatiosTest financial relationships that should move together and flag when they decouple.chart

    Test financial relationships that should move together and flag when they decouple.

    Relationship ratios, prior year against current
    Interest / Avg… 3.24.3Depn / Avg gro… 44.1Payroll tax / … 7.57.6Commission / R… 3.42.1COGS / Revenue 57.361.8PYCY
    Band breaches
    2
    Decoupled pairs
    1

    Every ratio is recomputed from the same ledger the statements are built from, so a breach can be opened to the accounts behind it. Interest expense of 650 on average debt of 15,000 is 4.3%, against 3.2% last year, while borrowings were repaid — a decoupling that does not articulate (ISA 520). Average debt is opening plus closing over two; on a balance that moved in one step a monthly mean would give a different answer, so the basis is stated.

    Result grid5 rows
    RelationshipCY ratioPY ratioExpected bandFlag
    Interest / Avg Debt4.3%3.2%3.0-3.6%Exception: breach — 650 on avg debt 15,000; debt fell, interest rose
    Depn / Avg gross PP&E4.1%4.0%3.8-4.4%1,072 on avg gross 26,250
    Payroll tax / Wages7.6%7.5%7.2-7.9%
    Commission / Revenue2.1%3.4%3.0-3.8%Watch: below band
    COGS / Revenue61.8%57.3%56-59%Watch: margin compression
  • TE ThresholdFormalize how much work each caption deserves — balance sheet and P&L alike.chart

    Formalize how much work each caption deserves — balance sheet and P&L alike.

    Movement of the captions that breach a TE tier
    12.9k4000 Revenue3.7k1200/1210 Tr…7.1k5000 COGS — …2k6800 Restruc…-2k2700 LT Borr…2.1k6100 Selling…1.7k1700 Equipme…3.3k2100 Trade p…

    Only the captions tiered Limited or Significant — the ones over tolerable error. Signed: a bar below the line is a caption that fell. The captions inside TE are left off; they are on the grid.

    Tolerable error (TE)
    500
    Significant if
    > 10x TE
    Accounts scanned
    48
    Significant (> TE)
    4

    TE thresholding. Two thresholds, not one: the movement says how much changed, the closing balance says how much is exposed, and the tier is taken from whichever is higher — a caption that did not move but carries a large balance still holds risk. Significant is movement or balance above 10x TE and takes full substantive testing; Limited is above TE up to that, and takes analytical procedures with a corroborating test. Decreases carry their sign in both the absolute and the percentage column.

    Result grid6 of 10 rows
    AccountCY balancePY balanceDelta AbsDelta %Exceeds TE
    4000 Revenue64,20051,300+12,900+25.1%Exception: +12,900 >> TE
    1200/1210 Trade receivables9,8406,120+3,720+60.8%Exception: +3,720 >> TE
    5000 COGS — Materials24,30017,200+7,100+41.3%Exception: +7,100 >> TE
    6800 Restructuring charge2,0000+2,000n/mException: +2,000 (new item)
    2700 LT Borrowings14,00016,000(2,000)(12.5%)Watch: (2,000) >> TE
    6100 Selling & marketing9,1407,020+2,120+30.2%Watch: +2,120 >> TE
  • Reversing EntriesIdentify equal-and-opposite journal entry pairs — a recognized fraud pattern.chart

    Identify equal-and-opposite journal entry pairs — a recognized fraud pattern.

    Reversal amount against days to reverse
    09201.8kDays apartAmount
    Reversal pairs detected
    11
    Same-day reversals
    3
    Period-end reversals
    5
    Same-preparer reversals
    7

    ISA 240 reversing-entry detection. Equal-and-opposite JEs posted within a short window, weighted heavier when same preparer prepares both sides.

    Result grid6 rows
    Original JE_IDReversal JE_IDOriginal dateReversal dateDays apartAmount
    JV-44120JV-441992024-12-312025-01-022902
    INV-77120CM-31202024-12-302025-01-09101,840
    INV-77131CM-31222024-12-312025-01-1212960
    JV-44135JV-442102024-12-302025-01-0341,500
    AP-90412AP-904982024-11-222024-11-253320
    JV-41003JV-410082024-06-142024-06-140180
  • Backdating / Late-PostedDistinguish entries posted on the actual day from entries whose `Posting_Date` was deliberately set to an earlier period.chart

    Distinguish entries posted on the actual day from entries whose `Posting_Date` was deliberately set to an earlier period.

    Late-posted entries by preparer
    80%J.SmithA.LeeR.KahnADMIN1SYSTEM

    Cumulative share on the line. A short head means the delay sits with a few people, which is a different finding from a general backlog.

    Backdated entries
    47
    Posted 7d+ late
    18
    Posted post-cutoff
    12
    Avg gap (days)
    4.2

    Compares Posting_Date against Entry_Date (system-stamped) from the audit log. Gaps 7+ days at year-end are the classic backdating signature.

    Result grid6 rows
    JE_IDPosting_DateEntry_DateGap (days)Fiscal_Period assignedPreparer_ID
    JV-441202024-12-312025-01-04 11:22+4FY25 P12J.Smith
    JV-441312024-12-312025-01-08 09:14+8FY25 P12A.Lee
    JV-438802024-12-292025-01-06 18:40+8FY25 P12R.Kahn
    DEP-12312024-12-312025-01-10 16:02+10FY25 P12J.Smith
    ADMIN-JE012024-12-302024-12-30 23:470FY25 P12ADMIN1
    AP-902332024-12-282024-12-28 02:140FY25 P12SYSTEM
  • JE Number GapsVerify journal entry numbering integrity — a missing number can mean a deleted entry.

    Verify journal entry numbering integrity — a missing number can mean a deleted entry.

    Journal types audited
    6
    Total sequence gaps
    9
    Suspect deletions
    3
    Out-of-sequence dates
    4

    Sequence-integrity test. Numeric gaps with internally inconsistent dates suggest a deleted entry rather than a reserved number.

    Result grid6 rows
    Journal_TypeSequence runLast JE_ID before gapNext JE_ID after gapGap sizeSurrounding dates align?
    ManualJV-44100 to 44131JV-44128JV-441312Yes (12-31)
    ManualJV-44132 to 44199JV-44144JV-441505No (gap dated 12-30, next dated 12-28)
    SalesINV-77100 to 77160INV-77129INV-771311Yes (12-30 to 12-31)
    AP subledgerAP-90100 to 90500AP-90233AP-902351Yes
    Credit memoCM-3000 to 3125CM-3120CM-31221Yes
    DepreciationDEP-0131 to 1231DEP-1131DEP-12311Yes — Q4 catch-up replaces monthly

Revenue & AR

7 analyses

Revenue recognition, receivables ageing, and the period-end patterns that move income between years.

  • Revenue TrendTest whether revenue follows a believable shape across the year.chart

    Test whether revenue follows a believable shape across the year.

    Revenue by segment, prior year against current
    27.7k19.4kHardware21.4k19.9kSoftware1.2k0Spare parts13.9k12kServices14.8k7.1kDec only (all seg)
    • CY
    • PY
    Total Revenue
    64,200
    YoY
    +25.1%
    December
    23% of FY
    Result grid5 rows
    SegmentCYPYDelta %% of totalFlag
    Hardware27,70019,400+42.8%43.1%Watch: YoY swing
    Software21,40019,900+7.5%33.3%
    Spare parts1,200n/m1.9%
    Services13,90012,000+15.8%21.7%
    Dec only (all seg)14,7667,100+108%23.0% of FYException: period-end conc.
  • Customer ConcentrationIdentify customers representing an outsized share of revenue.chart

    Identify customers representing an outsized share of revenue.

    Revenue concentration by customer
    80%Apex RetailNorthwind CoZephyr Ltd (new)Delta MfgAll others

    Bars past the 80% line are shaded back. The line is cumulative share of total revenue.

    Portfolio DSO
    56 days
    >10% customers
    3

    Zephyr DSO 203 — 4,000 sits in 90+ bucket.

    Result grid5 rows
    CustomerRevenue% of RevCum %AR BalanceDSO
    Apex Retail14,80023.1%23.1%3,40084
    Northwind Co9,60015.0%38.1%1,48056
    Zephyr Ltd (new)7,20011.2%49.3%4,000203
    Delta Mfg5,1007.9%57.2%76054
    All others27,50042.8%100.0%200
  • Credit MemosCatch revenue recognized then quietly reversed shortly after period end.

    Catch revenue recognized then quietly reversed shortly after period end.

    Post-close reversals
    3
    By R.Kahn
    61%
    Blank reasons
    2
    Result grid4 rows
    memo_idmemo_dateorig_invoice_datedays afteramountissued_by
    CM-31202025-01-092024-12-30101,840R.Kahn
    CM-31222025-01-122024-12-2815960R.Kahn
    CM-30982024-11-142024-11-0212220A.Lee
    CM-31252025-02-012024-12-31322,000R.Kahn
  • Channel StuffingIdentify channel stuffing — late period revenue reversed in the first weeks of the new period.

    Identify channel stuffing — late period revenue reversed in the first weeks of the new period.

    Dec 22-31 revenue
    4,540 — 30.7% of Dec
    First 30 days reversals
    (4,800)
    Stuffing ratio
    1.06
    Linked reversals — quantified
    (4,800)

    Channel stuffing (ISA 315 fraud risk). A late-period spike that mirrors a post-period reversal is the inflated-revenue signature, and what is quantified is the linked reversals themselves — each traced to the invoice it reverses — rather than a residual left after estimating how much of the spike was genuine. The daily series sums to the 4,540 stated for the window.

    Result grid5 rows
    Pattern legPeriodAmountDetailFlag
    Late-period revenue spikeDec 22-31 (last 10 days)+4,54030.7% of December revenue (14,766) compressed into the last 10 days; manual JEs to Apex Retail, Northwind and Zephyr LtdException: severe period-end concentration
    Post-close credit memosJan 1-30(4,800)CM-3120 (1,840) + CM-3122 (960) + CM-3125 (2,000), each traced to the invoice it reversesException: mirror reversal in first 30 days
    Returns / refunds (post-close)Jan 1-30(440)Goods returned by Apex Retail (SR-9011) and Northwind (SR-9014)Watch: matches premature-cut-off invoices
    Quantified overstatementFY25(4,800)The sum of the linked reversals, invoice by invoice. Not a residual — subtracting an estimate of genuine late sales from the spike would make the answer equal to that estimateException: channel-stuffing signature
    Cross-referenceFY25CM-3120 and CM-3122 (2,800) are the same invoices as M-02 Premature revenue — counted once. CM-3125 (2,000) is additional and is raised separatelyNo double-count
  • AR AgingTest whether the bad debt provision is adequate given the actual age profile of receivables.chart

    Test whether the bad debt provision is adequate given the actual age profile of receivables.

    Trade receivables by ageing bucket
    2.1kCurrent1.3k31–60 days88061–90 days4.6k90+ days

    Buckets darken with age. Intercompany AR is excluded — it is assessed against the counterparty, not by ageing.

    AR in scope (ex-IC)
    8,940
    Coverage
    3.6%
    Shortfall
    (1,280)

    Aged from the due date, not the invoice date, at the period-end date. Intercompany receivables are excluded and assessed against the counterparty. Loss rates are derived from the entity’s own realisation history on aged balances rather than assumed. Implied provision 1,605 against the 325 recorded on account 1250 — a 1,280 shortfall. Feeds M-03.

    Result grid6 rows
    Past-due bucketARLoss rate (derived)Implied prov.RecordedShortfall
    Current2,1100.5%11
    31–60 days1,3402%27
    61–90 days8808%70
    90+ days4,61029.3%1,497
    Total8,9401,605325(1,280)
    Memo: intercompany AR excluded900n/a
  • Unapplied CashFind cash that arrived but was never matched to an invoice.chart

    Find cash that arrived but was never matched to an invoice.

    Unapplied receipts: value against age
    0240480Days unappliedAmount
    Unapplied $
    1,210
    Oldest
    142 days
    Cross-customer
    3
    Result grid3 rows
    receipt_idreceipt_datecustomer_idamountapplied_invoiceage unapplied
    RC-50122024-08-14Apex Retail480142
    RC-50992024-12-20Northwind300INV (Delta Mfg)
    RC-51402024-12-29Zephyr Ltd4306
  • Intercompany RevenueVerify intercompany transactions eliminate cleanly at the group level.chart

    Verify intercompany transactions eliminate cleanly at the group level.

    Intercompany revenue against the counterparty’s cost
    DE-Co3.9kUS-Co1.1kUK-Co900
    • IC revenue
    • Counterparty cost

    The gap between the dots is what has to be explained before anything is eliminated — a timing difference or a genuine break. The grid says which; the two are never netted.

    IC revenue
    6,200
    IC cost
    5,900
    Elimination gap
    300
    Result grid3 rows
    SellerBuyerIC RevenueCounterparty IC CostGapGap %
    US-CoDE-Co4,2003,9003007.1%
    UK-CoUS-Co1,1001,10000%
    DE-CoUK-Co90090000%

Trade Payables

4 analyses

Vendor concentration, aggregated vendor risk, payables ageing against contracted terms, and the invoices that were paid twice.

  • Vendor ConcentrationIdentify vendors representing a disproportionate share of spend.chart

    Identify vendors representing a disproportionate share of spend.

    Spend concentration by vendor
    80%Global PartsOrion Supplies (new)Meridian LogisticsCedar OfficeAll others

    Bars past the 80% line are shaded back. The line is cumulative share of total spend.

    Portfolio DPO
    77 days
    >10% vendors
    2
    New top vendor
    Orion
    Result grid6 rows
    VendorSpendPY Spend% of SpendCum %AP Balance
    Global Parts11,2009,80028.1%28.1%1,380
    Orion Supplies (new)6,400016.1%44.2%2,950
    Meridian Logistics4,9004,60012.3%56.5%640
    Cedar Office980442.5%59.0%120
    All others16,40018,90041.0%100.0%3,330
    Total39,88033,344100.0%8,420
  • Vendor Risk RankingRoll every vendor-level signal into one aggregated risk score per vendor.

    Roll every vendor-level signal into one aggregated risk score per vendor.

    This one collects results from every other analysis, so it only means anything on a real engagement — we walk through it live in the demo.

  • AP Aging & DPOAge the open payables at period end, and compare how fast settled invoices were actually paid against contracted terms.chart

    Age the open payables at period end, and compare how fast settled invoices were actually paid against contracted terms.

    Payables by past-due band
    5.3kNot yet due1.8k1-30 days past due84031-90 days past due46090+ days past due

    Bands in ageing order, oldest last — the order is the reading, so nothing re-sorts them by size.

    Portfolio DPO
    77 days
    Debit balances (reclass)
    (240)
    90+ no dispute
    460

    Two populations, two tests. The ageing covers what is still owed and is where the aged balance and the debit balances surface; days-to-pay covers what has already been settled and reads in both directions — early settlement to Orion is the fraud-relevant signal, late settlement to Cedar the liquidity one. Portfolio DPO is the whole closing balance (8,420) over the whole purchase population, giving 77 days; computing it from a handful of listed vendors against total spend would give 47 and describe nobody. Early and late carry opposite signs.

    Result grid6 of 13 rows
    Past-due bucket / VendorAP balanceContract termsDays to pay (settled)Delta vs termsFlag
    Ageing of open items at period end
    Not yet due5,340
    1-30 days past due1,780
    31-90 days past due840
    90+ days past due460Watch: aged, no dispute recorded
    Total open payables8,420Ties to the balance sheet
  • Duplicate InvoicesFind invoices paid twice.chart

    Find invoices paid twice.

    Candidate pairs by amount
    80%Global PartsOrionMeridian

    Ranked by the money each pair puts at risk, so the reader can see how few to open to cover most of it. Tiers are never added together — which pair is an exact match and which is fuzzy stays on the grid.

    Groups
    14
    Paid twice
    6
    Exposure
    38.4k

    Confirmed paid-twice 5,580 — recoverable overpayment.

    Result grid3 rows
    Groupinvoice Ainvoice Bvendoramountdates
    D-01PI-66201 (#A1099)PI-66830 (#A1099)Global Parts4,400same
    D-02PI-66310 (#7741)PI-66355 (#7741)Meridian1,180+2d
    D-03PI-66120 (#INV-2231)PI-66480 (#INV2231)Orion2,950same

Completion

4 analyses

Sampling, coverage, exception disposition, and the misstatement schedule that carries into the opinion.

  • Misstatement SchedulePull every finding into one number that matters for the audit opinion.

    Pull every finding into one number that matters for the audit opinion.

    This one collects results from every other analysis, so it only means anything on a real engagement — we walk through it live in the demo.

  • Disposition / ReviewTrack the lifecycle of every exception from flagged to final conclusion.

    Track the lifecycle of every exception from flagged to final conclusion.

    This one collects results from every other analysis, so it only means anything on a real engagement — we walk through it live in the demo.

  • Sampling (MUS)Justify statistically why testing high-risk items plus a smaller systematic sample is sufficient.

    Justify statistically why testing high-risk items plus a smaller systematic sample is sufficient.

    Method
    Monetary-unit
    Confidence
    95%
    Tolerable error (TE)
    250
    Reliability factor
    3.0 @ 95%

    ISA 530. Above-TE and high-risk items are examined in full; only the residual is sampled, monetary-unit, from a random start below the achieved interval.

    Result grid4 rows
    StratumValueItemsSelection basisTested
    Above TE — examined in full18,900214Examined in full214 items
    High risk — examined in full9,20022Examined in full22 items
    Residual — sampled17,000501MUS, interval 83 = residual value ÷ n (204), random start below the interval204 items
    Negative / nil — outside MUS(1,400)18Own stratum — MUS selects proportional to value and cannot reach theseseparate approach required
  • Population CoverageDemonstrate testing effort is allocated proportionally to risk and value.chart

    Demonstrate testing effort is allocated proportionally to risk and value.

    Population reached by testing
    18.9k2.7k45% reachedpopulation 48.3k
    • High 67-100
    • Med 33-66
    • Low 0-32
    • Not reached

    Tested value per band = value × tested %. The pale remainder is the population no procedure reached.

    Tested by value
    41%
    High-risk $
    100%
    Untested $
    59%
    Result grid4 rows
    Risk bandCount% countValue% valueTested
    High 67-1002140.5%18,90039%100%
    Med 33-661,9024.6%12,40026%22%
    Low 0-3239,22294.9%17,00035%1%
    Total41,338100%48,300100%41% $ · 100% high-risk $

Need a test that is not listed?

Describe the audit objective in plain English. Audit Scoot can generate a draft query from schema metadata, then execute it locally for professional review.

See the catalogue in a demo

Cookie settings

This site sets no analytics or marketing cookies. Strictly necessary storage only: portal cookies (session, CSRF) when you log in, and browser localStorage for your currency preference.

View Cookie Policy