Skip to content

alikatgh/benchmarkwatcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

146 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BenchmarkWatcher

A dashboard for monitoring publicly available commodity benchmark prices.

License Python Flask


What This Is

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

Design Philosophy

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.


Data Sources

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.


Operational Notes

  • 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.

Safe Defaults (No Extra Services)

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_me

These 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.


Disclaimer

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.


License

This project is licensed under the MIT License — see the LICENSE file for details.


Acknowledgments

  • 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

About

Historical commodity benchmark reference display - observational data only, no trading advice

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors