-
Notifications
You must be signed in to change notification settings - Fork 6
Description
What It Is
An enhancement to the current Tide Chart dashboard, moving from a static view to an interactive, dynamic application that provides actionable probability metrics, time horizon toggling, and live data updates.
Core Features
1. Interactive Probability Calculator
Add a simple form on the dashboard where a user can enter a target price for an asset (e.g., "$155 for NVDA"). The dashboard should calculate and display the exact percentage probability of the asset hitting that target price within the next 24 hours or 1 hour (depending on the selected time horizon) based on Synth's distribution data.
2. Variable Time Horizons
The chart and metrics are currently locked to a 24h forecast. Since the Synth API also supports a 1h horizon, add a toggle at the top of the page switching between "Intraday (1H)" and "Next Day (24H)" views. This toggle should apply to the whole site globally, switching all data and charts between 1-hour and 24-hour modes.
3. Live Auto-Refresh
Right now, the dashboard is a static HTML file generated once. Convert this to a dynamic view with live auto-refresh capabilities:
- Implement a manual refresh button.
- Implement an auto-refresh cadence: a 5-minute interval when on the 24-hour view, and a 1-minute interval when on the 1-hour view.
Submission Requirements
- Demo video — Screen recording showing the new features (calculator, time horizon toggle, and refresh functionality) in action.
- Technical explanation — Update the existing
tools/tide-chart/README.md. Should cover what the tool does, how the new features work, and how they use Synth data. - Tests in
tools/tide-chart/tests/verifying the new calculator logic and dynamic features.
Getting Started
This repo includes a wrapper client so you can build without a Synth API key:
from synth_client import SynthClient
client = SynthClient() # auto-loads mock data when no API key is set
# Example: Get probability distribution for 24h or 1h
forecast_24h = client.get_prediction_percentiles("SPY", horizon="24h")
forecast_1h = client.get_prediction_percentiles("SPY", horizon="1h")
# Example: Get volatility forecast
vol = client.get_volatility("NVDA", horizon="24h")- Fork the repo and clone it
- Navigate to
tools/tide-chart/ pip install -r requirements.txt- Build your tool using the
SynthClient - Open a PR when ready