A dashboard for monitoring publicly available commodity benchmark prices.
BenchmarkWatcher is a monitoring tool that displays end-of-day benchmark prices for 70+ commodities across energy, metals, agriculture, and livestock.
This project is intended for:
- Viewing historical benchmark price trends
- Tracking daily price changes
- Educational and informational purposes
This project is NOT:
- A trading platform
- A source of real-time market data
- Investment or financial advice
- A signal generator or trading tool
BenchmarkWatcher is intentionally simple.
It prioritizes:
- Clarity over complexity — No hidden logic, no black boxes
- Reference data over live feeds — End-of-day benchmarks, not exchange prices
- Monitoring over prediction — Historical context, not trading signals
If you are looking for real-time prices, trading tools, or technical indicators, this project is not a fit.
All data comes from freely accessible public sources:
| Category | Commodity | Source | Update Frequency |
|---|---|---|---|
| Energy | Brent Crude Oil, WTI Crude Oil | EIA | Daily |
| Energy | Natural Gas (Henry Hub) | FRED | Daily |
| Energy | Heating Oil, Gasoline, Jet Fuel, Propane, Diesel | EIA | Daily |
| Precious | Gold, Silver, Platinum | Yahoo Finance (COMEX/NYMEX Futures) | Daily |
| Metal | Copper, Iron Ore, Aluminum, Zinc, Nickel, Lead, Tin | FRED (World Bank/IMF) | Monthly |
| Agricultural | Wheat, Corn, Soybeans, Rice, Sugar, Coffee, Cocoa, Cotton, Rubber, Palm Oil | FRED (World Bank/IMF) | Monthly |
| Agricultural | Wheat (US Farm Price), Corn, Soybeans, Oats, Barley, Sorghum, Rice, Cotton (Upland) | USDA NASS | Monthly |
| Livestock | Cattle (All), Hogs, Milk (All), Chicken, Eggs, Turkeys, Wool, Lamb | USDA NASS | Monthly |
Important: This application displays benchmark/reference prices only. It does not show real-time exchange prices, intraday data, or proprietary trading data.
- Data availability depends entirely on third-party public sources.
- Some series update daily, others monthly or irregularly.
- Missing or delayed data is expected behavior and not considered a defect.
- Historical values may be revised by original publishers without notice.
If you deploy publicly, use these defaults to reduce abuse risk without adding paid infrastructure:
RATELIMIT_STORAGE_URI=memory://
PUBLIC_API_LIST_RATE_LIMIT=60 per minute
PUBLIC_API_DETAIL_RATE_LIMIT=120 per minute
INTERNAL_API_RATE_LIMIT=30 per minute
INTERNAL_API_KEY=change_meThese values work with the current Flask + Flask-Limiter setup and keep the internal bot endpoint protected.
For full hardening guidance, see docs/API_HARDENING.md and SECURITY.md.
This project is provided for informational and educational purposes only.
BenchmarkWatcher displays historical commodity price data obtained from publicly accessible third-party sources. The data presented may include both officially published benchmark series and publicly available market-derived reference prices, depending on availability.
In addition to raw historical prices, the application computes descriptive, backward-looking summary statistics (such as absolute and percentage changes over fixed historical observation windows). These calculations are mechanical summaries of past data only and do not constitute forecasts, predictions, trading signals, recommendations, or investment advice.
Derived values are calculated over fixed numbers of historical observations and may not correspond to exact calendar periods, particularly where source data is published at different frequencies (daily, monthly, or irregular).
All data is provided "as is." Data may be delayed, incomplete, revised retroactively by original publishers, or unavailable at times. Missing or inconsistent data is expected behavior and is not considered a defect.
BenchmarkWatcher does not provide real-time market data, does not execute trades, and does not attempt to model, predict, or infer future price movements.
No financial decisions should be made based on the information produced by this software.
The authors and contributors disclaim all liability for any use, misuse, or interpretation of the data or derived values presented.
This project is licensed under the MIT License — see the LICENSE file for details.
- FRED — Federal Reserve Economic Data
- EIA — U.S. Energy Information Administration
- USDA NASS — U.S. Department of Agriculture, National Agricultural Statistics Service
- Tailwind CSS — Styling
- Chart.js — Charts