Skip to content

About

This project analyzed income statement data for 11 technology companies using Python to evaluate growth, profitability, spending, and financial stability. Financial metrics were calculated to compare company performance and identify investment profiles.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

πŸ“Š Corporate Finance Income Statement Project

πŸ“Œ Project Overview

This project examines quarterly income statement data from 11 major technology companies β€” AAPL, AMZN, AVGO, GOOG, META, MSFT, NFLX, NVDA, ORCL, PLTR, and TSM β€” to evaluate and compare their financial performance across available fiscal periods.

The analysis focuses on:

  • πŸ“ˆ Revenue and net income growth
  • πŸ’° Profitability and profit margins
  • πŸ§ͺ Operating expense allocation
  • πŸ“Š Financial stability and volatility
  • πŸ”„ The relationship between growth and profitability

A screening framework was also developed to classify companies based on revenue growth and net profit margin, providing a structured approach to comparing their overall financial profiles.


πŸ› οΈ Tools & Technologies

The analysis was conducted in Python using Google Colab.

Tool Purpose
🐍 Python Data analysis and processing
🐼 Pandas Data manipulation and transformation
πŸ”’ NumPy Numerical analysis
πŸ“Š Matplotlib Data visualization
🎨 Seaborn Statistical data visualization
☁️ Google Colab Development and analysis environment

πŸ“‚ Dataset

πŸ“‹ Dataset Overview

The raw dataset contained:

  • 1,750 records
  • 27 columns
  • 23 companies
  • Companies across multiple sectors including technology, retail, finance, energy, and healthcare

For this project, the dataset was filtered to focus specifically on 11 major technology companies:

NVDA, MSFT, AAPL, GOOG, AMZN, META, AVGO, TSM, ORCL, NFLX, PLTR

After filtering:

  • 813 records
  • 27 original columns
  • 11 technology companies

🏒 Companies Included

Symbol Company
AAPL Apple
AMZN Amazon
AVGO Broadcom
GOOG Alphabet
META Meta Platforms
MSFT Microsoft
NFLX Netflix
NVDA NVIDIA
ORCL Oracle
PLTR Palantir Technologies
TSM Taiwan Semiconductor Manufacturing

πŸ”‘ Key Dataset Columns

The dataset includes several important income statement variables:

Column Description
symbol Company ticker symbol
fiscalDateEnding Fiscal period ending date
reportedCurrency Reporting currency
grossProfit Gross profit
totalRevenue Total revenue
costOfRevenue Cost of revenue
operatingIncome Operating income
sellingGeneralAndAdministrative SG&A expenses
researchAndDevelopment R&D expenses
operatingExpenses Total operating expenses
incomeBeforeTax Income before tax
incomeTaxExpense Income tax expense
ebit Earnings before interest and taxes
ebitda Earnings before interest, taxes, depreciation, and amortization
netIncome Net income

The dataset also contained several interest-income and non-operating-income-related fields.


πŸ” Exploratory Data Analysis

Before cleaning the dataset, an initial exploratory data analysis was performed to understand its overall structure and identify potential data-quality issues.

πŸ“ Dataset Structure

The following aspects were reviewed:

  • Number of rows and columns
  • Data types
  • Non-null counts
  • Overall data completeness
  • Summary statistics
  • Company coverage
  • Fiscal-period coverage

The dataset dimensions were tracked throughout the analysis:

Raw dataset: 1,750 rows Γ— 27 columns
After company filtering: 813 rows Γ— 27 columns


πŸ“Š Summary Statistics

Summary statistics were reviewed for the numerical variables, including:

  • Mean
  • Standard deviation
  • Minimum
  • Maximum

This provided an initial understanding of the scale and distribution of the financial variables before further cleaning and transformation.


🏒 Company Coverage

The full list of companies in the original dataset was reviewed to confirm coverage of all 23 companies.

The analysis then narrowed the scope to the 11 selected technology companies.


πŸ“… Fiscal Period Coverage

The first and last available records for each company were reviewed to verify the fiscal-period coverage.

The dataset contains observations ranging from the earliest available periods around 2019 through the most recent available periods around 2025.


🧹 Data Cleaning

After the initial EDA, the dataset was cleaned to prepare it for financial analysis.

