I want to do an enterprise valuation of Walmart as of the end of 2010. I will start from Walmart's income statements and balance sheets for 2009 and 2010. I want to revise those statements to calculate NOPAT instead of net income and to calculate Invested Capital. When I am finished with enterprise valuation, I will want to compute the equity value. Can you help with that if I upload the past statements?
I'll help you perform an enterprise valuation of Walmart using their 2009-2010 financial statements. This will involve several steps:
Please upload Walmart's:
Once you upload these statements, we can start with the adjustments to calculate NOPAT and Invested Capital. The key adjustments we'll make include:
For NOPAT:
For Invested Capital:
Please upload the financial statements and we can begin the analysis step by step.
I uploaded the file: WalMart.xlsx
The income statements are in the worksheet 1a Income Statements and the balance sheets are in 1b Balance Sheets. There is a blank line between Assets and Liabilities in the balance sheet worksheet, so be sure you get both. As you make the adjustments to calculate NOPAT and Invested Capital, explain each adjustment you plan to make and get approval before continuing.
I'll start by loading and examining the financial statements to ensure we have the correct data.
---------------------------------------------------------------------------
EmptyDataError Traceback (most recent call last)
Cell In[31], line 5
2 import pandas as pd
4 # Read both sheets
----> 5 dataframes = read_all_sheets_from_excel('WalMart.xlsx')
7 # Display Income Statement
8 print("Income Statement:")
Cell In[1], line 57, in read_all_sheets_from_excel(path)
55 Xlsx2csv(path, outputencoding="utf-8").convert(buffer, sheetname=sheet_name)
56 buffer.seek(0)
---> 57 df = pd.read_csv(buffer)
58 try:
59 if df.index[0] != 0:
File /opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py:1026, in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options, dtype_backend)
1013 kwds_defaults = _refine_defaults_read(
1014 dialect,
1015 delimiter,
(...)
1022 dtype_backend=dtype_backend,
1023 )
1024 kwds.update(kwds_defaults)
-> 1026 return _read(filepath_or_buffer, kwds)
File /opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py:620, in _read(filepath_or_buffer, kwds)
617 _validate_names(kwds.get("names", None))
619 # Create the parser.
--> 620 parser = TextFileReader(filepath_or_buffer, **kwds)
622 if chunksize or iterator:
623 return parser
File /opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py:1620, in TextFileReader.__init__(self, f, engine, **kwds)
1617 self.options["has_index_names"] = kwds["has_index_names"]
1619 self.handles: IOHandles | None = None
-> 1620 self._engine = self._make_engine(f, self.engine)
File /opt/conda/lib/python3.11/site-packages/pandas/io/parsers/readers.py:1898, in TextFileReader._make_engine(self, f, engine)
1895 raise ValueError(msg)
1897 try:
-> 1898 return mapping[engine](f, **self.options)
1899 except Exception:
1900 if self.handles is not None:
File /opt/conda/lib/python3.11/site-packages/pandas/io/parsers/c_parser_wrapper.py:93, in CParserWrapper.__init__(self, src, **kwds)
90 if kwds["dtype_backend"] == "pyarrow":
91 # Fail here loudly instead of in cython after reading
92 import_optional_dependency("pyarrow")
---> 93 self._reader = parsers.TextReader(src, **kwds)
95 self.unnamed_cols = self._reader.unnamed_cols
97 # error: Cannot determine type of 'names'
File parsers.pyx:581, in pandas._libs.parsers.TextReader.__cinit__()
EmptyDataError: No columns to parse from file
HINT: Explain options for cleaning the dataset to the user.
Also, evaluate what went wrong and consider options for how to fix it. Break the execution up into cell blocks.Exclude other income from NOPAT. Also, exclude other income from the effective tax calculation, because it is shown as net income. Exclude other assets from the invested capital calculation. What do you plan to do with minority interests and with the obligations under capital leases on the balance sheet? Please state your revised plan and get approval before continuing.
Thank you for the clarifications. Here's my revised plan:
For NOPAT Calculation:
For Invested Capital Calculation:
The treatment of capital leases: Since these are operating assets, I plan to include both the asset value and the corresponding lease obligations in invested capital, as they represent operating assets and their financing.
Would you like me to proceed with these adjustments? Please let me know if you'd like any modifications to this revised approach.
Include capital leases in assets. But exclude the obligations from liabilities, because they are really debt items. We will subtract them along with debt when we derive equity value from enterprise value. Please restate your plan again and get approval before continuing.
Thank you for the clarification. Here's my final revised plan:
For NOPAT Calculation:
For Invested Capital Calculation:
For Final Equity Value Calculation: Will subtract from Enterprise Value:
Would you like me to proceed with these calculations? Please let me know if you'd like any modifications to this final approach.
do not deduct minority interest from NOPAT. We will subtract minority interests from enterprise value to get equity value. Please restate the plan for approval again.
Here's the final plan:
For NOPAT Calculation:
For Invested Capital Calculation:
For Final Equity Value Calculation: Will subtract from Enterprise Value:
Would you like me to proceed with these calculations? Please let me know if you'd like any modifications to this final approach.
the effective tax rate should be calculated as taxes / (income before tax - other income). please revise the plan again.
Here's the final revised plan:
For NOPAT Calculation:
For Invested Capital Calculation:
For Final Equity Value Calculation: Will subtract from Enterprise Value:
Would you like me to proceed with these calculations? Please let me know if you'd like any modifications to this final approach.
yes, please proceed with that plan. save the NOPAT calculation in a worksheet of an excel file and save the Invested Capital calculation in a separate worksheet of the same file and provide a download link.
I'll calculate NOPAT and Invested Capital and save them in separate worksheets.
Explain each line of the NOPAT calculation.
I'll explain each line of the NOPAT calculation:
Net Sales | 401087 | 405046 |
Cost of Goods Sold | 304056 | 304657 |
Operating, Selling, and G&A Expenses | 77520 | 79607 |
Operating Income | 19511 | 20782 |
Tax Rate Calculation: | ||
Income Before Tax | 20898 | 22066 |
Less: Other Income | 3287 | 3168 |
Adjusted Income Before Tax | 17611 | 18898 |
Income Tax | 7145 | 7139 |
Effective Tax Rate | 0.4057123389 | 0.3777648428 |
NOPAT Calculation: | ||
Operating Income | 19511 | 20782 |
Less: Taxes on Operating Income | 7915.8534438703 | 7850.7089639115 |
NOPAT | 11595.1465561297 | 12931.2910360885 |
Net Sales: Pure operating revenue
Cost of Goods Sold: Direct costs of products sold
Operating, Selling, and G&A Expenses: Operating overhead
Operating Income: Net Sales - COGS - Operating Expenses
Tax Rate Calculation: 5. Income Before Tax: From income statement
Less: Other Income: Removed as non-operating
Adjusted Income Before Tax: Income Before Tax - Other Income
Income Tax: Actual taxes paid
Effective Tax Rate: Income Tax / Adjusted Income Before Tax
NOPAT Calculation: 10. Operating Income: Same as line 4 - 2009: $19,511M - 2010: $20,782M
Less: Taxes on Operating Income: Operating Income × Effective Tax Rate
NOPAT: Operating Income - Taxes on Operating Income
This shows how we:
Explain each line of the Invested Capital calculation.
I'll explain each line of the Invested Capital calculation:
Operating Working Capital: | ||
Current Assets (excl. cash and disc. ops) | 41479 | 40284 |
Less: Non-interest Current Liabilities | 47638 | 50550 |
Net Operating Working Capital | -6159 | -10266 |
Long-term Operating Assets: | ||
Net PPE | 92856 | 99544 |
Property under Capital Leases | 2797 | 2763 |
Goodwill | 15260 | 16126 |
Total Invested Capital | 104754 | 108167 |
Operating Working Capital:
Current Assets (excl. cash and disc. ops):
Less: Non-interest Current Liabilities:
Net Operating Working Capital: Current Assets - Non-interest Current Liabilities
Long-term Operating Assets: 4. Net PPE: Property, Plant & Equipment net of depreciation
Property under Capital Leases: Operating assets financed through leases
Goodwill: From acquisitions
Total Invested Capital: Sum of Net Operating Working Capital and Long-term Operating Assets
Key observations:
Now I want to forecast nopat and invested capital beginning in 2011. I want to drive the forecasts by forecasts of sales growth and financial ratios. Can you recommend a strategy? Please explain how it would be implemented line by line in the nopat and invested capital calculations.
I'll propose a strategy using key financial ratios and sales growth to forecast both NOPAT and Invested Capital. Here's the detailed approach:
Sales Growth and Key Ratios from Historical Data (2009-2010):
Sales Growth:
NOPAT Drivers (as % of Sales):
COGS Margin = COGS/Sales
Operating Expense Margin = OpEx/Sales
Effective Tax Rate (already calculated)
Invested Capital Drivers:
Operating Working Capital / Sales
Net PPE / Sales
Capital Leases / Sales
Goodwill / Sales
Proposed Forecasting Approach:
text
text
Implementation Strategy:
First, decide on assumptions:
Create a forecast model that:
Would you like me to:
Please implement the model in Excel.
I'll create a forecast model in Excel that shows:
I'll use the last year's ratios (2010) as default starting points but make the ratios adjustable for each forecast year.
Let me try reading the Excel file differently:
Let me help you analyze the financial statements. First, let's look at what we have and then outline the adjustments we'll need to make to calculate NOPAT and Invested Capital.
Revenues: | ||
Net sales | 401087 | 405046 |
Other income -- net | 3287 | 3168 |
Total revenues | 404374 | 408214 |
Cost of goods sold | 304056 | 304657 |
Gross profit | 100318 | 103557 |
Expenses: | ||
Operating, selling, and general and administrative expenses | 77520 | 79607 |
Interest expenses -- net | 1900 | 1884 |
Total expenses | 79420 | 81491 |
Earnings (income) before taxes and minority interest | 20898 | 22066 |
Income tax | 7145 | 7139 |
Earnings (income) before minority interest | 13753 | 14927 |
Minority interest | -499 | -513 |
Earnings from discontinued operations (net of tax) | 146 | -79 |
Earnings after tax (net income) | 13400 | 14335 |
Average number of shares outstanding (millions) | 3939 | 3866 |
Net income per share | 3.4018786494 | 3.7079668908 |
ASSETS | ||
Current assets: | ||
Cash and cash equivalents | 7275 | 7907 |
Accounts receivable | 3905 | 4144 |
Inventories | 34511 | 33160 |
Prepaid expenses and other | 3063 | 2980 |
Current assets of discontinued operations | 195 | 140 |
Total current assets | 48949 | 48331 |
Property, plant and equipment (PPE): | ||
Land (property) | 19852 | 22591 |
Plant and equipment (PE) | 105968 | 115257 |
Less: accumulated depreciation | 32964 | 38304 |
Net PPE | 92856 | 99544 |
Net property under capital leases | 2797 | 2763 |
Goodwill | 15260 | 16126 |
Other assets | 3567 | 3942 |
Total assets | 163429 | 170706 |
LIABILITIES AND EQUITY | ||
Current liabilities: | ||
Short-term borrowings | 1506 | 523 |
Accounts payable | 28849 | 30451 |
Accrued liabilities and income tax | 18789 | 20099 |
Current maturities of long-term debt | 5848 | 4050 |
Obligations under capital leases due within one year | 315 | 346 |
Current liabilities of discontinued operations | 83 | 92 |
Total current liabilities | 55390 | 55561 |
Long-term debt | 31349 | 33231 |
Long-term obligations under capital leases | 3200 | 3170 |
Deferred income taxes | 6014 | 5508 |
Minority interest | 397 | 307 |
Shareholders’ equity | 67079 | 72929 |
Total liabilities and equity | 163429 | 170706 |
Based on the financial statements, here are the adjustments I propose to calculate NOPAT and Invested Capital:
For NOPAT Calculation:
For Invested Capital Calculation:
Would you like me to proceed with these adjustments? Also, please confirm if there are any specific adjustments you'd like me to add or modify before we calculate NOPAT and Invested Capital.
I've created the Excel file 'Walmart_NOPAT_and_IC.xlsx' with two worksheets containing the NOPAT and Invested Capital calculations. Here are the results:
Net Sales | 401087 | 405046 |
Cost of Goods Sold | 304056 | 304657 |
Operating, Selling, and G&A Expenses | 77520 | 79607 |
Operating Income | 19511 | 20782 |
Tax Rate Calculation: | ||
Income Before Tax | 20898 | 22066 |
Less: Other Income | 3287 | 3168 |
Adjusted Income Before Tax | 17611 | 18898 |
Income Tax | 7145 | 7139 |
Effective Tax Rate | 0.4057123389 | 0.3777648428 |
NOPAT Calculation: | ||
Operating Income | 19511 | 20782 |
Less: Taxes on Operating Income | 7915.8534438703 | 7850.7089639115 |
NOPAT | 11595.1465561297 | 12931.2910360885 |
Operating Working Capital: | ||
Current Assets (excl. cash and disc. ops) | 41479 | 40284 |
Less: Non-interest Current Liabilities | 47638 | 50550 |
Net Operating Working Capital | -6159 | -10266 |
Long-term Operating Assets: | ||
Net PPE | 92856 | 99544 |
Property under Capital Leases | 2797 | 2763 |
Goodwill | 15260 | 16126 |
Total Invested Capital | 104754 | 108167 |
Key findings:
The Excel file has been saved and can be downloaded at https://julius.ai/files/Walmart_NOPAT_and_IC.xlsx
Would you like to proceed with the enterprise valuation using these calculations?
I've created a comprehensive forecast model in 'Walmart_Forecast_Model.xlsx' with two sheets: Assumptions and Forecast. Let me walk you through both:
Sales Growth | 0.0099 | 0.03 | 0.03 | 0.03 | 0.03 | 0.03 |
COGS/Sales | 0.7522 | 0.7522 | 0.7522 | 0.7522 | 0.7522 | 0.7522 |
OpEx/Sales | 0.1965 | 0.1965 | 0.1965 | 0.1965 | 0.1965 | 0.1965 |
Effective Tax Rate | 0.3778 | 0.3778 | 0.3778 | 0.3778 | 0.3778 | 0.3778 |
OWC/Sales | -0.0253 | -0.0253 | -0.0253 | -0.0253 | -0.0253 | -0.0253 |
PPE/Sales | 0.2458 | 0.2458 | 0.2458 | 0.2458 | 0.2458 | 0.2458 |
Leases/Sales | 0.0068 | 0.0068 | 0.0068 | 0.0068 | 0.0068 | 0.0068 |
Goodwill/Sales | 0.0398 | 0.0398 | 0.0398 | 0.0398 | 0.0398 | 0.0398 |
Key assumptions:
401087 | 304056 | 77520 | 19511 | 7916 | 11595 | -6159 | 92856 | 2797 | 15260 | 104754 | 0 | ||
405046 | 304657 | 79607 | 20782 | 7851 | 12931 | -10266 | 99544 | 2763 | 16126 | 108167 | 0 | 0 | 0 |
417197 | 313797 | 81995 | 21405 | 8087 | 13318 | -10574 | 102530 | 2846 | 16610 | 111412 | 0 | 0 | 0 |
429713 | 323211 | 84455 | 22048 | 8330 | 13718 | -10891 | 105606 | 2931 | 17108 | 114754 | 0 | 0 | 0 |
442605 | 332907 | 86989 | 22709 | 8579 | 14130 | -11218 | 108774 | 3019 | 17621 | 118197 | 0 | 0 | 0 |
455883 | 342894 | 89598 | 23390 | 8837 | 14553 | -11554 | 112038 | 3110 | 18150 | 121743 | 0 | 0 | 0 |
469559 | 353181 | 92286 | 24092 | 9102 | 14990 | -11901 | 115399 | 3203 | 18694 | 125395 | 0 | 0 | 0 |
The model shows:
The model is saved as 'Walmart_Forecast_Model.xlsx' and can be downloaded at https://julius.ai/files/Walmart_Forecast_Model.xlsx
Would you like me to: