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.
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?