1. πŸ“… Date Conversion and Sorting

The fiscalDateEnding column was converted to a datetime format.

The dataset was then sorted by:

  1. Company symbol
  2. Fiscal date

This ensured that each company's financial observations were ordered chronologically before calculating growth metrics.


2. πŸ” Duplicate Check

The dataset was checked for duplicate rows.

Result: 0 duplicate rows were identified.


3. πŸ—‘οΈ Removing Completely Empty Columns

Five columns were found to contain 100% missing values:

  • nonInterestIncome
  • investmentIncomeNet
  • comprehensiveIncomeNetOfTax
  • depreciation
  • interestAndDebtExpense

These columns were removed from the dataset.

This reduced the dataset from:

813 rows Γ— 27 columns

to:

813 rows Γ— 22 columns


4. 🧩 Handling Remaining Missing Values

Several columns contained remaining missing values:

  • netInterestIncome
  • interestIncome
  • otherNonOperatingIncome

These missing values were filled with 0, because the fields were largely banking-specific or not applicable to most of the technology companies included in the analysis.


5. ⚠️ Removing Rows Missing Core Financial Fields

Rows missing critical financial fields were removed.

The core fields considered essential for the analysis were:

  • grossProfit
  • ebit
  • operatingIncome
  • netIncome

This ensured that the profitability and margin calculations were based on complete observations.


6. πŸ’΅ Handling Missing Currency Values

There were 2 missing reportedCurrency values.

Both observations belonged to early PLTR records.

Because the company reports in USD, these missing currency values were imputed as:

USD


βš™οΈ Feature Engineering

Feature engineering was performed to create financial growth and profitability metrics required for the analysis.

πŸ“ˆ Revenue Growth

Revenue growth was calculated using a four-period percentage change, grouped by company:

df["revenue_growth"] = (
    df.groupby("symbol")["totalRevenue"]
      .pct_change(4)
)

This represents year-over-year growth when the observations are quarterly and consistently spaced.


πŸ’° Net Income Growth

Net income growth was calculated using the same four-period percentage-change approach:

df["net_income_growth"] = (
    df.groupby("symbol")["netIncome"]
      .pct_change(4)
)

This measures the change in net income compared with the same quarter from the previous year.


πŸ“Š Dataset After Feature Engineering

After calculating the growth metrics, the dataset contained:

809 rows Γ— 24 columns


🚨 Outlier Detection

Outlier detection was performed on revenue_growth.

Revenue growth was selected because it represents a company's underlying demand and business expansion.

The Interquartile Range (IQR) method was used to identify unusually large or small revenue-growth observations.

IQR Method

The IQR is calculated as:

IQR = Q3 βˆ’ Q1

Observations outside the defined IQR boundaries were treated as outliers.

A total of:

36 outlier rows

were removed.

The final analysis dataset therefore contained:

773 rows Γ— 24 columns

All subsequent analysis was based on this cleaned dataset.


πŸ“ˆ Data Analysis

1. πŸš€ Growth Quality

Growth Quality was developed to compare the relationship between revenue growth and net income growth.

Two average growth metrics were calculated for each company:

  • Average Revenue Growth
  • Average Net Income Growth

The Growth Quality score was defined as:

Growth Quality = Average Net Income Growth βˆ’ Average Revenue Growth

Interpretation

  • 🟒 Positive Growth Quality: Net income is growing faster than revenue, suggesting improving operating efficiency or profitability.
  • πŸ”΄ Negative Growth Quality: Net income is growing more slowly than revenue, suggesting that profitability is not keeping pace with business growth.

πŸ“Š Growth Quality Results

Company Revenue Growth Net Income Growth Growth Quality
AVGO 0.153539 1.473354 1.319815
AMZN 1.319815 0.257078 1.236719
NFLX 0.233859 1.067110 0.979641
PLTR 0.833250 0.335712 0.733947
NVDA 0.398235 0.215938 0.421288
AAPL 0.205350 0.153449 0.232451
TSM 0.079003 0.168744 0.234074
GOOG 0.065330 0.224486 0.246024
META 0.341664 0.021538 -0.049000
ORCL 0.083076 -0.012124 -0.114178
MSFT 0.108123 -0.095200 -0.222301

πŸ”Ž Finding

