Skip to content

Tide Chart Enhancements: Interactive Features #12

@e35ventura

Description

@e35ventura

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")
  1. Fork the repo and clone it
  2. Navigate to tools/tide-chart/
  3. pip install -r requirements.txt
  4. Build your tool using the SynthClient
  5. Open a PR when ready

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions