Professional Documents
Culture Documents
FOUNDATIONS
Zahid Hilmi
Technology, Advisory & Enablement
Introduction
“ Data Concepts
Best Practices
2
Learning Objectives
At the end of the course, you will be able to:
• Understand the basic use of ACL Analytics
• Importing data source into ACL analytics
• Prepare imported data
• Analyze data to achieve data analysis objectives
• Report exceptions
3
1 Introduction
Introduction of ACL
Analytics
What is ACL™ Analytics? Why uses ACL™ Analytics?
▸ Comprehensive Data ▸ Ease of Use
Analysis Tool
▸ Read-Only
Who uses ACL™ Analytics?
▸ Mainframe Data
▸ Auditors – Internal & External
▸ Functions
▸ Fraud Examiners
▸ Log File
▸ Operational Departments
▸ Compare Data from Different Systems
▸ Most industries
▸ Companies of all sizes ▸ Analyze Complete Data Sets
5
The impact of ACL Analytics
used
Value Proposition Intended Purpose
Validate effectiveness of • Proactively identify control failures & weaknesses to minimize their
Internal Controls financial impact
• Analyze business data to detect fraud, errors and anomalies.
• Improve enterprise-wide risk management
Drive Down Cost of • Increase business process transparency – create a solid foundation for
Regulatory Compliance reliable financial reporting.
• Enhance audit coverage, reduce audit cycles, & minimize impact on
resources.
• Provide credible attestation evidence
Enhance Business • Improve operational effectiveness & efficiency
Performance & Bottom- • Minimize fraud, risk, loss, & revenue leakage
Line Results • Improve revenue management & cost recovery
6
The Enabling Technologies of
ACL Analytics
Enabling Technology Detail
7
Non-Unicode VS Unicode
Non-Unicode Unicode
Unilingual (English only Data) Multiple Languages
Can read and write single-byte Can read and write both double-
character sets byte or single-byte character sets
9
Commands – Sub Files
• AR_2013 contains data for
the full year but analysis is
to be performed on Q1 data Project
10
Basic Workflow
11
2 Data Concepts
Data is meaningless until
context has been applied to it.
13
What does this string of data represent?
09082021
Field Name Field Type Interpretation Detail
Account Number Character 09082021 Leading 2 zero retained.
Invoice Amount Numeric 9,082,021 Leading 1 zero dropped
Without decimals.
Invoice Amount Numeric 90,082.21 Leading 1 zero dropped
With decimals.
Invoice Date Datetime Sep-08-2021 North American interpretation
(MMDDYYYY)
Invoice Date Datetime Aug-09-2021 European interpretation
(DDMMYYYY)
14
Differentiating between the data types
15
Qualifying Data
16
Data Storage
Field Byte
Record
Number
Record
17
Data Storage
Files, Records, Fields & Bytes Field Byte
Record
Number
Record
Record Layout
Field Name Data Type Start Position Length Decimals Date Format
Vendor_No Character 1 5
Invoice_No Character 6 15
Invoice_Date Datetime 21 10 MM/DD/YYYY
Invoice_Amt Numeric 31 12 2
Product_No Character 43 9
18
The Launcher
1. Organization Selector
2. Toolbar
3. Recent Analytics Files
4. Open
5. Create
6. Samples Files
19
User Interface
1. Title Bar
2. Main Menu
3. Toolbar
4. Navigator
5. Command Line
6. Filter & Quick Search
7. Index
8. Display Area
9. Status Bar
20
3 Best Practices
File Organization
Organize your hard drive by creating
a new Windows folder for each new
ACL™ Analytics project.
The location of your ACL™
Analytics project is the Default
Working Folder for that project.
New files created by ACL™
Analytics as a bi product of your
analysis will be stored automatically
in the Default Working Folder.
22
Best Practices
23
Best Practices
24
Best Practices
25
Naming Conventions
Develop consistent naming conventions to be used by all ACL
users within your organization.
Item Type Example Description
Prepared table p_Sales2021Actual Created from original data in preparation for
analysis.
Temporary Table t_Sales2021SortAmount Not required for final results.
Result Table r_Top10Customers Contains the result of test.
Filter f_InvoicesOver10k Named filter for future use.
Computed Field c_SalesTax The result of a calculation.
Variable v_tablename A user defined variable.
Source table s_Payroll A source table that you import into
your Analytics project
26
Phases of Data Analysis
28
4 Importing Files
Import File - Excel
1. Import Excel
• Select worksheet to import
• Enter the starting line to be import
• Use first row as Field Names, and select entire Excel Worksheet
• Check Field Properties
30
Import File - Delimited
31
Import File – Report Image
File Name – Demo Training Data - Report.txt
Field to Import:
1. Product Number
2. Product Description
3. Quantity
4. Unit Cost
5. Total Cost
32
Import File – Report Image
File Name – Demo Training Data - Puchord.txt
Field to Import:
1. Po_Num 6. Purc_Rep
2. Vend_No 7. Deposit
3. Supplier 8. Other_Payments
4. Division 9. Contract_Amt
5. PO_Date 10. Variance
33
Import File – Report Image
File Name – CredLim.txt
Field to Import:
1. Name
2. Street_Add
3. City
4. State
5. Zip
6. Cust_No
7. Comment
8. Limit
34
Import File – PDF
File Name - Invoice_Number_Report.pdf
36
Import File – Fixed-Width
File
1. Import (ACL101 Foundations 1-5\Case Study – Taft Industries\InventoryBoston.dat)
• Import Choose Skip to finish (to manually identify the Fixed-Width file)
• Based on the record layout, identify the data start/length
• Count
Field to Import:
1. Product Class (1st 2 Digits 6. Unit_Cost
from Product Number) 7. Sales_Price
2. Product Number 8. Review_Date
3. Product Description 9. Quantity on Hand
4. Location 10. Inventory Value At Cost
5. Product Status
37
Import File – Fixed-Width
File
2. Import InventoryChicago.dat, InventoryDenver.dat and
InventorySanFransisco.dat
• Import Choose Skip to finish (to manually identify the Fixed-Width
file)
• Based on the record layout, identify the data start/length
• Count
Field to Import:
1. Product Number 6. Unit_Cost
2. Product Class 7. Sales_Price
3. Product Description 8. Review_Date
4. Location 9. Quantity on Hand
5. Product Status 10. Inventory Value At Cost 38
What is ODBC?
39
Overview of the Data Access
Window
1 : Connection
2 : Search tables
3 : Available table
4 : Staging Area
5 : Filter panel
6 : Import preview
7 : Field configuration
8 : SQL mode
40
Import File – ODBC
File Name - TaftDatabase.mdb
41
Exercise
Case Study Taft Industries:
42
5 Extra Command
Verify File – Badfile
1. Badfile's Table (Verify)
• check backend records vs acl table
2. More advanced users can use the hexadecimal sequence to quickly identify
where something went wrong. In hexadecimal, ASCII characters are grouped
by similarity and function. For example:
• Hex codes in the range 0 to 1F are non-printable characters.
• Hex codes 30 to 39 are digits 0 to 9.
• Hex codes 40 to 5A are upper case letters.
44
Sequence
45
Gaps
46
Duplicates
47
6 Filtering
Quick Filtering
We can do simple “Quick Filter”
1. Select any cells/field
2. Click on Right Click
3. Select desired filter needed
49
Quick Filtering
We can do simple “Quick Filter”
1. Click fx
2. Insert desired filter
50
Exercise - Filtering
Demo Training Data – Account Receivable Audit - AR
1. Checking invoice date which done after due date
2. Check how many days between due date and invoice date
3. How much amount is impacted
4. How to extract to a new Table
5. Find how many IN in the table
6. Find IN which is TransAmount more than 1000
7. Find IN which is more than 1000 and in Quarter 4, 2014 in InvoiceDate
8. Check Invoices (IN) and amount is more than 100 or CreditNote (CN) and
amount less than -100 and in Quarter 4, 2014
9. Export result to excel
51
7 Extract
Record
▸ Will extract all column even
though the column has been
removed
▸ If let say the original column = 10,
we remove 5 column = 5, will
extract all 10 column
53
View
▸ Will only extract all the available
column in the view mode
▸ Will not extract the unavailable
column in the view mode
▸ If let say the original column = 10,
we remove 5 column = 5, will
extract all 5 column
54
Fields
▸ Will only extract all the selected
column
▸ Will not extract the un-selected
column
▸ If let say the original column fields
= 10, we select 5 column = 5, will
extract all 5 column
▸ To select multiple column, click
Ctrl + column needed
55
THANKS
!
Any questions?
56
8 Computed Fields
Computed Fields
58
Exercise
1. Demo Training Data – Account Payable - AP_Trans
• Check Invoice Amount calculation is correct or not
59
Exercise - Conditional Field
Project: ACL101 Demo Training Data
Table: Account Receivable - AR
3. Do Classify Command
60
Exercise - Conditional Field
Project: ACL101 Demo Training Data
Table: Inventory review - Inventory
61
Exercise
Project: ACL101 Demo Training Data
Table: Payroll analysis - Empmast
Objective:
Management want to recognize long service awards to their employees. The Year of
Service Award are reviewed as of 31 Dec 2014.
Question: Identify which group that will received the most amount of bonus for
the period?
2. How to get the max and min value for use in stratify ?
63
Exercise
Project: ACL101 Demo Training Data
Table: Empmast
1. Create a new field for insurance premium based on age and pay per period
2. Which Age Group that have highest payable insurance premium as of 31 Dec 2014?
64
Exercise (Empmast)
Project: ACL101 Demo Training Data
Table: Empmast
65
Exercise
Project: ACL101 Demo Training Data
Table: Empmast
Additional Request:
2. Multiple grouping:
Work Department and Award Type
Subtotal on LoyaltyBonus
66
ACL Functions
67
Exercise
Project: ACL101 Demo Training Data
Table: AR
1. Check invoices done on weekend – use quick filter Saturday & Sunday
Use Function:
• DOW (date) – string to date
• DATE() – date to string
• CDOW (date, length) – MON, TUE, WED, THU etc
• CMOY (date, length) – JAN, FEB, MAC, APR etc
• SPLIT(string , separator , segment <,text_qualifier> )
68
9 Grouping Data
ACL Commands
70
1
0 Combining Data
Combining Data
Analytics allows you to analyze data in only one table at a time. Because of this,
you may have to combine data from two or more tables into one table before
performing your analysis.
To combine tables Use
vertically APPEND
EXTRACT/APPEND
EXPORT/APPEND
JOIN
72
Combining Data
10.1
APPEND
Append
The APPEND
command creates a
new Analytics table by
appending two or more
tables together.
Appending (vertically
stacking) means to add
one group of records to
the bottom of another
group of records.
74
Practice
Project: Taft_Industries
Table: InventoryBoston, InventoryChicago
75
Exercise
Project: Taft_Industries
Table: InventoryDenver, InventorySanFrancisco, p_InventoryEastRegions
76
THANKS
!
Any questions?
77
Combining Data
10.2
RELATION
Relations
The DEFINE RELATION command combines two tables horizontally by creating a virtual
link on a common key field. This allows you to add fields from one table to the view of the
other.
79
Direct Relationship
If the two tables you want to link share a common key field, you can use the key
field to create a direct relationship between the two tables.
80
Indirect Relationship
If the two tables you want to link do not share a common key field with each
other, they might each share a common key field with another table. If this is the
case, the third table can be used to link the two tables indirectly.
81
Practice
Project: Taft_Industries
Table: Sales2012, ProductClass
82
Practice
Project: Taft_Industries
Table: p_Sales2012Actual, CustMast
83
How DEFINE RELATION
matches records
• DEFINE RELATION uses a many-
to-one process.
• When the parent key field contains
duplicate values (many), each
duplicate is only matched to the first
occurrence (one) of the
corresponding child key field value.
• If there are no duplicates in the
parent table,
DEFINE RELATION automatically
uses a one-to-one process.
84
Combining Data
10.3
JOIN
Matched Primary and
Secondary - First Secondary
Match
86
Matched Primary and
Secondary - All Secondary
Match Payroll
Emp Num Gross
Matched
EmpMast
Emp Num Pay per
Pay Period
001 $1850 001 $1850
Payroll EmpMast
Emp Num Gross Pay Emp Num Pay per Period
001 $1850 001 $1850
003 $1000 003 $2800
003 $1800 003 $2800
003 $1000 003 $1550
003 $1800 003 $1550
87
Unmatched Primary
88
All Primary & Matched
Secondary
89
All Secondary & Matched
Primary
90
All Primary & Secondary
91
Comparing Join & Relations
Objective JOIN RELATIONS
Table created Physical (new table and .FIL file) Virtual (links existing tables)
List primary and secondary records Matched Use a filter (key fields equal) to
where the key fields match in both
tables ✓ identify and display the matched
records ✓
List primary records where the key Unmatched Use a filter (key field not equal) to
field does not have a match in the
secondary table ✓ display the unmatched records
✓
List primary and secondary records Matched + Include All Equivalent (Default Relations)
where the key fields match in both Primary
tables and include all primary records
where the key field does not match ✓ ✓
92
Comparing Join & Relations
93
Exercise (One-to-One
Matched Join)
Project: Taft_Industries
Tables: ArAging123111, ArAging123112
94
Exercise (One-to-One
Unmatched Join)
Project: Taft_Industries
Tables: ArAging123111, ArAging123112
95
Exercise (One-to-One
Matched Include All)
Project: Taft_Industries
Tables: ArAging123111, ArAging123112
96
1 Introduction to
1 Scripting
What is Scripts?
A script is a series of instructions used to automate work or a series of ACL
commands stored as a unit in an ACL project. A script may be something as
simple as running a single command or as complex as importing, preparing,
and analyzing data.
Scripting Resources:
• ScriptHub
• Analytics Scripting Guide
99
Benefits of Scripts
• Automate processes
Perform repetitive routines
• Continuous monitoring
• Increase efficiency
Time savings increase as routines become more complex
• Improve accuracy
Less risk of errors compared to a manual approach
• Schedule processes
Run on a schedule outside of working hours
• More complex analysis
Perform analysis that cannot be done manually
100
Analytics Script Syntax
Components of an Analytics script:
1. Comments
2. Whitespace
3. Commands
101
Command Syntax
Command syntax is comprised of three elements:
1. Command name
First entry in command line (dark blue)
2. Parameter name
Identifies the elements of the command (aqua)
3. Parameter value
The value assigned to each parameter (black)
102
Script Syntax Rules & Best
Practices
Most commands must be contained within one line - unless otherwise specified,
don't try to separate them onto different lines. Having a tough time reading a long
line of script? Turn on Word Wrap
Script in the same order that elements are written to the log - this makes it easy
for others to understand your script logic and makes it easier to identify syntax
issues if the script isn't working properly.
103
Comments
• Comments are an essential component of a script
• Comments provide:
• Context and meaning
• A means by which others can review syntax for validity
• Version control
• There are two types of comment:
• Single line (cannot be wrapped)
• Multi-line (must be wrapped)
104
Comments
• Header comment:
• Multi-line
• At the top of a script
• Identifies key information about the script
105
Comments
• Comment block:
• Multi-line
• Throughout the script
• Identifies key elements (blocks) of commands within the script
• Single line comments within a comment block
106
ScriptHub
• Click on Script
• Click on the red box
107
ScriptHub
• Go to this link ScriptHub Catalog (highbond.com)
• Click desired function available
• Copy link and paste into ScripHub content link and Done
108
Exercise
Project: Taft_Industries
Table: p_ActualSales2012
Script: Top8Customers
Objective:
Identify the eight customers with the largest sales volume (top 8 customers by sales
volume)
109
Exercise
Project: Taft_Industries
Table: Sales2012
Script: IncorrectSalesAmt
Objective 2: For incorrect sales amounts, calculate the difference between what
was charged and what should have been charged.
110
Exercise
Project: Taft_Industries
Table: Sales2012
Script: WeekdayTrans
111
1 Additional
2 Command
Fuzzy Duplicates
113
114
Benford
• Benford’s Law is an observation about the frequency distribution of leading
digits in many real-life sets of numerical data.
• To counts the number of times each leading digit (1–9) or leading digit
combination occurs in a field, and compares the actual count to the expected
count. The expected count is calculated using the Benford formula.
• Benford analysis is use for testing numeric data composed of "naturally occurring
numbers", such as
Accounting amounts,
Transaction amounts,
Expenses, or
Address numbers.
115
Benford
• Guidelines for identifying numeric data that is suitable for Benford analysis:
Size of the data set The data set must be large enough to support a valid distribution.
Benford analysis may not give reliable results for fewer than 500 records.
Leading digit requirement All numbers from 1 to 9 must have the possibility of
occurring as the leading digit.
Leading digit combination requirement All numbers from 0 to 9 must have the
possibility of occurring as the second leading digit, and as any additional digits being
analyzed.
116
Benford
117
118
Outliers
• Use the outlier feature in Analytics to identify records that are out of the ordinary
and could require closer scrutiny.
119
ASSURING LOCAL SUPPORT
RESPONSE TIME
Assuring provides 4 support channels to its customers as SEVERITY LEVEL DEFINITION RESPONSE TIME
follows: 1. System Down Server Related Immediate
2. Critical Business outage or significant customer Within 1 hour
impact that threatens future productivity
SERVICES HOUR | 9:00 AM to 6:00 PM | Monday through 3. Urgent High-impact problem; there is a time- Within 2 hours
Friday, except holidays sensitive issue important to long term
productivity that is not causing an
immediate work stoppage; or there is
significant customer concern.
support@assuringgroup.com 4. High Important issue that does not have Within 4 hours
significant current productivity impact
5. Medium Issue requiring no further action beyond Within 8 hours
monitoring for follow-up, if needed
011 1565 2000 (Primary) 6. Low Request for information only Within 1 business
011 1575 2000 (Secondary) day
COVERAGE
HOURS
121