Skip to content

Commit 05636bf

Browse files
committed
Improve landing copy and add M5 explainer page
1 parent b48c42b commit 05636bf

2 files changed

Lines changed: 51 additions & 5 deletions

File tree

site/src/pages/index.astro

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,15 @@ const defaultPayload = JSON.stringify({
3838
---
3939
<MainLayout title="Weatherman">
4040
<Navbar />
41-
<p class="text-slate-400 mt-1">Forecast requests submitted via GitHub Actions. Click any run for full report.</p>
41+
<p class="text-slate-400 mt-1">Welcome to weatherman! A free API to forecast your time series</p>
42+
<p class="text-sm mt-1"><a href="/m5" class="text-sky-300 underline">What is M5 and why it matters?</a></p>
4243

4344
<section class="mt-4 rounded-xl border border-slate-700 bg-slate-900/70 p-4">
44-
<h2 class="text-xl font-semibold mb-2">Submit Forecast Run</h2>
45+
<h2 class="text-xl font-semibold mb-2">Enter Payload, get Forecasts</h2>
4546

4647
<div class="space-y-3">
4748
<div>
48-
<label class="block text-sm text-slate-300 mb-1">Supply a payload, or run a test</label>
49+
<label class="block text-sm text-slate-300 mb-1">Supply your own payload, or use our M5 demo</label>
4950
<div class="grid grid-cols-2 gap-2">
5051
<button type="button" class="tab active rounded-lg border border-slate-600 bg-slate-800 px-3 py-2 text-sm font-medium" id="tab-payload">Supply payload</button>
5152
<button type="button" class="tab rounded-lg border border-slate-600 bg-slate-900 px-3 py-2 text-sm font-medium" id="tab-test">Run M5 test</button>
@@ -54,7 +55,7 @@ const defaultPayload = JSON.stringify({
5455
</div>
5556

5657
<div>
57-
<label for="payload" class="block text-sm text-slate-300 mb-1">Payload JSON</label>
58+
<label for="payload" class="block text-sm text-slate-300 mb-1">Paste JSON Payload below</label>
5859
<details class="rounded-lg border border-slate-700 bg-slate-900 p-2 mb-2">
5960
<summary class="cursor-pointer text-sm text-sky-300">Payload instructions</summary>
6061
<div class="mt-2 text-xs md:text-sm text-slate-200 space-y-2">
@@ -87,7 +88,7 @@ const defaultPayload = JSON.stringify({
8788
</div>
8889

8990
<div>
90-
<button id="submit-btn" class="rounded-lg bg-sky-700 hover:bg-sky-600 px-4 py-2 font-semibold">Submit run</button>
91+
<button id="submit-btn" class="rounded-lg bg-sky-700 hover:bg-sky-600 px-4 py-2 font-semibold">Forecast It!</button>
9192
<div id="status" class="mt-2 text-sm text-slate-300"></div>
9293
<div id="status-list" class="mt-2 space-y-1 text-sm"></div>
9394
</div>

site/src/pages/m5.astro

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
import MainLayout from '../layouts/MainLayout.astro';
3+
import Navbar from '../components/Navbar.astro';
4+
---
5+
<MainLayout title="M5 Benchmark">
6+
<Navbar />
7+
<article class="mt-4 rounded-xl border border-slate-700 bg-slate-900/70 p-5 space-y-4">
8+
<h1 class="text-2xl font-bold">M5: Why it matters for time-series forecasting</h1>
9+
<p class="text-slate-300">
10+
The <strong>M5 Forecasting Competition</strong> is one of the most-used modern benchmarks for practical demand forecasting.
11+
It uses real Walmart retail sales data with rich hierarchy (item, department, store, state) and calendar/event effects.
12+
</p>
13+
14+
<section>
15+
<h2 class="text-lg font-semibold mb-2">Why M5 is a strong standard</h2>
16+
<ul class="list-disc ml-5 space-y-1 text-slate-300">
17+
<li><strong>Real-world complexity:</strong> noisy retail demand, intermittent series, promotions, and seasonality.</li>
18+
<li><strong>Hierarchical structure:</strong> forecasts must make sense across aggregation levels, not just one series.</li>
19+
<li><strong>Scale:</strong> thousands of related series test both model quality and operational reliability.</li>
20+
<li><strong>Community adoption:</strong> many papers and libraries report M5-style performance, so comparisons are meaningful.</li>
21+
</ul>
22+
</section>
23+
24+
<section>
25+
<h2 class="text-lg font-semibold mb-2">What Weatherman does with M5</h2>
26+
<ul class="list-disc ml-5 space-y-1 text-slate-300">
27+
<li>Lets you run a quick <strong>M5 demo mode</strong> from the landing page.</li>
28+
<li>Samples a configurable number of M5 series via <code>n_series</code>.</li>
29+
<li>Runs rolling backtests and reports SMAPE so you can compare models on historical windows.</li>
30+
<li>Then generates forward forecasts for each series.</li>
31+
</ul>
32+
</section>
33+
34+
<section class="rounded-lg border border-slate-700 bg-slate-950 p-3">
35+
<h3 class="font-semibold mb-2">When to use M5 demo vs your own payload</h3>
36+
<ul class="list-disc ml-5 space-y-1 text-slate-300">
37+
<li><strong>M5 demo:</strong> great for sanity checks, regressions, and model-comparison smoke tests.</li>
38+
<li><strong>Your payload:</strong> best for business-specific signal, seasonality, and decision support.</li>
39+
</ul>
40+
</section>
41+
42+
<p class="text-sm text-slate-400">Note: M5 is a benchmark, not your business. Treat it as a quality baseline, then validate on your own data.</p>
43+
<p><a href="/" class="text-sky-300 underline">← Back to Forecast form</a></p>
44+
</article>
45+
</MainLayout>

0 commit comments

Comments
 (0)