Python Data Engineer: Build Sports Analytics Database & API (Punting Form Data)
Rozpočet: $45.0 - $75.0
HOURLY / PART_TIME
⭐ 0.00 (0)
Australia
python, api, data-extraction, etl-pipelines, postgresql, api-integration, data-ingestion, pandas, sqlalchemy
Preferované kvalifikace
- Zkušenost: Středně pokročilý
I am looking for an independent, mid-level Python and Data Engineer to build a custom data ingestion pipeline, relational database, and localized API layer.
The project involves harvesting horse racing form, speed maps, and highly granular 200m sequential sectional/benchmark data from a commercial provider (Punting Form V2 API) via their JSON and CSV API endpoints.
While the data source provides nationwide coverage, the system must be configured with a parameter filter to strictly ingest and process data for Western Australian (WA) race meetings to keep data volume and cloud infrastructure overhead exceptionally light.
Core Deliverables & Architecture:
1. ETL / Ingestion Pipeline (The Harvester): Create an automated script (to run as a daily cron job) that connects to the Punting Form V2 API, handles authentication via API key, and downloads daily race fields, runner details, and raw sequential 200m sectional splits for the target meeting.
2. Database Design (PostgreSQL): Structure a relational database to store this data cleanly. You must map tables for Meetings, Races, Runners (tracking metrics like KRI and Predicted Settle), and a dedicated sequential table tracking individual 200m increments for horse split times and relative benchmark adjustments. The design philosophy must be "Store everything raw, filter later" to ensure total long-term flexibility.
3. API Layer & Mobile Output (FastAPI or Flask): Build a lightweight local REST API with endpoints that allow me to query and filter the database to generate custom shortlists. The final data output must be served via a secure, private web URL as a clean, mobile-responsive HTML table so I can view my Saturday morning shortlists cleanly on any computer or smartphone browser.
Specific Key Features the API Needs to Identify & Compute:
• Class Droppers: Use the backend ClsDiff variable to instantly isolate runners stepping down significantly in class from their last start (negative ClsDiff).
• Hot Form Lines: Filter upcoming runners emerging from a past race with a high Key Race Index (KRI ≥ 70).
• Elite Closing Sectionals: Filter runners based on high-performance velocity ratings using the FML600 and FML200 (displayed on the web front-end as L600/L200 Var L benchmarks) to pinpoint hidden finishing speed.
• Automated Speed Maps: Compile RunStyle and PrSe (Predicted Settle) metrics for an upcoming race field to dynamically calculate early pace structure.
• Dynamic Trainer/Jockey Patterns: The database must run internal queries to calculate specific trainer strike rates and ROIs for niche angles, including: 1st-up runners, 2nd-up runners, and horses backing up within 7 days or less.
Tech Stack Requirements:
• Language: Python 3.x
• Database: PostgreSQL (Experience with TimescaleDB or Postgres JSONB optimization for handling time-series/sequential splits is highly regarded)
• Libraries: Pandas, NumPy, Requests / HTTP clients, SQLAlchemy (or similar ORM)
• API Framework: FastAPI or Flask
Project Scope & Rules:
• Targeting individual freelancers only. No software agencies.
• Estimated Time: 30–40 hours total.
• The system architecture must be completely modular and scalable so that I can easily "turn on" the rest of Australia's states in the database configuration down the track without rewriting the codebase.
Please answer these screening questions to apply:
1. Have you built an automated data pipeline that parses raw JSON/CSV feeds into a structured SQL database before?
2. What is your preferred approach for indexing sequential/fractional data (like 200m sectional times) to keep API queries fast?
3. Confirm you are an independent freelancer and not applying on behalf of an agency.
Otevřít na Upwork
AI proposal draft
Generate a short cover letter for this job. Edit before sending.
Sign in to generate an AI proposal draft.
Přihlásit