A private tool — restricted access. Enter your access key, or open from the member area.
—
Informational only — not financial advice. Figures are a manually-entered snapshot, not a live feed, and individual analyst targets carry different dates. Prices marked “≈” are approximate. Verify against your broker before acting.
Right now the numbers below are baked in as a dated snapshot so the page works offline. To make the dropdown pull live quotes, point each ticker at a data API and replace the values in the DATA object. Browser CORS and API keys mean you’ll want a small proxy — which you already have available on Cloudflare Pages Functions.
/functions/quote.js that holds the key server-side and forwards the request — keeps your key out of the browser and sidesteps CORS.// /functions/quote.js (Cloudflare Pages Function)
export async function onRequest({ request, env }) {
const t = new URL(request.url).searchParams.get("t");
const r = await fetch(
`https://finnhub.io/api/v1/quote?symbol=${t}&token=${env.FINNHUB_KEY}`
);
return new Response(await r.text(), {
headers: { "content-type": "application/json" }
});
}
// in this page:
async function loadLive(ticker){
const q = await (await fetch(`/quote?t=${ticker}`)).json();
DATA[ticker].price = q.c; // current
DATA[ticker].change = q.c - q.pc; // vs prev close
DATA[ticker].changePct = ((q.c - q.pc)/q.pc*100);
render(ticker);
}
Open interest / gamma walls (the NVDA layer) aren’t in most free feeds — those come from an options-data provider or by parsing your IBKR chain export. Until wired, the other tickers show that layer as an empty state.