MS in Data Analytics and Business Computing
Data Visualization
Course code: SHBI-GB 7140 B01
The course has extensive programming assignments. Since it does not
require a prior programming course, it teaches Python at a fast pace. Take
this course only if you are willing to put in the time to learn to code.
Overview
Spring 2023: As a cross-listed grad/undergrad class.
MBA ACCT-GB-3328 specializations:
- Accounting
- Business Analytics
- Financial Systems and Analytics
Undergrad ACCT-UB-0028 concentration: Accounting
The course teaches you how to manipulate and analyze financial data in
Python using professional tools. While no prior programming/Python
experience is assumed, it does involve coding and is not a managerial
overview of data analytics.
The course covers the following skills:
-
Structured thinking about financial analysis tasks so
that you can automate them using organized and maintainable code.
-
Automating financial data input and output by
interacting with financial statement data in Excel, SQL, and XBRL
formats.
-
Financial data analytics for exposure to data analytics
packages.
Takeaways
Structured thinking
-
How to think about analytical tasks in an organized and structured
manner to automate them using Python
-
Using design concepts such as DRY (Do not repeat yourself) and Single
Source of Truth (SSOT)
Automating financial data input and output
- Interacting with financial statement data stored in XBRL
-
Classifying and summarizing datasets that are inconvenient to handle via
Excel
- Automating creation and retrieval of Excel data
- Visualizing financial data
Financial data analytics for exposure to data analytics packages
- Identifying peer groups for comparing multiples
- Forecasting sales and earnings
-
Identifying abnormal accruals and divergence of earnings and cash flows
-
Identifying the drivers of credit ratings [We will not try the almost
impossible task of predicting future stock and bond returns.]
- Identifying LBO and acquisition targets
Prerequisites
- Core courses in Financial Accounting and Statistics.
- Programming background is not required.
-
Since this course is NOT a substitute for Financial Statement Analysis
or Modeling, I strongly recommend that you take those courses to
strengthen your analytical skills. Those courses will help you
appreciate this course better, but they are not prerequisites for this
course.
Materials
-
I use my materials. Therefore, no textbook is required, and you need not
purchase anything.
Attendance and penalty for missing classes
Requiring attendance is necessary for several reasons. First, you
incorrectly assume you can catch up on a missed class by watching a
recording (if available). Videos do not engage your brain as much as a
live class. Second, less than 20% of you watch the recording (if
available). You are then lost in class, which provides the wrong signals
to me as an instructor. Third, your absence hurts class discussions.
Fourth, you miss out on feedback if you do not work through the questions
I pose in class. Fifth, I lose the feedback since there are fewer
questions.
The policy below will be in effect only after the add/drop
period.
Without mandatory attendance, attendance is often below 50%. Therefore,
though I dislike doing this, I penalize absences. If you anticipate being
absent for good reasons, please email me well in advance. Please enter
"Excused" on the attendance sheet described below to avoid the
penalty if I approve. If you miss a class due to emergencies and cannot
tell me in advance, do not panic. Take care of the emergency first, and
then email me. I will permit you to change the "Absent" to
"Excused." But if you miss a class without a valid reason, there
is a penalty, as stated below.
For sections meeting in 150-190 minute sessions, you will lose one
grade (A to A-, A- to B+, B+ to B, B to B-, and so on) for EVERY missed
session unless you were explicitly excused via email. Thus, if you miss
two class sessions, you will lose two grades, and so on.
For sections meeting in 75-80 minute sessions, you will lose one grade
(A to A-, A- to B+, B+ to B, B to B-, and so on) for EVERY TWO missed
sessions unless you were explicitly excused via email. Thus, if you miss
four class sessions, you will lose two grades, and so on.
Please sit in the same seat in every class and display your name tags. For
Zoom classes, you must keep your video on AT ALL TIMES. You must also have
a good working headset or mic, as it is extremely rude to be inaudible and
force me to ask you to repeat yourself. After entering the class, please
mark yourself present in the first 20 minutes on the OneDrive sheet (link
posted on Brightspace).
You will be marked absent if you are more than 20 minutes late unless it
is because of factors beyond your control (traffic, subway, or
interviews running late). You will also be marked absent if you leave
the class early unless you have my permission or get it afterward. You
will get an F in the course if you are caught cheating on the attendance
sheet.
Exams and Grading
There are no in-class quizzes, midterms, or final exams.
-
Please read about the penalty for missing classes above.
- Assignments: 50%
- Final project: 50%
System Requirements
-
You need to be in the following systems before the start of the first
class:
- Albert
- NYU Brightspace
-
If you are a non-Stern student, Stern automatically creates a
Stern account for you when registering for a Stern course. All
class emails are sent to your Stern email, not NYU email. Please
forward your Stern email to your NYU email.
-
If you are blocked from accessing these systems, please ask the
administration to expedite matters. Given the complexity of these
systems, I cannot manually add you to any system.
-
Only registered students can attend. I cannot override this NYU rule.
Help and Office
-
Me: dgode@stern.nyu.edu,
212-998-0021, Office: KMC 10-86.
- Teaching assistant: Please check NYU Brightspace.
Assignments
Topic 1: Computing basic financial metrics from data stored in files
Analytical tasks
Compute key financial statement metrics for companies
-
Compounded annual growth rate, margins, and net operating asset
intensity
Python skills learned
Access data in external files
- Read financial statement data stored in external files
- Data delimiters
Use control structures such as loops
- Reading records using a loop
Understand data types
- Numbers versus strings
- Use mathematical operators
- Key mathematical operators
Topic 2: Working with XBRL (Extensible Business Reporting Language)
Analytical tasks
Understanding XBRL
- What is structured data?
- What is the XBRL taxonomy?
- Current financial reporting landscape and the limits of XBRL
Python skills learned
Language syntax
Interfaces
- Understanding application programming interfaces [API]
- Interacting with web-based data
Topic 3: Reading data stored in databases using SQL
Analytical tasks
Relational databases
- Understand the organization of relational databases
- Efficient storage of financial statement data in databases
Python skills learned
- Using SQL with Python to read from and write to databases
Topic 4: Computing key statistical metrics for financial data
Analytical tasks
- Operating leverage, financial leverage, and variances
-
Using the difference between sales variance and the variance of various
earnings measures to infer the extent of fixed costs
Industry effects
- Correlating sales to sales and earnings of peer companies
Macroeconomic effects: Quantifying systematic business risk
- The hehavior of sales and earnings in recessions
Python skills learned
Using NumPy
- NumPy and scientific computing
Using Statmodels
- Using basic statistical functions in Statmodels
Using Sci-Kit Learn
- Running regressions with Sci-Kit
- Learn
Working with large data sets
-
Excel pivot tables are very useful but can get unwieldy when a large
amount of data is present. Python skills are indispensable when
processing large amounts of data.
Topic 5: Plotting key financial metrics
Analytical tasks
Cognitive factors
-
What are design principles for displaying quantitative information? We
will use the guidelines in by Edward Tufte's book “Visual Display
of Quantitative Information.”
Key financial metrics for analysis and valuation
- Key accounting metrics
- Key valuation metrics
Python skills learned
Using MatPlotLib
- Automating charting with MatPlotLib
Using Sci-Kit Learn
- Plotting advanced metrics with Sci-Kit Learn
Topic 6: Identifying peer companies
Analytical tasks
- Unsupervised learning and cluster analysis
-
What is unsupervised learning? SIC codes versus FAMA-FRENCH
Classification versus machine learning
-
Comparing the traditional methods of clustering that are based on
intuition with the modern machine-learning-based methods Making sense of
clustering based on machine learning
Python skills learned
Cluster analysis
- Using Sci-Kit Learn for cluster analysis
Topic 7: Forecasting sales and earnings
Analytical tasks
Understanding growth drivers
- Business cycles: Opex versus capex commodities
- Seasonal growth: Identifying seasonal patterns
Python skills learned
Pandas for time series analysis
- Using Pandas for time series analysis
-
Challenges of time series analysis vis-a-vis cross-sectional analysis
Topic 8: Identifying abnormal accruals and deferrals
Analytical tasks
Accruals and deferrals relating to revenues
- Unexplained increase in receivables
- Unexplained decrease in deferred revenues
Accruals and deferrals relating to expenses
- Unexplained increase in prepayments and deferred expenses
- Unexplained decrease in payables and accrued expenses
Understanding the divergence of earnings and cash flows
-
The “good” and “bad” causes of divergence of
earnings and cash flows
Python skills learned
Regression analysis and outliers
- Identifying outliers using Sci-Kit learn
- Dimensionality reduction
- Reducing the number of independent variables using Sci-Kit learn
Topic 9: Interacting with Valuation Models in Excel
Analytical tasks
Excel financial models
-
Building and populating a simple one-statement model using external data
Python skills learned
Using OpenPyXL
- Reading XLSX
- Writing XLSX
- Calling VBA routines stored in Excel
Topic 10: Parsing Management Discussion and Analysis and news
Analytical tasks
- Qualitative versus quantitative disclosures
-
Understanding how qualitative disclosures complement quantitative
disclosures
- Identifying non-GAAP disclosures
Python skills learned
- Connecting with news and financial reports via web interfaces
-
Using API to connect to new and financial reports available on the web
Using Natural Language Toolkit (NLTK)
- Using NLTK for Natural Language Processing
Topic 11: Credit ratings and distress
Analytical tasks
Leading indicators of distress
- Understanding the causes of distress
- Understanding which financial metrics by credit rating agencies
Python skills learned
Logit regression
- Using Sci-Kit Learn for logit regressions
Cluster analysis
- Using Sci-Kit Learn for cluster analysis
Topic 12: Acquisitions and leveraged buyouts
Analytical tasks
Identifying potential acquisition and LBO targets
-
Which financial metrics distinguish companies that are the target of
acquisitions from those that are not acquired?
-
Which financial metrics distinguish companies that are the target of
LBOs from those that are not taken private?
Relative valuation of targets
- What is the typical premium paid for targets?
- What are the determinants of premium paid?
Python skills learned
Logit regression
- Using Sci-Kit Learn for logit regressions
Cluster analysis
- Using Sci-Kit Learn for cluster analysis
Multi-variate regression
- Using Sci-Kit Learn for regression analysis