Files
PolyWeather/frontend/content/public-content.ts
2026-06-24 16:41:13 +08:00

414 lines
18 KiB
TypeScript

export const PUBLIC_CONTENT_BASE_URL = "https://polyweather.top";
export type PublicBriefSignal = {
label: string;
value: string;
detail: string;
};
export type PublicBrief = {
city: string;
cityName: string;
countryName: string;
date: string;
title: string;
description: string;
market: string;
settlementSource: string;
updatedAt: string;
publishedAt: string;
dataFreshness: string;
debRead: string;
sourceRead: string;
modelRead: string;
riskRead: string;
notFinancialAdvice: string;
distributionText: string;
primaryCtaLabel: string;
sourceSlugs: string[];
methodologySlugs: string[];
signals: PublicBriefSignal[];
checkpoints: string[];
};
export type MethodologyPage = {
slug: string;
title: string;
description: string;
updatedAt: string;
summary: string;
sections: Array<{
heading: string;
body: string;
bullets: string[];
}>;
};
export type SourcePage = {
slug: string;
title: string;
description: string;
updatedAt: string;
operator: string;
coverage: string;
cadence: string;
settlementUse: string;
reliabilityNotes: string[];
relatedMethodologySlugs: string[];
};
export const PUBLIC_BRIEFS: PublicBrief[] = [
{
city: "ankara",
cityName: "Ankara",
countryName: "Turkey",
date: "2026-06-24",
title: "Ankara Weather Market Brief - 24 Jun 2026",
description:
"A public market brief for Ankara maximum temperature judgment, focused on MGM settlement-source behavior, DEB blended forecast context, and anomaly checks.",
market: "Same-day maximum temperature judgment",
settlementSource: "MGM official station",
updatedAt: "2026-06-24T13:55:00+03:00",
publishedAt: "2026-06-24T13:55:00+03:00",
dataFreshness:
"Static public snapshot. Paid terminal users should verify the latest official observation and SSE replay state before acting.",
debRead:
"DEB kept the intraday high-temperature read below the isolated MGM spike and closer to the observed official range.",
sourceRead:
"MGM is treated as the primary settlement reference. A single 27.1 C point should be checked against adjacent official readings before it is accepted as a new high.",
modelRead:
"ECMWF was warmer than the DEB blend in the early afternoon window, but the public brief weights official observations above model-only movement.",
riskRead:
"Main risk is a late official update or a source-side correction that changes the recognized high after the public snapshot.",
notFinancialAdvice:
"This brief is weather-research content for prediction-market preparation. It is not financial advice and does not guarantee settlement outcomes.",
distributionText:
"Ankara 2026-06-24 public Weather Market Brief: MGM official readings favored a 24.5 C observed high over an isolated 27.1 C spike; DEB stayed below the outlier. Not financial advice.",
primaryCtaLabel: "Open live terminal",
sourceSlugs: ["mgm", "metar", "ecmwf"],
methodologySlugs: ["deb", "settlement-sources"],
signals: [
{
label: "Observed high so far",
value: "24.5 C",
detail: "Official-source value to compare against any isolated higher point.",
},
{
label: "Outlier under review",
value: "27.1 C",
detail: "A sudden single-source value needs neighboring-time validation.",
},
{
label: "DEB public read",
value: "Below spike",
detail: "Blend stayed closer to the verified observation band.",
},
],
checkpoints: [
"Check whether the suspected spike appears in the official high-temperature summary.",
"Compare adjacent MGM observations before treating a single point as settlement-relevant.",
"Review the paid terminal for live chart patches and source freshness before market close.",
],
},
{
city: "hong-kong",
cityName: "Hong Kong",
countryName: "Hong Kong",
date: "2026-06-24",
title: "Hong Kong Weather Market Brief - 24 Jun 2026",
description:
"A public brief showing how PolyWeather frames HKO/Cheung Chau/airport observations against DEB and model spread for maximum-temperature markets.",
market: "Urban and airport maximum temperature judgment",
settlementSource: "HKO official network",
updatedAt: "2026-06-24T18:00:00+08:00",
publishedAt: "2026-06-24T18:00:00+08:00",
dataFreshness:
"Static public snapshot. Live terminal values may differ as HKO and station caches refresh.",
debRead:
"DEB favored a narrow high-temperature window because live observations and model spread were aligned by late afternoon.",
sourceRead:
"HKO network observations remain the source family to reconcile before interpreting airport-only movement.",
modelRead:
"Model disagreement was limited, so source freshness and station selection mattered more than broad synoptic uncertainty.",
riskRead:
"Primary risk is station-specific heat retention during late afternoon or a late official summary revision.",
notFinancialAdvice:
"This brief is weather-research content for prediction-market preparation. It is not financial advice and does not guarantee settlement outcomes.",
distributionText:
"Hong Kong 2026-06-24 public Weather Market Brief: source selection and HKO freshness mattered more than model spread. Not financial advice.",
primaryCtaLabel: "Open live terminal",
sourceSlugs: ["hko", "metar"],
methodologySlugs: ["deb", "settlement-sources"],
signals: [
{
label: "Source family",
value: "HKO",
detail: "Use official station context before airport-only interpretation.",
},
{
label: "Model spread",
value: "Low",
detail: "Late-day uncertainty mainly came from station behavior.",
},
{
label: "Terminal need",
value: "Freshness",
detail: "Live source timestamps decide whether the public snapshot is still useful.",
},
],
checkpoints: [
"Verify HKO station timestamps before comparing market bands.",
"Separate airport METAR observations from settlement-source network readings.",
"Check terminal source health if the public snapshot is older than one refresh cycle.",
],
},
{
city: "new-york",
cityName: "New York",
countryName: "United States",
date: "2026-06-24",
title: "New York Weather Market Brief - 24 Jun 2026",
description:
"A public brief for New York temperature markets, connecting METAR, NOAA context, DEB blending, and late-day risk checks.",
market: "Airport-linked maximum temperature judgment",
settlementSource: "METAR and NOAA station context",
updatedAt: "2026-06-24T12:30:00-04:00",
publishedAt: "2026-06-24T12:30:00-04:00",
dataFreshness:
"Static public snapshot. Paid terminal users should check current METAR observations and official summaries.",
debRead:
"DEB weighted the latest observation trend against warmer model guidance instead of following the raw model high.",
sourceRead:
"METAR provides fast airport evidence, while NOAA context helps validate whether the airport value is representative.",
modelRead:
"Warm model guidance can be useful only after it is reconciled with live airport observations and cloud/wind context.",
riskRead:
"Primary risk is a short late-day break in cloud cover that lifts airport observations into a higher band.",
notFinancialAdvice:
"This brief is weather-research content for prediction-market preparation. It is not financial advice and does not guarantee settlement outcomes.",
distributionText:
"New York 2026-06-24 public Weather Market Brief: DEB blended warmer guidance against live airport evidence. Not financial advice.",
primaryCtaLabel: "Open live terminal",
sourceSlugs: ["metar", "noaa"],
methodologySlugs: ["deb", "settlement-sources"],
signals: [
{
label: "Fast evidence",
value: "METAR",
detail: "Airport observations define the short-cycle read.",
},
{
label: "Validation",
value: "NOAA",
detail: "Official context helps audit the final high-temperature interpretation.",
},
{
label: "DEB stance",
value: "Blend",
detail: "Do not follow a warm model run without live evidence confirmation.",
},
],
checkpoints: [
"Watch the last two METAR cycles before the daily high window ends.",
"Check whether model warmth is supported by cloud and wind observations.",
"Use official source context before final settlement interpretation.",
],
},
];
export const METHODOLOGY_PAGES: MethodologyPage[] = [
{
slug: "deb",
title: "DEB Forecast Methodology",
description:
"How PolyWeather frames DEB blended forecasts for prediction-market temperature decisions without replacing settlement-source evidence.",
updatedAt: "2026-06-24T00:00:00Z",
summary:
"DEB is the public name for PolyWeather's blended forecast layer. It reconciles model guidance, live observation momentum, source freshness, and station context so users can judge a high-temperature band with fewer single-model mistakes.",
sections: [
{
heading: "What DEB is for",
body:
"DEB is not a settlement oracle. It is a decision-support layer that makes the live observation path and model spread easier to compare.",
bullets: [
"Prefer settlement-source evidence when it conflicts with model-only guidance.",
"Treat stale or isolated source values as quality-control candidates.",
"Expose the forecast band and the reason a band is widening or narrowing.",
],
},
{
heading: "Inputs that matter",
body:
"The blend is useful because it combines different evidence classes instead of pretending one model run is enough.",
bullets: [
"Latest official or airport observations and their freshness.",
"Model consensus and disagreement across ECMWF, GFS, ICON, GEM, and local sources when available.",
"City-specific source behavior, station selection, and intraday high timing.",
],
},
{
heading: "How to read a DEB miss",
body:
"A DEB miss should be reviewed by separating source freshness, model spread, and settlement-source revisions.",
bullets: [
"If the observed high changed after a late source patch, classify it as a freshness or replay issue.",
"If every source was fresh but the high landed outside the band, review model weighting and local station features.",
"If one source jumped alone, audit neighboring observations before retraining around the outlier.",
],
},
],
},
{
slug: "settlement-sources",
title: "Settlement-Source Priority",
description:
"Why PolyWeather presents official settlement-related observations before generic weather API values.",
updatedAt: "2026-06-24T00:00:00Z",
summary:
"Prediction-market users care about the number that resolves the contract. PolyWeather therefore puts official station, airport, and operator-specific source behavior above broad consumer-weather averages.",
sections: [
{
heading: "Why generic weather values are not enough",
body:
"Consumer weather apps often smooth station data or display city-wide approximations. Market resolution can depend on a narrower official source.",
bullets: [
"A city label may hide multiple stations with different daily highs.",
"Airport METAR can update faster than a public summary, but may not be the final settlement source.",
"Official source revisions can matter more than a visually smooth forecast curve.",
],
},
{
heading: "What PolyWeather surfaces",
body:
"The terminal separates source labels, observation timestamps, forecast models, and freshness state so a user can audit the path to a number.",
bullets: [
"Settlement-source labels and station context on charts.",
"Source freshness, cache policy, and SSE patch visibility.",
"DEB forecast context shown next to live observations, not as a replacement for them.",
],
},
],
},
];
export const SOURCE_PAGES: SourcePage[] = [
{
slug: "mgm",
title: "MGM Weather Source",
description:
"PolyWeather source note for Turkish MGM observations used in Ankara-style temperature market analysis.",
updatedAt: "2026-06-24T00:00:00Z",
operator: "Turkish State Meteorological Service",
coverage: "Turkey official station network, including Ankara market context.",
cadence: "Source cadence varies by station and publication path; terminal freshness checks are required.",
settlementUse:
"Used as the primary official-source family when Ankara markets reference Turkish official observations.",
reliabilityNotes: [
"Single-point spikes should be compared with neighboring timestamps before being accepted.",
"Official summaries can lag raw point observations.",
"Cache and SSE replay state should be checked when a value appears suddenly.",
],
relatedMethodologySlugs: ["settlement-sources", "deb"],
},
{
slug: "metar",
title: "METAR Airport Observations",
description:
"PolyWeather source note for airport METAR observations used as fast evidence in temperature-market workflows.",
updatedAt: "2026-06-24T00:00:00Z",
operator: "Airport weather observation network",
coverage: "Airport-linked observations across supported markets.",
cadence: "Often hourly or sub-hourly depending on airport and issuance behavior.",
settlementUse:
"Useful for fast evidence and airport-linked contracts; must be reconciled with the contract's exact settlement source.",
reliabilityNotes: [
"METAR can update faster than official daily summaries.",
"Airport exposure may differ from city-center official stations.",
"Late METAR cycles can change high-temperature judgment near market close.",
],
relatedMethodologySlugs: ["settlement-sources", "deb"],
},
{
slug: "ecmwf",
title: "ECMWF Model Guidance",
description:
"PolyWeather source note for ECMWF model guidance as one input into DEB blended forecasts.",
updatedAt: "2026-06-24T00:00:00Z",
operator: "European Centre for Medium-Range Weather Forecasts",
coverage: "Global numerical weather prediction guidance.",
cadence: "Model-run cadence depends on product and ingestion timing.",
settlementUse:
"Used for forecast context only. It does not replace live official observations for settlement interpretation.",
reliabilityNotes: [
"Model warmth or coolness should be validated against live observations.",
"Run-to-run shifts can be useful when source evidence has not yet settled.",
"Model spread should be shown beside, not above, settlement-source data.",
],
relatedMethodologySlugs: ["deb"],
},
{
slug: "hko",
title: "HKO Official Observations",
description:
"PolyWeather source note for Hong Kong Observatory observations in Hong Kong market analysis.",
updatedAt: "2026-06-24T00:00:00Z",
operator: "Hong Kong Observatory",
coverage: "Hong Kong official observation network and station-specific context.",
cadence: "Cadence varies by observation product; terminal freshness checks remain required.",
settlementUse:
"Used as the official-source family for Hong Kong station and city-market interpretation.",
reliabilityNotes: [
"Station selection can materially change the maximum-temperature read.",
"Airport observations should be separated from broader HKO network readings.",
"Humidity, wind, and late-day sun breaks can affect final highs.",
],
relatedMethodologySlugs: ["settlement-sources", "deb"],
},
{
slug: "noaa",
title: "NOAA Weather Context",
description:
"PolyWeather source note for NOAA context used to validate US weather-market observations and summaries.",
updatedAt: "2026-06-24T00:00:00Z",
operator: "National Oceanic and Atmospheric Administration",
coverage: "United States official weather observations, summaries, and context products.",
cadence: "Cadence depends on product family and station reporting behavior.",
settlementUse:
"Used to audit and contextualize US official observations where contract rules reference NOAA/NWS data.",
reliabilityNotes: [
"Official summaries can arrive after fast airport observations.",
"Daily high interpretation should match the contract's station and time zone rules.",
"Use NOAA context to confirm whether an airport observation is representative.",
],
relatedMethodologySlugs: ["settlement-sources", "deb"],
},
];
export function briefPath(brief: PublicBrief) {
return `/briefs/${brief.city}/${brief.date}`;
}
export function methodologyPath(page: MethodologyPage) {
return `/methodology/${page.slug}`;
}
export function sourcePath(page: SourcePage) {
return `/sources/${page.slug}`;
}
export function getBrief(city: string, date: string) {
return PUBLIC_BRIEFS.find((brief) => brief.city === city && brief.date === date);
}
export function getMethodologyPage(slug: string) {
return METHODOLOGY_PAGES.find((page) => page.slug === slug);
}
export function getSourcePage(slug: string) {
return SOURCE_PAGES.find((page) => page.slug === slug);
}
export function absolutePublicUrl(pathname: string) {
return `${PUBLIC_CONTENT_BASE_URL}${pathname}`;
}