AVGO recorded the highest Growth Quality Score at 1.319815, followed by AMZN at 0.979641 and NFLX at 0.833250.

META, ORCL, and MSFT recorded negative Growth Quality Scores, indicating that their average net income growth was below their average revenue growth.


2. πŸ’Ή Profitability Margin Trends

Profitability was evaluated using both operating margin and net profit margin.

Operating Margin

Operating margin was calculated as:

Operating Margin = Operating Income / Total Revenue

df["operating_margin"] = (
    df["operatingIncome"] / df["totalRevenue"]
)

Net Profit Margin

Net profit margin was calculated as:

Net Margin = Net Income / Total Revenue

df["net_margin"] = (
    df["netIncome"] / df["totalRevenue"]
)

These metrics were used to examine how profitability changed over time.


πŸ”Ž Profitability Findings

NVIDIA and Broadcom

NVDA and AVGO show strong improvements in their margins during more recent periods.

Netflix

NFLX shows an overall improvement in profitability, although the trend fluctuates across periods.

Palantir

PLTR shows a clear improvement from strongly negative margins toward positive margins over time.

Apple, Microsoft, Alphabet, and TSMC

AAPL, MSFT, GOOG, and TSM generally maintain positive margins throughout the available periods.

Meta and Oracle

META and ORCL show periods of noticeable margin fluctuation.


3. πŸ§ͺ R&D and SG&A Spending Allocation

Operating expense allocation was analyzed by comparing research and development spending with selling, general and administrative expenses.

πŸ”¬ R&D Ratio

R&D spending as a percentage of revenue was calculated as:

R&D Ratio = Research and Development / Total Revenue

df["rd_ratio"] = (
    df["researchAndDevelopment"] / df["totalRevenue"]
)

🏒 SG&A Ratio

SG&A spending as a percentage of revenue was calculated as:

SG&A Ratio = Selling, General and Administrative / Total Revenue

df["sga_ratio"] = (
    df["sellingGeneralAndAdministrative"] / df["totalRevenue"]
)

πŸ”Ž R&D and SG&A Findings

Meta and Microsoft

META and MSFT consistently allocate a significant share of revenue to R&D.

This highlights the importance of continued research and product development within their business models.

Oracle

ORCL generally shows lower R&D ratios compared with some of the other technology companies.

SG&A

SG&A allocation varies across companies, reflecting differences in business models, operating structures, and stages of growth.

Palantir

PLTR shows declining R&D and SG&A ratios as revenue increases and the company matures.


4. βš–οΈ Stability and Risk Analysis

Financial stability was evaluated using two volatility measures.

πŸ“ˆ Revenue Growth Volatility

Revenue volatility was calculated as the standard deviation of revenue growth:

Revenue Volatility = Standard Deviation of Revenue Growth

revenue_volatility = (
    df.groupby("symbol")["revenue_growth"]
      .std()
)

πŸ“Š Margin Volatility

Margin volatility was calculated as the standard deviation of net margin:

Margin Volatility = Standard Deviation of Net Margin

margin_volatility = (
    df.groupby("symbol")["net_margin"]
      .std()
)

πŸ“‹ Volatility Results

Company Revenue Volatility Margin Volatility
AMZN 0.114175 0.031753
TSM 0.172339 0.045232
AAPL 0.168917 0.046288
GOOG 0.142877 0.063048
NFLX 0.112870 0.072042
ORCL 0.118638 0.097588
MSFT 0.100433 0.099435
META 0.177380 0.118198
NVDA 0.262349 0.133424
AVGO 0.155417 0.184200
PLTR 0.134227 0.643062

πŸ”Ž Stability Findings

🟒 Lower Margin Volatility

AMZN, TSM, and AAPL show relatively lower margin volatility.

This indicates comparatively stable net-margin behavior across the analyzed periods.

πŸ”΄ PLTR

PLTR has the highest margin volatility at 0.643062, indicating substantial fluctuations in profitability across the available periods.

⚠️ AVGO

AVGO also shows relatively high margin volatility at 0.184200.

πŸ“ˆ NVDA

NVDA records the highest revenue-growth volatility at 0.262349.

This reflects the significant variation in its revenue growth across the analyzed periods.


5. 🎯 Growth vs. Profitability Classification

