A market intelligence application for analyzing lithium supply, demand, cost competitiveness, and price formation across global assets.
The system is designed to approximate how commodity research and market strategy teams evaluate lithium markets under changing EV adoption, production expansion, and cost curve scenarios.
Lithium prices are driven by more than aggregate supply and demand. In practice, pricing depends on the marginal producer, the shape of the global cost curve, processing concentration, and the pace of downstream battery demand growth.
Most public analysis is fragmented across static charts and disconnected datasets, making it difficult to evaluate how incremental changes in production or demand alter market balance and pricing.
This project integrates asset-level production, cost normalization, EV-driven demand assumptions, and market-clearing logic into a single analytical dashboard.
It allows users to:
- compare supply and demand trajectories
- inspect cost curve positioning by asset or region
- estimate marginal supply pressure
- simulate pricing implications under different market scenarios
Streamlit App URL: https://lithium-dashboard-hizexmjjqbfus8zpfrvmyy.streamlit.app/
The application is organized as a modular analytics system:
app/app.pyhandles the Streamlit interface and orchestrationsrc/cost_model.pynormalizes production economics into LCE termssrc/supply_model.pyaggregates asset-level supplysrc/demand_model.pymodels EV-linked demand growthsrc/price_model.pyestimates market-clearing pricesdata/stores structured model inputsoutputs/stores generated summaries and scenario outputs
Production is aggregated at the asset level and can be segmented by region, extraction type, and scenario assumptions.
Asset economics are normalized into Lithium Carbonate Equivalent to create a comparable cost basis across operations.
Demand is projected using EV adoption assumptions and downstream lithium intensity logic.
The model estimates market-clearing behavior by identifying where demand intersects the supply stack and which producers become marginal under each scenario.
Key findings from the model include:
- marginal supply is more important for pricing than headline production totals
- tight market balances can produce disproportionately large pricing moves
- steep cost curves amplify volatility
- regional concentration in refining and conversion increases systemic risk
Python, Pandas, NumPy, Streamlit
lithium-dashboard/
├── app/
│ └── app.py
├── src/
│ ├── cost_model.py
│ ├── supply_model.py
│ ├── demand_model.py
│ └── price_model.py
├── data/
├── outputs/
├── main.py
├── requirements.txt
└── README.md
git clone https://github.com/ashleshakadam/lithium-dashboard.git
cd lithium-dashboard
pip install -r requirements.txt
streamlit run app/app.py
• incorporate real-time pricing and trade data
• add battery chemistry segmentation such as LFP and NMC
• introduce Monte Carlo scenario simulation
• add geopolitical and refining bottleneck overlays
Ashlesha Kadam