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.

Please contact NYU IT (askit@nyu.edu, 212-998-3333) or NYU Stern IT (helpdesk@stern.nyu.edu, 212-998-0180) for all Zoom/email/NYU Brightspace/Admin/CapitalIQ issues. Please do not copy/contact me. Brightspace and NYU groups send all emails to the @nyu.edu (not @stern.nyu.edu) address, while Stern class mail lists send emails to @stern.nyu.edu. You must check BOTH emails and use the correct browser profile. Please contact IT to figure this out. Do not write to Almaris or me if you do not get Almaris emails because this issue is between NYU and you.

Overview

This class is cross-listed.

MBA ACCT-GB-3328 specializations:

Undergrad ACCT-UB-6028 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:

  1. Structured thinking about financial analysis tasks so that you can automate them using organized and maintainable code.
  2. Automating financial data input and output by interacting with financial statement data in Excel, SQL, and XBRL formats.
  3. Financial data analytics for exposure to data analytics packages.

Takeaways

Structured thinking

Automating financial data input and output

Financial data analytics for exposure to data analytics packages

Prerequisites

Materials

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

System Requirements

Help and Office

Assignments

Topics

Topic 1: Computing basic financial metrics from data stored in files

Analytical tasks

Compute key financial statement metrics for companies

Python skills learned

Access data in external files

Use control structures such as loops

Understand data types

Topic 2: Working with XBRL (Extensible Business Reporting Language)

Analytical tasks

Understanding XBRL

Python skills learned

Language syntax

Interfaces

Topic 3: Reading data stored in databases using SQL

Analytical tasks

Relational databases

Python skills learned

Topic 4: Computing key statistical metrics for financial data

Analytical tasks

Industry effects

Macroeconomic effects: Quantifying systematic business risk

Python skills learned

Using NumPy

Using Statmodels

Using Sci-Kit Learn

Working with large data sets

Topic 5: Plotting key financial metrics

Analytical tasks

Cognitive factors

Key financial metrics for analysis and valuation

Python skills learned

Using MatPlotLib

Using Sci-Kit Learn

Topic 6: Identifying peer companies

Analytical tasks

Python skills learned

Cluster analysis

Topic 7: Forecasting sales and earnings

Analytical tasks

Understanding growth drivers

Python skills learned

Pandas for time series analysis

Topic 8: Identifying abnormal accruals and deferrals

Analytical tasks

Accruals and deferrals relating to revenues

Accruals and deferrals relating to expenses

Understanding the divergence of earnings and cash flows

Python skills learned

Regression analysis and outliers

Topic 9: Interacting with Valuation Models in Excel

Analytical tasks

Excel financial models

Python skills learned

Using OpenPyXL

Topic 10: Parsing Management Discussion and Analysis and news

Analytical tasks

Python skills learned

Topic 11: Credit ratings and distress

Analytical tasks

Leading indicators of distress

Python skills learned

Logit regression

Cluster analysis

Topic 12: Acquisitions and leveraged buyouts

Analytical tasks

Identifying potential acquisition and LBO targets

Relative valuation of targets

Python skills learned

Logit regression

Cluster analysis

Multi-variate regression