<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN" "https://jats.nlm.nih.gov/publishing/1.2/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" article-type="research-article" dtd-version="1.2" xml:lang="en">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">IJARA</journal-id>
<journal-title-group><journal-title>International Journal of Accounting Research and Auditing</journal-title></journal-title-group>
<publisher><publisher-name>Thomson &amp; Ryberg Publications</publisher-name></publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.62715/ijara.2026.v1.i1.pp19-23</article-id>
<article-id pub-id-type="publisher-id">7516dbd982</article-id>
<article-categories><subj-group subj-group-type="heading"><subject>Methodology Article</subject></subj-group></article-categories>
<title-group><article-title>A Stepwise Procedure for Testing Journal Entries Using Unsupervised Anomaly Detection in Small Audit Practices</article-title></title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes"><name><surname>Adeyemi</surname><given-names>Naveen</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1">*</xref></contrib>
<contrib contrib-type="author"><name><surname>Dawson</surname><given-names>Aibek</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib>
<contrib contrib-type="author"><name><surname>Al-Rashid</surname><given-names>Tunde</given-names></name><xref ref-type="aff" rid="aff3"><sup>3</sup></xref></contrib>
<aff id="aff1"><label>1</label>Department of Accounting, Ebro Center for Accounting, Canada</aff>
<aff id="aff2"><label>2</label>Department of Accounting, Zambezi Center for Accounting, South Korea</aff>
<aff id="aff3"><label>3</label>Department of Accounting, Tamiraparani Academy of Accounting, Thailand</aff>
</contrib-group>
<author-notes><corresp id="cor1">* Correspondence: <email>naveen.adeyemi@ebro.edu</email></corresp></author-notes>
<pub-date pub-type="epub" iso-8601-date="2026-04-18"><day>18</day><month>04</month><year>2026</year></pub-date>
<volume>1</volume>
<issue>1</issue>
<fpage>19</fpage>
<lpage>23</lpage>
<history>
<date date-type="received" iso-8601-date="2026-01-06"><day>06</day><month>01</month><year>2026</year></date>
<date date-type="accepted" iso-8601-date="2026-02-27"><day>27</day><month>02</month><year>2026</year></date>
</history>
<permissions><copyright-statement>© 2026 The Author(s)</copyright-statement><copyright-year>2026</copyright-year><license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/"><license-p>This is an open access article distributed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).</license-p></license></permissions>
<self-uri xlink:href="https://trpub.org/article.php?id=7516dbd982"/>
<abstract><p>Auditing standards require the auditor to test journal entries for signs of management override, and most small practices meet that requirement with a fixed list of filters: weekend postings, round amounts, entries by senior staff. Such filters find what they are told to look for and nothing else. Unsupervised anomaly detection offers a complement, because it ranks entries by how unusual they are without needing examples of past fraud, and the tools to run it are now free and well documented. What small firms lack is a procedure that fits their resources and their documentation duties. This article sets one out in seven steps: obtain and reconcile the full ledger, profile it, build a small set of interpretable features, fit an isolation forest and a second detector, combine the ranking with conventional rule-based flags, follow up the highest-ranked entries, and document the work. Each step is described with its purpose, the judgement it requires and the record it should leave on file. The procedure is a proposal assembled from the standards and the published literature. It has not been validated on engagement data here, and the article states plainly what would need to be shown before it could be relied on.</p></abstract>
<kwd-group kwd-group-type="author">
<kwd>Journal entry testing</kwd>
<kwd>Anomaly detection</kwd>
<kwd>Isolation forest</kwd>
<kwd>Management override</kwd>
<kwd>Audit data analytics</kwd>
<kwd>Small audit firms</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="sec1"><title>1. Introduction</title>
<p>Every audit conducted under international standards includes a test of journal entries. The requirement comes from the presumption that management is in a position to override controls, and that override often takes the form of entries posted directly to the general ledger (IAASB, 2009). In a large firm the test is run with proprietary software over the whole population. In a practice of three partners and a handful of staff it is more often a spreadsheet filter applied to an export that may or may not be complete.</p>
<p>The filters used are sensible. They come straight from the characteristics the standards list: entries to seldom-used accounts, entries by people who do not normally post, entries at period end with thin explanations, round numbers. Their weakness is that they are fixed in advance. An entry that is odd in a way nobody anticipated passes through, and a client who knows the list can stay clear of it. Research on journal entry data has shown that statistical approaches surface patterns that rule lists miss (Debreceny and Gray, 2010), and the wider literature on audit analytics has argued for some time that such methods belong in ordinary engagements (Appelbaum et al., 2017).</p>
<p>This article is addressed to the small practice. It proposes a stepwise procedure for adding unsupervised anomaly detection to journal entry testing using freely available software, in a form that can be explained to a reviewer and documented on file. It does not report an application of the procedure to real data. The contribution is the method and the reasoning behind each step.</p>
</sec>
<sec id="sec2"><title>2. Background</title>
<p>Three strands of prior work bear on the design: what the standards require, what rule-based testing can and cannot do, and which unsupervised methods suit ledger data.</p>
<sec id="sec2-2"><title>2.1. What the standards require</title>
<p>ISA 240 asks the auditor to design and perform procedures to test the appropriateness of journal entries recorded in the general ledger and other adjustments made in preparing the financial statements. The auditor is to make enquiries about inappropriate or unusual activity, select entries made at the end of the period, and consider the need to test entries throughout it (IAASB, 2009). The United States standard on fraud contains equivalent requirements (PCAOB, 2016). Neither standard prescribes a technique. Both expect the selection to be reasoned and the reasoning to be recorded.</p>
</sec>
<sec id="sec2-3"><title>2.2. Rule-based tests and their limits</title>
<p>The best known statistical screen is digit analysis based on Benford&#x27;s law, introduced to auditors by Nigrini and Mittermaier (1997). It is quick and needs only the amounts, but it works at the level of the population: it says that a set of entries has too many amounts starting with a given digit and not which entries to examine. Filters on time, user and account identify individual entries but generate long lists, and a long list in a small firm means that only the top of it is ever looked at. No et al. (2019) treat this as the central practical problem of audit analytics and propose prioritising exceptions instead of sampling from them. A taxonomy of data mining applications in fraud detection is given by Gray and Debreceny (2014).</p>
</sec>
<sec id="sec2-4"><title>2.3. Unsupervised methods</title>
<p>Supervised models need labelled examples of fraudulent entries, and an audit firm almost never has them. Unsupervised methods need none. They characterise what is typical in the data and score each record by its distance from it (Chandola et al., 2009). Early work applied such ideas to large ledgers (Bay et al., 2006), and later studies trained autoencoder networks to flag entries that reconstruct poorly (Schreyer et al., 2017). For a small practice two methods stand out. The isolation forest scores a record by how few random splits are needed to separate it from the rest (Liu et al., 2008); it is fast, has few settings and copes with mixed features. The local outlier factor compares the density around a record with the density around its neighbours (Breunig et al., 2000) and tends to catch entries that are unusual within their own account or user group. Both are implemented in scikit-learn (Pedregosa et al., 2011).</p>
</sec>
</sec>
<sec id="sec3"><title>3. The Procedure</title>
<p>The procedure has seven steps. Table 1 lists them with the record each should leave, and Figure 1 shows how they connect. The steps are described in turn below.</p>
<table-wrap id="tbl1"><label>Table 1</label><caption><p>The seven steps of the proposed procedure and the record each leaves on the audit file</p></caption><table frame="hsides" rules="groups"><thead><tr><th>Step</th><th>What the auditor does</th><th>Record kept on file</th></tr></thead><tbody><tr><td>1. Obtain and reconcile</td><td>Extract every journal line for the period and agree the totals to the trial balance</td><td>Extraction request, record counts, reconciliation</td></tr><tr><td>2. Profile</td><td>Summarise entries by account, user, source, month and amount</td><td>Profile tables and points noted</td></tr><tr><td>3. Build features</td><td>Derive a small set of features that an auditor can explain</td><td>Feature list with definitions</td></tr><tr><td>4. Fit detectors</td><td>Run an isolation forest and a local outlier factor on the features</td><td>Settings, software version, random seed</td></tr><tr><td>5. Combine and rank</td><td>Merge the two scores with conventional rule flags into one ranked list</td><td>Ranking rule and the ranked list</td></tr><tr><td>6. Follow up</td><td>Examine the highest-ranked entries against supporting evidence</td><td>Entries tested, evidence seen, conclusions</td></tr><tr><td>7. Conclude and document</td><td>Evaluate results, extend testing if needed, record the rationale</td><td>Summary memorandum</td></tr></tbody></table></table-wrap>
<fig id="fig1"><label>Figure 1</label><caption><p>Flow of the proposed procedure, from ledger extraction to documentation</p></caption><graphic xlink:href="IJARA_V1I1_2026_04_Figure1.png" mimetype="image" mime-subtype="png"/></fig>
<sec id="sec3-2"><title>3.1. Step 1: Obtain and reconcile the ledger</title>
<p>Nothing downstream is worth doing unless the data are complete. The auditor should request every journal line for the period, including opening and closing entries and postings from sub-ledgers, with at least the entry number, line number, posting date, entry date, account, amount, user, source and description. The file is then rolled forward: opening balances plus the net movement per account should equal the closing trial balance. Differences are investigated before any analysis begins.</p>
</sec>
<sec id="sec3-3"><title>3.2. Step 2: Profile the population</title>
<p>Profiling is ordinary descriptive work: how many entries and lines, who posts them, from which sources, in which months, to which accounts. It serves two purposes. It gives the auditor the understanding of the client&#x27;s posting patterns that later makes an anomaly interpretable, and it reveals data problems, such as a missing month or a generic user identifier, that would otherwise distort the scores.</p>
</sec>
<sec id="sec3-4"><title>3.3. Step 3: Build interpretable features</title>
<p>The detectors work on numbers, so each entry must be described numerically. The temptation is to generate many features. For a small practice the better course is a short list that maps onto the characteristics named in ISA 240, so that any flagged entry can be explained in the standard&#x27;s own terms. A workable set is: the logarithm of the amount; whether the amount is round; the day of the week and hour of posting; the number of days between entry date and period end; the gap between posting date and entry date; how often the user posts; how often the account is used; how often that pair of debit and credit accounts occurs together; whether the source is manual; and the length of the description. Frequencies are computed from the client&#x27;s own data, which is what makes a rare account pairing rare.</p>
</sec>
<sec id="sec3-5"><title>3.4. Step 4: Fit two detectors</title>
<p>An isolation forest is fitted to the feature table with default settings and a fixed random seed, so that the run can be reproduced. A local outlier factor is fitted separately, with entries grouped by account class where the ledger is large. Two detectors are used because they fail differently: the forest favours entries that are extreme overall, the local method those that are odd for their neighbourhood. Neither score is a probability of fraud, and the file should say so.</p>
</sec>
<sec id="sec3-6"><title>3.5. Step 5: Combine with rule-based flags and rank</title>
<p>The scores are converted to ranks and averaged. Conventional flags are then added as a count: manual entry, period-end posting, senior user, round amount, blank description. Entries are ordered first by the number of flags and then by the average rank. The effect is that an entry which is both statistically unusual and conventionally suspect rises to the top, while the purely statistical outliers follow. The auditor fixes in advance how many entries will be examined, having regard to assessed fraud risk and materiality, and does not adjust the number after seeing the list.</p>
</sec>
<sec id="sec3-7"><title>3.6. Step 6: Follow up</title>
<p>Each selected entry is traced to its support: the authorisation, the underlying document, the business reason. Anomaly scores often flag entries that are unusual and entirely proper, such as an annual insurance premium or a one-off asset disposal, and these are cleared quickly. What matters is that the reason for clearing is evidence and not management&#x27;s explanation alone.</p>
</sec>
<sec id="sec3-8"><title>3.7. Step 7: Conclude and document</title>
<p>The auditor records what was done, what was found and what it means for the assessed risk of override. If exceptions are found, testing is extended down the ranked list. The memorandum should let an experienced auditor with no connection to the engagement understand the selection and repeat it.</p>
</sec>
</sec>
<sec id="sec4"><title>4. Fitting the Procedure to a Small Practice</title>
<p>Three constraints shaped the design. The first is skills. The whole procedure can be run from a short script by someone comfortable with spreadsheets and willing to learn a little Python; no model is trained in the sense of being tuned, and the defaults are used deliberately. The second is time. On a ledger of a few hundred thousand lines the computation takes minutes, and the cost lies in the first engagement, when the extraction and the script are set up. The third is confidentiality. Client ledgers should be processed on the firm&#x27;s own machines and not uploaded to online services, and the script and its outputs retained with the audit file.</p>
</sec>
<sec id="sec5"><title>5. Limitations and What Remains to Be Shown</title>
<p>This article proposes a procedure and does not test it. Three things would need to be established before it could be recommended without reservation. One is detection: whether, on ledgers seeded with entries of the kind the standards describe, the ranked list places them near the top more reliably than filters alone. A second is workload: how many of the top-ranked entries in real engagements turn out to be proper, since a method that buries the reviewer in false alarms will be abandoned. The third is stability: whether the ranking changes much between runs or with small changes to the feature list. Each can be examined with data a practice already holds, and each is a natural subject for a follow-up study.</p>
<p>Two further cautions apply. Unsupervised methods find what is rare, and a fraud carried out through many ordinary-looking entries will not be rare. The procedure supplements professional scepticism and the other responses to override risk; it does not replace them. And an anomaly score, however it is computed, is a reason to look and never a finding in itself.</p>
</sec>
<sec id="sec6"><title>6. Conclusion</title>
<p>Small audit practices can add unsupervised anomaly detection to journal entry testing with free software and modest effort. The seven-step procedure set out here keeps the features interpretable, pairs the statistical ranking with the familiar rule-based flags, and builds documentation into each stage. Its value in practice is an empirical question that this article leaves open and that practitioners and researchers are well placed to answer together.</p>
</sec>
<sec id="sec7"><title>Conflict of interest</title>
<p>To be declared by the author(s) before publication.</p>
</sec>
<sec id="sec8"><title>Funding</title>
<p>To be declared by the author(s) before publication.</p>
</sec>
</body>
<back>
<ref-list><title>References</title>
<ref id="ref1"><label>1</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Appelbaum, D., Kogan, A. and Vasarhelyi, M.A.</string-name></person-group> (<year>2017</year>). <article-title>Big data and analytics in the modern audit engagement: Research needs</article-title>. <source>Auditing: A Journal of Practice &amp; Theory</source>, <volume>36(4)</volume>, <fpage>1-27</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.2308/ajpt-51684">https://doi.org/10.2308/ajpt-51684</ext-link></mixed-citation></ref>
<ref id="ref2"><label>2</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Bay, S., Kumaraswamy, K., Anderle, M.G., Kumar, R. and Steier, D.M.</string-name></person-group> (<year>2006</year>). <article-title>Large scale detection of irregularities in accounting data</article-title>. <source>Proceedings of the Sixth IEEE International Conference on Data Mining</source>, <fpage>75-86</fpage></mixed-citation></ref>
<ref id="ref3"><label>3</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Breunig, M.M., Kriegel, H.-P., Ng, R.T. and Sander, J.</string-name></person-group> (<year>2000</year>). <article-title>LOF: Identifying density-based local outliers</article-title>. <source>Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data</source>, <fpage>93-104</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1145/342009.335388">https://doi.org/10.1145/342009.335388</ext-link></mixed-citation></ref>
<ref id="ref4"><label>4</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Chandola, V., Banerjee, A. and Kumar, V.</string-name></person-group> (<year>2009</year>). <article-title>Anomaly detection: A survey</article-title>. <source>ACM Computing Surveys</source>, <volume>41(3)</volume>, <fpage>1-58</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1145/1541880.1541882">https://doi.org/10.1145/1541880.1541882</ext-link></mixed-citation></ref>
<ref id="ref5"><label>5</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Debreceny, R.S. and Gray, G.L.</string-name></person-group> (<year>2010</year>). <article-title>Data mining journal entries for fraud detection: An exploratory study</article-title>. <source>International Journal of Accounting Information Systems</source>, <volume>11(3)</volume>, <fpage>157-181</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.accinf.2010.08.001">https://doi.org/10.1016/j.accinf.2010.08.001</ext-link></mixed-citation></ref>
<ref id="ref6"><label>6</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Gray, G.L. and Debreceny, R.S.</string-name></person-group> (<year>2014</year>). <article-title>A taxonomy to guide research on the application of data mining to fraud detection in financial statement audits</article-title>. <source>International Journal of Accounting Information Systems</source>, <volume>15(4)</volume>, <fpage>357-380</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.accinf.2014.05.006">https://doi.org/10.1016/j.accinf.2014.05.006</ext-link></mixed-citation></ref>
<ref id="ref7"><label>7</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>IAASB</string-name></person-group> (<year>2009</year>). <article-title>International Standard on Auditing 240, The Auditor&#x27;s Responsibilities Relating to Fraud in an Audit of Financial Statements</article-title>. <source>International Auditing and Assurance Standards Board, New York</source></mixed-citation></ref>
<ref id="ref8"><label>8</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Liu, F.T., Ting, K.M. and Zhou, Z.-H.</string-name></person-group> (<year>2008</year>). <article-title>Isolation forest</article-title>. <source>Proceedings of the Eighth IEEE International Conference on Data Mining</source>, <fpage>413-422</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/ICDM.2008.17">https://doi.org/10.1109/ICDM.2008.17</ext-link></mixed-citation></ref>
<ref id="ref9"><label>9</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Nigrini, M.J. and Mittermaier, L.J.</string-name></person-group> (<year>1997</year>). <article-title>The use of Benford&#x27;s law as an aid in analytical procedures</article-title>. <source>Auditing: A Journal of Practice &amp; Theory</source>, <volume>16(2)</volume>, <fpage>52-67</fpage></mixed-citation></ref>
<ref id="ref10"><label>10</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>No, W.G., Lee, K., Huang, F. and Li, Q.</string-name></person-group> (<year>2019</year>). <article-title>Multidimensional audit data selection (MADS): A framework for using data analytics in the audit data selection process</article-title>. <source>Accounting Horizons</source>, <volume>33(3)</volume>, <fpage>127-140</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.2308/acch-52453">https://doi.org/10.2308/acch-52453</ext-link></mixed-citation></ref>
<ref id="ref11"><label>11</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>PCAOB</string-name></person-group> (<year>2016</year>). <article-title>AS 2401: Consideration of Fraud in a Financial Statement Audit</article-title>. <source>Public Company Accounting Oversight Board, Washington, DC</source></mixed-citation></ref>
<ref id="ref12"><label>12</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M. and Duchesnay, E.</string-name></person-group> (<year>2011</year>). <article-title>Scikit-learn: Machine learning in Python</article-title>. <source>Journal of Machine Learning Research</source>, <volume>12</volume>, <fpage>2825-2830</fpage></mixed-citation></ref>
<ref id="ref13"><label>13</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Schreyer, M., Sattarov, T., Borth, D., Dengel, A. and Reimer, B.</string-name></person-group> (<year>2017</year>). <article-title>Detection of anomalies in large scale accounting data using deep autoencoder networks</article-title>. <source>arXiv preprint arXiv:1709.05254</source></mixed-citation></ref>
</ref-list>
</back>
</article>