Walmart Inc. (NYSE: WMT) Valuation

ITAM Thesis Project Professor: Rodrigo Fenton Ontanon Final submission (Phase 3): April 21, 2026

Objective

Build a complete Investment Memorandum for Walmart with a reproducible pipeline in R + LaTeX.

Current Model Status

Preliminary pipeline operational with 6 methodologies:

  1. DCF
  2. RIM
  3. Multiples (P/E, EV/EBITDA, EV/Sales)
  4. SOTP
  5. DDM
  6. BSM (optional/robustness)

Integrated output:

  • Football field (data/processed/preliminary_football_field.pdf)
  • Range table (data/processed/preliminary_football_field_values.csv)
  • Chart package (data/processed/preliminary_valuation_charts.pdf)
  • Wired LaTeX document (MOI/main.tex)

Quickstart (3 commands)

From the repo root:

cp config/assumptions.example.csv config/assumptions.csv
cp config/latest_period_basis.example.csv config/latest_period_basis.csv
make all
open MOI/main.pdf

Notes:

  • shares_outstanding can be left empty in preliminary; this only affects implied_price_usd.
  • If config/assumptions.csv does not exist, the model runs with defaults.

Main Commands

make validate   # validates preliminary input + assumptions
make valuation  # runs 02..07 + 99
make charts     # generates chart PDFs
make tables     # generates auto-generated .tex tables for MOI/main.tex
make moi        # compiles MOI/main.tex
make all        # full pipeline

Technical Flow

  1. Code/00_Validate_Inputs.R Verifies structure of raw preliminary data and assumptions.
  2. Code/02_DCF.R
  3. Code/03_RIM.R
  4. Code/04_Multiples.R (diagnostics + implied prices by peer multiples)
  5. Code/05_SOTP.R
  6. Code/06_DDM.R
  7. Code/07_BSM.R
  8. Code/99_Football_Field.R
  9. Code/98_Preliminary_Charts.R
  10. Code/97_Generate_Tex_Tables.R (auto-generates table for LaTeX)

Inputs and Data Contract

  • Current preliminary input:
    • data/preliminary-data/WALMART_FM/wmt_prelim_financials_fy2015_2025.csv
    • Convention: wmt_prelim_financials_<cutoff>.csv
    • Legacy compatibility: the pipeline still recognizes Raw-Tabla 1.csv if it exists.
  • Detailed contract:
    • data/README.md
  • Assumptions template:
    • config/assumptions.example.csv

Key Outputs in data/processed

  • validation_report.txt
  • preliminary_master_financials.csv
  • preliminary_data_basis.csv
  • preliminary_dcf_summary.csv
  • preliminary_rim_summary.csv
  • preliminary_multiples_summary.csv
  • preliminary_peer_comp_set_used.csv
  • preliminary_sotp_summary.csv
  • preliminary_ddm_summary.csv
  • preliminary_bsm_summary.csv
  • preliminary_football_field_values.csv
  • preliminary_football_field.pdf
  • preliminary_valuation_charts.pdf

LaTeX Integration

  • Main document: MOI/main.tex
  • Auto-generated valuation table: MOI/generated/preliminary_valuation_table.tex
  • MOI/Makefile runs auto-generation before compiling PDF.

Refresh After Earnings / Bloomberg

When you have new data points:

  1. Replace the preliminary input (or add a new cutoff in data/preliminary-data/).
  2. Update config/assumptions.csv (WACC, beta, rates, shares).
  3. Adjust config/latest_period_basis.csv:
    • Before annual close: latest_period_mode=ltm (or auto with target_fiscal_year=2026).
    • After FY 2026 publication: latest_period_mode=fy_actual and target_fiscal_year=2026.
  4. Run make all.
  5. Review changes in:
    • data/processed/preliminary_data_basis.csv
    • data/processed/preliminary_football_field_values.csv
    • MOI/main.pdf