A screening framework was developed to classify companies according to their average growth and profitability.

Thresholds

The following thresholds were used:

Classification Criteria
🟒 Top Picks Growth > 0.10 and Margin > 0.15
🟑 Risky Growth Growth > 0.10 only
πŸ”΅ Stable Margin > 0.15 only
πŸ”΄ At Risk Neither threshold is met

The screening uses:

  • Average Net Income Growth
  • Average Net Profit Margin

πŸ“Š Classification Results

Company Avg. Net Income Growth Avg. Net Margin Classification
AAPL 0.153449 0.209980 🟒 Top Picks
AVGO 0.153539 0.215587 🟒 Top Picks
GOOG 0.224486 0.238336 🟒 Top Picks
META 0.341664 0.274778 🟒 Top Picks
MSFT 0.108123 0.283161 🟒 Top Picks
NVDA 0.215938 0.194372 🟒 Top Picks
TSM 0.168744 0.363318 🟒 Top Picks
ORCL 0.083076 0.233442 πŸ”΅ Stable
AMZN 0.257078 0.032035 🟑 Risky Growth
NFLX 0.233859 0.087952 🟑 Risky Growth
PLTR 0.335712 -0.270576 🟑 Risky Growth

πŸ† Key Findings

🟒 Top Picks

Seven companies meet both the growth and profitability thresholds:

  • AAPL
  • AVGO
  • GOOG
  • META
  • MSFT
  • NVDA
  • TSM

These companies achieved:

Average net income growth > 10%

and

Average net margin > 15%


🟑 Risky Growth

Three companies exceed the growth threshold but fail to meet the profitability threshold:

  • AMZN
  • NFLX
  • PLTR

These companies demonstrate strong growth but comparatively weaker average profitability.

⚠️ PLTR

PLTR is particularly notable because it combines:

  • High growth
  • Negative average net margin
  • Very high margin volatility

Its average net margin was:

-0.270576

This makes PLTR a clear example of a high-growth company where growth does not yet translate into consistent profitability.


πŸ”΅ Stable

ORCL falls into the Stable category.

It meets the profitability threshold but does not exceed the 10% growth threshold.

This suggests a comparatively profitable but slower-growing profile under the project's screening methodology.


πŸ”΄ At Risk

No company falls into the At Risk category.


πŸ“Œ Recommendations and Interpretation

πŸ₯‡ Overall Assessment

Based on the selected screening thresholds, the following companies stand out:

AAPL, AVGO, GOOG, META, MSFT, NVDA, and TSM

These companies meet both the growth and profitability requirements.


πŸš€ Growth Quality

AVGO stands out particularly strongly in Growth Quality.

Its high score indicates that average net income growth substantially exceeded average revenue growth.

On the other hand:

  • META
  • ORCL
  • MSFT

recorded negative Growth Quality scores.

This suggests that their average net income growth lagged their average revenue growth during the analyzed periods.


πŸ“Š Margin Volatility

Companies such as TSM and AAPL show relatively low margin volatility, suggesting more stable profitability.

In contrast:

  • AVGO has relatively high margin volatility.
  • NVDA has high revenue-growth volatility.
  • PLTR has substantially higher margin volatility than the other companies.

πŸ“Œ Conclusion

This project demonstrates how quarterly income statement data can be transformed into a structured framework for comparing corporate financial performance.

The analysis combines:

Growth πŸ“ˆ + Profitability πŸ’° + Cost Allocation πŸ§ͺ + Stability βš–οΈ

to provide a more complete view of company performance.

The results show that several large technology companies achieve a strong combination of growth and profitability, while others exhibit strong growth but weaker or more volatile profitability.

Under the selected screening framework:

🟒 Top Picks

AAPL, AVGO, GOOG, META, MSFT, NVDA, TSM

πŸ”΅ Stable

ORCL

🟑 Risky Growth

AMZN, NFLX, PLTR

πŸ”΄ At Risk

None

Overall, the project highlights the importance of evaluating growth quality, profitability, operating expense allocation, and financial stability together rather than relying on a single financial metric.


About

This project analyzed income statement data for 11 technology companies using Python to evaluate growth, profitability, spending, and financial stability. Financial metrics were calculated to compare company performance and identify investment profiles.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages