Accounting Analytics: An Integrated Approach
Part IV of V: Data Visualization and Power BI
Chapter 4 of 4 in this Part
Table 16.1 · The monitoring tests
| TestID | Test | Process | Source |
|---|---|---|---|
| JE Weekend | Entry created on a weekend | Journal entries | Chapter 8 |
| JE Backdated | Entry created after its posting date | Journal entries | Chapter 8 |
| JE SelfApproved | Entry approved by its creator | Journal entries | Chapter 8 |
| JE AboveLimit | Entry above its approver’s limit | Journal entries | Chapter 8 |
| JE RoundAmount | Entry in whole thousands | Journal entries | Chapter 8 |
Table 16.1 · The monitoring tests
| TestID | Test | Process | Source |
|---|---|---|---|
| PO SelfApproved | Order approved by its creator | Purchase orders | Chapter 12 |
| PO AboveLimit | Order above its approver’s limit | Purchase orders | Chapter 12 |
| PO AfterTermination | Order dated after the approver left | Purchase orders | Chapter 12 |
| PR PaidBeforeApproval | Pay made before the register was approved | Payroll | Exercise 12.5 |
| PR AfterTermination | Pay period ending after termination | Payroll | Exercise 12.5 |
| PR SelfApproved | Register approved by its own employee | Payroll | Exercise 12.5 |
Exception or anomaly; auditing or monitoring?
Table 16.2 · The columns of the exception register
| Register column | Journal entries | Purchase orders | Payroll registers |
|---|---|---|---|
| TestID | JE and the flag name | PO and the flag name | PR and the flag name |
| DocumentNumber | EntryNumber | PONumber | Register and its ID |
| EventDate | PostingDate | OrderDate | PayDate |
| Amount | TotalAmount | OrderTotal | NetPay |
| EmployeeID | ApprovedByEmployeeID | ApprovedByEmployeeID | ApprovedByEmployeeID |
// Weekend
if Date.DayOfWeek([CreatedDate], Day.Monday) >= 5
then 1 else 0
// SelfApproved
if [CreatedByEmployeeID] = [ApprovedByEmployeeID]
then 1 else 0
// RiskScore
[Weekend] + [Backdated] + [SelfApproved]
+ [AboveLimit] + [RoundAmount]
Before you add the other processes, confirm the following:
What does each pattern suggest?
Population =
SWITCH (
SELECTEDVALUE ( Tests[Process] ),
"Journal entries", COUNTROWS ( JournalEntry ),
"Purchase orders", COUNTROWS ( PurchaseOrder ),
"Payroll", COUNTROWS ( PayrollRegister )
)
Before you review the exceptions, confirm the following:
How should each be reviewed?
Table 16.3 · The questions an auditor asks of a report
| Question | Evidence | In the reports of this Part |
|---|---|---|
| Is every document in the model? | Each population reconciled to the ledger, and document numbers checked for gaps | Tests 1 and 4 of the monitoring file; the Validation pages |
| Do the measures compute what they claim? | Queries that reproduce totals known from other tools | The package’s Tests 1 to 5; Test 2 of the monitoring file |
| How current are the data? | The last date of each population, and the refresh history | The Data Through card; the package’s About page |
| Who changed the report, and was the change reviewed? | The version history of the report’s files, and a record of approvals | A Power BI project under version control |
Which question does each piece of evidence answer?
Data Through =
MINX (
{
MAX ( JournalEntry[PostingDate] ),
MAX ( PurchaseOrder[OrderDate] ),
MAX ( PayrollRegister[PayDate] )
},
[Value]
)
Before you send the memo, confirm the following:
Anomaly · Append · Change control · Continuous auditing · Continuous monitoring · Data currency · Exception register · Open exception · Unpivot
Next: Comprehensive Case: Finding the Cash Behind the Profit
These slides accompany Accounting Analytics: An Integrated Approach, licensed under CC BY-SA 4.0. Every figure and table comes from the chapter:
https://aa.accountinganalyticshub.com/chapters/16-audit-monitoring/chapter.html
Chapter 16 · Audit Monitoring and Report Assurance