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.
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 |
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
| 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 |
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.
Before cleaning the dataset, an initial exploratory data analysis was performed to understand its overall structure and identify potential data-quality issues.
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 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.
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.
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.
After the initial EDA, the dataset was cleaned to prepare it for financial analysis.
The fiscalDateEnding column was converted to a datetime format.
The dataset was then sorted by:
- Company symbol
- Fiscal date
This ensured that each company's financial observations were ordered chronologically before calculating growth metrics.
The dataset was checked for duplicate rows.
Result: 0 duplicate rows were identified.
Five columns were found to contain 100% missing values:
nonInterestIncomeinvestmentIncomeNetcomprehensiveIncomeNetOfTaxdepreciationinterestAndDebtExpense
These columns were removed from the dataset.
This reduced the dataset from:
813 rows Γ 27 columns
to:
813 rows Γ 22 columns
Several columns contained remaining missing values:
netInterestIncomeinterestIncomeotherNonOperatingIncome
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.
Rows missing critical financial fields were removed.
The core fields considered essential for the analysis were:
grossProfitebitoperatingIncomenetIncome
This ensured that the profitability and margin calculations were based on complete observations.
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 was performed to create financial growth and profitability metrics required for the analysis.
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 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.
After calculating the growth metrics, the dataset contained:
809 rows Γ 24 columns
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.
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.
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
- π’ 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.
| 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 |
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.
Profitability was evaluated using both operating margin and net profit margin.
Operating margin was calculated as:
Operating Margin = Operating Income / Total Revenue
df["operating_margin"] = (
df["operatingIncome"] / df["totalRevenue"]
)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.
NVDA and AVGO show strong improvements in their margins during more recent periods.
NFLX shows an overall improvement in profitability, although the trend fluctuates across periods.
PLTR shows a clear improvement from strongly negative margins toward positive margins over time.
AAPL, MSFT, GOOG, and TSM generally maintain positive margins throughout the available periods.
META and ORCL show periods of noticeable margin fluctuation.
Operating expense allocation was analyzed by comparing research and development spending with selling, general and administrative expenses.
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 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"]
)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.
ORCL generally shows lower R&D ratios compared with some of the other technology companies.
SG&A allocation varies across companies, reflecting differences in business models, operating structures, and stages of growth.
PLTR shows declining R&D and SG&A ratios as revenue increases and the company matures.
Financial stability was evaluated using two volatility measures.
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 was calculated as the standard deviation of net margin:
Margin Volatility = Standard Deviation of Net Margin
margin_volatility = (
df.groupby("symbol")["net_margin"]
.std()
)| 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 |
AMZN, TSM, and AAPL show relatively lower margin volatility.
This indicates comparatively stable net-margin behavior across the analyzed periods.
PLTR has the highest margin volatility at 0.643062, indicating substantial fluctuations in profitability across the available periods.
AVGO also shows relatively high margin volatility at 0.184200.
NVDA records the highest revenue-growth volatility at 0.262349.
This reflects the significant variation in its revenue growth across the analyzed periods.
A screening framework was developed to classify companies according to their average growth and profitability.
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
| 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 |
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%
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 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.
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.
No company falls into the At Risk category.
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.
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.
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.
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:
AAPL, AVGO, GOOG, META, MSFT, NVDA, TSM
ORCL
AMZN, NFLX, PLTR
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.