← back to Watches
tasks/prd-omega-daily-scraper.md
69 lines
# PRD: Daily Omega Official Price Scraper
## Introduction
Scrape official retail prices from omegawatches.com daily to build a historical price database starting today. Runs as a cron job at 6am daily.
## Goals
- Capture official Omega retail prices daily
- Build historical MSRP database over time
- Track price changes and updates
- Zero cost (direct website scraping)
## User Stories
### US-030: Create Omega Website Scraper
**Description:** Python script to scrape current prices from omegawatches.com
**Acceptance Criteria:**
- [ ] Scrape Speedmaster collection prices
- [ ] Scrape Seamaster collection prices
- [ ] Scrape Constellation collection prices
- [ ] Scrape De Ville collection prices
- [ ] Output JSON with model, reference, price, date
### US-031: Create Price Storage System
**Description:** Store daily price snapshots in JSON database
**Acceptance Criteria:**
- [ ] Create data/omega-official-prices.json
- [ ] Append daily snapshots (don't overwrite)
- [ ] Track price changes between days
### US-032: Set Up Cron Job
**Description:** Schedule daily scrape at 6am
**Acceptance Criteria:**
- [ ] Cron job runs at 6am daily
- [ ] Logs output to logs/omega-scraper.log
- [ ] Handles errors gracefully
## Technical Approach
### Scraper Script
- Use requests + BeautifulSoup
- Target omegawatches.com/en-us/watches/
- Extract: model name, reference, USD price
- Rate limit to avoid blocking
### Data Storage
```json
{
"scrapes": [
{
"date": "2026-01-11",
"timestamp": "2026-01-11T06:00:00Z",
"prices": [
{"model": "Speedmaster Moonwatch", "ref": "310.30.42.50.01.002", "price": 7100}
]
}
]
}
```
### Cron Schedule
```
0 6 * * * /usr/bin/python3 /root/Projects/watches/scripts/omega-daily-scraper.py >> /root/Projects/watches/logs/omega-scraper.log 2>&1
```