Tech.
What Harper runs on, and every raw forecast archive I've ever published.
This is the behind-the-scenes page: what Harper runs on, where the numbers come from, and the archive of every cycle I've published. Nothing fancy, just a boring, well-known stack.
Stats
Coverage
Spots
41
Regions
52
Countries
25
Data pipeline
Observations
902,682
Refreshes
179
Forecasts
9,306
Run time
5m 18s
Data generated
1.5 GB
AI tokens
15,242,308
Raw forecasts
Harper is open, and I mean it: the raw forecast data is right here, free to grab. I chew through it once and spit out plain JSON, one file per spot, so you get the same numbers driving my charts without having to install a GRIB decoder.
If you do want the raw GRIBs from NOAA, I also built noaa-gfs-wave to make pulling them per region a lot less painful.
- forecasts/2026-07-27-18z.zip
9c71499a2cea4875aa78da8f49a30da1 - forecasts/2026-07-27-06z.zip
ae890c6f7cbca59088017155fe9c5268 - forecasts/2026-07-27-00z.zip
f02c79a63eaf41b27cb95d9272010f7b - forecasts/2026-07-26-18z.zip
569d06098afd2bfbf1c7cef6c255b0d4 - forecasts/2026-07-26-00z.zip
9460d7552262eed57b5ee02bd6c0a44a - forecasts/2026-07-25-18z.zip
2c6ec32a7cd5e6af886f456321172221 - forecasts/2026-07-25-06z.zip
b595022b4e4dcb4f93b8ba061ec6e4d9 - forecasts/2026-07-25-00z.zip
49f3d4028cad0ed21c6c93b2480bc964 - forecasts/2026-07-24-18z.zip
bc2e0a6154978b64efd45a1fbde5b71b - forecasts/2026-07-24-06z.zip
f59275943bfeef62caedec498c3dde96 - forecasts/2026-07-24-00z.zip
82d1c687060000682b6cdc8ec0dbb465 - forecasts/2026-07-23-18z.zip
1178a242816cf0954aa15369c163d792 - forecasts/2026-07-23-06z.zip
66669dc738c764bd3ad7723545196687 - forecasts/2026-07-23-00z.zip
cf1001495ff2f4c7569ec3c0bdcfd75a - forecasts/2026-07-22-18z.zip
843152805be4af2f1f4990ee8f9bcb05 - forecasts/2026-07-22-06z.zip
8d2422241e599b28709e834373437308 - forecasts/2026-07-22-00z.zip
d2fc0f2c5892a0020b14ecf8cdea2eb2 - forecasts/2026-07-21-18z.zip
c1ad576a5ad5a6d6a6b33010fed14382 - forecasts/2026-07-21-06z.zip
12a0246ea1027f5e8a94057314b77905 - forecasts/2026-07-21-00z.zip
b5dc37d4ff0ad804b401d9a01a79f9b8 - forecasts/2026-07-20-18z.zip
948b88beb1973aea05330c1192cc533b - forecasts/2026-07-20-06z.zip
9718e2189ae06d8d5f8341ac50b49c70 - forecasts/2026-07-20-00z.zip
21e07ef850f30fa7506f563952994175 - forecasts/2026-07-19-18z.zip
a93311e9b5dc14a8b1e3f4d84c78825a - forecasts/2026-07-19-06z.zip
d5dc7d66114e7313903f54bd25abfc97 - forecasts/2026-07-19-00z.zip
458514f63051687aced15f7c30f6f38c - forecasts/2026-07-18-18z.zip
8fde7c92c99652a467b3f4bf6e79160e - forecasts/2026-07-18-06z.zip
2782e4472014ceb754dcb4176d311b0a - forecasts/2026-07-18-00z.zip
9a3d36446c1355c43a42ac0188d4f188 - forecasts/2026-07-17-18z.zip
e95d2546702aea6febd10c9565037f69 - forecasts/2026-07-17-06z.zip
4803c626c1676a789bba27c0e955de62 - forecasts/2026-07-17-00z.zip
71cd75285279701241e7a5f014630b40 - forecasts/2026-07-16-18z.zip
c872c293c68e632f3f5d9e0c7acd9b60 - forecasts/2026-07-16-06z.zip
9e7c4687c346ba8e4a9f8328f49228f3 - forecasts/2026-07-16-00z.zip
fb51cc7741d0199063fcf9dde6eefa17 - forecasts/2026-07-15-18z.zip
44aa7e6ff0427af58830bc8eba14dcc3 - forecasts/2026-07-15-06z.zip
4fd1e68c2031a136faaa8377f57c66e1 - forecasts/2026-07-15-00z.zip
04f6ab309eacad5be4d255b3a5c1eda1 - forecasts/2026-07-14-18z.zip
0c3e02492e71a017b909e47e75b2d39f - forecasts/2026-07-14-06z.zip
0713b2fc15f2cdefdc1ca7cbe7b1e84c - forecasts/2026-07-14-00z.zip
eb69b6cc9b28c9fb7237d04d8a3091bc - forecasts/2026-07-13-18z.zip
0c64d1b475d4aaac3f3d84c71c1e0bf1 - forecasts/2026-07-13-06z.zip
f79773f0d5053bc3d194e0452522ed43 - forecasts/2026-07-13-00z.zip
6396a67c90b7cc6c5c569e62908dcc43 - forecasts/2026-07-12-18z.zip
ee0c493f91cf3da5385fccf2408e6dca - forecasts/2026-07-12-06z.zip
e382ba41af7edbb5bc5f10e8afdbc1a5 - forecasts/2026-07-12-00z.zip
154d9d8e71aaf6fa25e36a57dbb8760d - forecasts/2026-07-11-18z.zip
fa4fbdaddef5772d9f5cdf1e97a227b8 - forecasts/2026-07-11-06z.zip
5682c720233ec71372e6f9647155d573 - forecasts/2026-07-11-00z.zip
f5040d41c885a863f105eb5b7e6270e5 - forecasts/2026-07-10-18z.zip
24602bed97818003107b95d931027f29 - forecasts/2026-07-10-06z.zip
6a8d2988001c1d30f11f3f7bc04868bc - forecasts/2026-07-10-00z.zip
94baabd4078772d2dbd78d993ab40ee9 - forecasts/2026-07-09-18z.zip
c82573322b50c08992d3927ba8a9a4a9 - forecasts/2026-07-09-06z.zip
5849cf043db2474413df5e972a2fb269 - forecasts/2026-07-09-00z.zip
8a874f17772d243e3582f19e8581d638 - forecasts/2026-07-08-18z.zip
a8d9b88380f6d4b7c7295d4c454370af - forecasts/2026-07-08-06z.zip
cc8877e864a620731fac82cdf72d9467 - forecasts/2026-07-08-00z.zip
20655ab3b640a151cbbaacd8b2b177e6 - forecasts/2026-07-07-18z.zip
b86f4d9bf0b9ed20542d22b1835fd0cf - forecasts/2026-07-07-06z.zip
8d4ae2456931836a81a4226dbded21a9 - forecasts/2026-07-07-00z.zip
c2f469108b53ddd8cae3331416434d18 - forecasts/2026-07-06-18z.zip
7ba2a148e95ec3f870f482d6b3f531cd - forecasts/2026-07-06-06z.zip
d73ff7a36d640ec612dcdf751ee36633 - forecasts/2026-07-06-00z.zip
9135663a02ec3dde822e89acf74ba5c9 - forecasts/2026-07-05-18z.zip
8c6bede5e7d94316bedd52dbff39a795 - forecasts/2026-07-05-06z.zip
18dd620b47678e6fc3b821c036e11382 - forecasts/2026-07-05-00z.zip
4d0bd691d41ece555f5d13c49426c8ee - forecasts/2026-07-04-18z.zip
52a10ce6935e4d3abc7c18f4be5f1e34 - forecasts/2026-07-04-06z.zip
d24f73712f11b08f220ddaead8fd52d3 - forecasts/2026-07-04-00z.zip
85a51a65ff8920f6c6254baf083c7e73 - forecasts/2026-07-03-18z.zip
98044f43f208744312db1359df23e0fe - forecasts/2026-07-03-06z.zip
e0ed5b1db532b92ccf689b7e55215a8f - forecasts/2026-07-03-00z.zip
3ca4426d7917f73d674bc992fc84b44e - forecasts/2026-07-02-18z.zip
14e78d39d9faf556aa63f6b98ab23aee - forecasts/2026-07-02-06z.zip
89c315fb0490771f2ada8d681f4decdb - forecasts/2026-07-02-00z.zip
f526361243d2d6fbfa15007e3227aabc - forecasts/2026-07-01-12z.zip
91244ef709c90e04c0f3ff30cea42320 - forecasts/2026-07-01-06z.zip
16c2e88957dbb8f02ad918e342dbd2e7 - forecasts/2026-07-01-00z.zip
b3dd5698a6ae1abe200d0459f71bbec4 - forecasts/2026-06-30-12z.zip
74edbf44611f8956e87666c1ab4dcfca - forecasts/2026-06-30-06z.zip
a416e1eb4904f6ff7d55e03f60076675 - forecasts/2026-06-30-00z.zip
6b1c133299c7c09d5ee8c524d386affc - forecasts/2026-06-29-18z.zip
7774c94690168e90cedc8b4c0b43d5cf - forecasts/2026-06-29-06z.zip
2f00fb9b2ca1e667d02ffa1b1ed7c6aa - forecasts/2026-06-11-06z.zip
33a6566cb9e36dc04542cec764f33d6e - forecasts/2026-06-11-00z.zip
538f604a24d37aff04a809dc7f828864 - forecasts/2026-06-10-18z.zip
36f600eb54eb4758846234b3d34a4b84 - forecasts/2026-06-10-06z.zip
58391841258772134898470185d60fc6 - forecasts/2026-06-10-00z.zip
d2e05b543d717157c93e382f26f65efa - forecasts/2026-06-09-18z.zip
ad2c65d92040f2d89482110794bd9df4 - forecasts/2026-06-09-06z.zip
ae8c091029eafa44df19b1c357e4cfb2 - forecasts/2026-06-09-00z.zip
e2f46d379e31496b56cadd3c0a4a05c9 - forecasts/2026-06-08-18z.zip
1e98902b2267af51de6e7dc828c6a8da - forecasts/2026-06-08-06z.zip
09c3b8be5c9c5efd90bca931cad2970a - forecasts/2026-06-08-00z.zip
28e4485faa2386b4bfd276235a9de50a - forecasts/2026-06-07-18z.zip
2aeebe8dbb7ff456f14fd6dfd9e9e24a - forecasts/2026-06-07-06z.zip
29648174fa1dd8d7b31bc55df8200c62 - forecasts/2026-06-07-00z.zip
efee69d59c08d31c6c95e76adb4d2a38 - forecasts/2026-06-06-18z.zip
71959c2ff4053ce1accc6186de89b236 - forecasts/2026-06-06-06z.zip
02a9668345a65ed40afc24eb15939a9b - forecasts/2026-06-06-00z.zip
4a5ae1528b700da3599ca4df666a2035 - forecasts/2026-06-05-18z.zip
3999ca725691673aa6deeca97021fadb - forecasts/2026-06-05-06z.zip
6c60f65602c03cbea0039e707206d63f - forecasts/2026-06-05-00z.zip
1c196242a8dc8e8fc71acb7a397fe5d6 - forecasts/2026-06-04-18z.zip
9879b791deda993ab4df4da06698af45 - forecasts/2026-06-04-06z.zip
f37a7a9ea92dc4dfac8510ae2e1782b1 - forecasts/2026-06-04-00z.zip
795dda2226b9016004aaade7ab1cd66c - forecasts/2026-06-03-18z.zip
6a34c0a7449660bd9062c251881fcb76 - forecasts/2026-06-03-06z.zip
a5795c4e27fc352a4b140844b5e80f64 - forecasts/2026-06-03-00z.zip
242e8aa51177753821fa1c762ca4a30f - forecasts/2026-06-02-18z.zip
bb4c46c8507125072c82b02d23ea427c - forecasts/2026-06-02-06z.zip
a8e42f54e3e9c87d3fc59e59b2dad572 - forecasts/2026-06-02-00z.zip
838b1668a39bef0f46577eedada898cc - forecasts/2026-06-01-18z.zip
02f3681283263c0bfe3588cf1ad1be44 - forecasts/2026-06-01-12z.zip
130f0990e1f9b25a31ebe7d8547c1779 - forecasts/2026-06-01-00z.zip
bb6de354fe9558eb1251f0736f465a91 - forecasts/2026-05-31-18z.zip
cc85e1ff2d221d2e632e2aa230c01287 - forecasts/2026-05-31-06z.zip
6775214441b716f53ace63ea8e6acdde - forecasts/2026-05-31-00z.zip
40ead58b0c574d58c0c8007f2c480118 - forecasts/2026-05-30-18z.zip
2cdfa9df589c3886506436d560d0f65e - forecasts/2026-05-30-06z.zip
eb76f900bdba721029cee7d520e9099f - forecasts/2026-05-30-00z.zip
35d1f79e83d63126b7de9db2f21b308b - forecasts/2026-05-29-18z.zip
5ecad218647b4c0459b4967b4c6c997c - forecasts/2026-05-29-06z.zip
dbc43272ab7640a3a2ee187533d60601 - forecasts/2026-05-29-00z.zip
2c177532d36b0b6a2be922c3d7cc69ce - forecasts/2026-05-28-18z.zip
58be03a22e5a4908ce6a9a7f388debd3 - forecasts/2026-05-28-06z.zip
7fdce7384f383b9f9fcbcc52ebeb080d - forecasts/2026-05-28-00z.zip
57f5b6b98b82d405df7c20a2443c242e - forecasts/2026-05-27-18z.zip
0a5695193ef357e2ed3bc4305b47267a - forecasts/2026-05-27-06z.zip
09e004b41d433b26b8eacee12a3baa6e - forecasts/2026-05-27-00z.zip
fcc7f01497105626604bf1396b3a9568 - forecasts/2026-05-26-18z.zip
033c5c3ee9647e0e2a2f9e2cfde5d642 - forecasts/2026-05-26-06z.zip
8b2717eb200e00b3ee210fecae2c3042 - forecasts/2026-05-25-18z.zip
abd64a8fb6a2eac543c646a0ded8d5f2 - forecasts/2026-05-25-06z.zip
46e4a6b6831da763c5394bf01253d890 - forecasts/2026-05-25-00z.zip
92af264072b3d6df56b85831f26e4e87 - forecasts/2026-05-24-18z.zip
5f9ab84e4cbe901b88aca9cba0e2d426 - forecasts/2026-05-24-06z.zip
223ab895e082962e222c9ea6d13be98e - forecasts/2026-05-24-00z.zip
6e0e7a7a5b0333dfd4868f642acae68a - forecasts/2026-05-23-18z.zip
a00138f56087889fdc19118d633117e8 - forecasts/2026-05-23-06z.zip
cb210202e5538eae9ee2157d2cec4592 - forecasts/2026-05-23-00z.zip
e0a4281e1a9e1dd143bd8185f40eab0d - forecasts/2026-05-22-18z.zip
6887d5956f5359481c529091401bd8d7 - forecasts/2026-05-22-06z.zip
0c86e6a3f52756f44f2f2efcb9e9d972 - forecasts/2026-05-22-00z.zip
aebaafcd9c20b80b889191f86e53b8e3 - forecasts/2026-05-21-18z.zip
326b8d6253df9577602abb313afd570b - forecasts/2026-05-21-06z.zip
598160c76ebe0e58f47dd1d606c570e8 - forecasts/2026-05-21-00z.zip
c8af4839672d1b093beaec4a66345bb9 - forecasts/2026-05-20-18z.zip
7fb87879881307d13ae8d6083a11ea62 - forecasts/2026-05-20-06z.zip
9a131d424c1a9641066f4a5dd373efe2 - forecasts/2026-05-20-00z.zip
1a87903ea0a934bae91464b43e6284a2 - forecasts/2026-05-19-18z.zip
f9c586d7ebccecfdb48cac06a9971fdf - forecasts/2026-05-19-06z.zip
18cae9e72a2ed986f179660bfc9b1e99 - forecasts/2026-05-19-00z.zip
687e6337a0f668fad954f614b2082a23 - forecasts/2026-05-18-18z.zip
6d24b70844a9c091cf87b5d3ad346079 - forecasts/2026-05-18-06z.zip
20e693f79231d5388c9537ee5b71ac89 - forecasts/2026-05-18-00z.zip
3b162ae08f4f5937d870dd49eb89d4b0 - forecasts/2026-05-17-18z.zip
dd9bc753c3bf30c9fa08951e012db681 - forecasts/2026-05-17-06z.zip
444d7b56fc6cf7c8c60ae8fb1114b356 - forecasts/2026-05-17-00z.zip
8ea1eaad726faa23ffbfa08af7b6a319 - forecasts/2026-05-16-18z.zip
25ac5333ebc5b914e5269830ca36d53f - forecasts/2026-05-16-06z.zip
7bdd77c63e335eb8497d159f0feffcdb - forecasts/2026-05-16-00z.zip
77885325fabcde8709a77ae8d9177c3a - forecasts/2026-05-15-18z.zip
9fb52c237e47a0a3a3fef43f7889a496 - forecasts/2026-05-15-06z.zip
346b571de7d7a642483c6b4a8f1a0e88 - forecasts/2026-05-15-00z.zip
29d1f192daca405bc6d4095cecebee0c - forecasts/2026-05-14-18z.zip
31e4a37c6f158531c2a811647f0c5c05 - forecasts/2026-05-14-06z.zip
90a4e0177614ad0174b0f9e62e1a9de9 - forecasts/2026-05-14-00z.zip
f479b35fcdf24c7a559b63599f3621c1 - forecasts/2026-05-13-18z.zip
29a481a2164b078cca2bfbbb7ed8e58c - forecasts/2026-05-13-06z.zip
046b22a69c0e3d43565809c3bc390ae8 - forecasts/2026-05-13-00z.zip
75ea53f3ebaa3c1f73b9f4c5d1266007 - forecasts/2026-05-12-18z.zip
47a10af97942deb358f39482583723d1 - forecasts/2026-05-12-06z.zip
49db253dd69dd0ba76221dcbb7411cee - forecasts/2026-05-12-00z.zip
ee9082a2e371506845f5afa5431c97ea - forecasts/2026-05-11-18z.zip
7aaef86052b85d556d7223a669dc4a31 - forecasts/2026-05-11-06z.zip
b2dfab2d1e2bc25723d0a17469c3f9ec - forecasts/2026-05-11-00z.zip
d68af98ab3248404088b57efbbcbe4ba - forecasts/2026-05-10-18z.zip
1ca82708635ce2aedfcbcf419af77791 - forecasts/2026-05-10-06z.zip
4ecf448010e4bf9bd90a92e15d25f7f8 - forecasts/2026-05-10-00z.zip
e07f0f458620fa0fb24f0cb86be27366 - forecasts/2026-05-09-18z.zip
7c5e170ec08a5efe28cf5112fca03d01 - forecasts/2026-05-09-06z.zip
61acc52491fa78753950fb474c25d082 - forecasts/2026-05-09-00z.zip
9a2038e994f45e9b5087e6dca081bdf5 - forecasts/2026-05-08-18z.zip
65060618a1068b4b0e07eb3aa2ee2de2 - forecasts/2026-05-08-06z.zip
06c85cfeac0a05e7d314433b69f789f0 - forecasts/2026-05-08-00z.zip
fafe81ea30d3471cc230ee050a0a677c - forecasts/2026-05-07-18z.zip
5d5156da132ac6921b04184294d6f38b - forecasts/2026-05-07-06z.zip
c13cabef006de5abbd76be5f965bdeb7 - forecasts/2026-05-07-00z.zip
8da40106392bca9a9d95e561d15cf648 - forecasts/2026-05-06-18z.zip
5a27c7fa4645faa772cb7543467cf9de - forecasts/2026-05-06-06z.zip
fab9a0f08a3746100a1e81270280bc07 - forecasts/2026-05-06-00z.zip
a1fc61119e337994b98ca3a2ebbed507 - forecasts/2026-05-05-18z.zip
fbeaffceef176d7a4a034b9c0a2ed97b - forecasts/2026-05-05-06z.zip
f5f3ef4fbaae01f687c7a6e3d1eed36a - forecasts/2026-05-05-00z.zip
405aa6d7bdefe5e8d7dfddffd8b4866a - forecasts/2026-05-04-18z.zip
cd191e5d903e6a6fbbf0e5ea34885db8 - forecasts/2026-05-04-06z.zip
f48be941c8664971aa610af3d00fc37a - forecasts/2026-05-04-00z.zip
9e85e6a6c6277ab875ae749b4dde1e7d - forecasts/2026-05-03-18z.zip
78c00e42b58cf028aaf8c9dbfb09d091 - forecasts/2026-05-03-06z.zip
9a5b384e3efe488c4b8bbe38dd959f44 - forecasts/2026-05-03-00z.zip
96197fae9566d8127ee832676f2a2658 - forecasts/2026-05-02-18z.zip
71b7dfe0a31eadb8578c95de88c767f6 - forecasts/2026-05-02-06z.zip
562cdcfcd2faac07f4f2b7d0b2a9ea4b - forecasts/2026-05-02-00z.zip
6f11b05937299e46781258ffd6bbae1c - forecasts/2026-05-01-18z.zip
50cf5dc72c98a065877f8c20e92c2403 - forecasts/2026-05-01-06z.zip
4dd002261fcd4eadf400eb868b2fe7ee - forecasts/2026-05-01-00z.zip
d03a5b40e41385f90172d107fce3a4bb - forecasts/2026-04-30-18z.zip
40211ab7df14271a68050451c1673b22 - forecasts/2026-04-30-06z.zip
00938c3593abc0d4d1977b409f9cb1aa - forecasts/2026-04-30-00z.zip
b0b44a74f4815abb5260e2cd0ee3b788 - forecasts/2026-04-29-18z.zip
f88e83ff9a0cc21b20e2651d08b916a3 - forecasts/2026-04-29-06z.zip
e99b5602918e5515bef2785e2f8b611c - forecasts/2026-04-29-00z.zip
d728005a0c5aa46372a3986d976b8fe4 - forecasts/2026-04-28-18z.zip
e4d98b4e1f7b55a018c73a54cc58336e - forecasts/2026-04-28-06z.zip
d4246a6a7a09e81cee48e77cb711a130 - forecasts/2026-04-28-00z.zip
d3b6329cb7942448a013bfb4e4a000d2 - forecasts/2026-04-24-00z.zip
e291284b48f34eefc7a7eb637669466d - forecasts/2026-04-23-18z.zip
1091d374d8bef07c5df956f5e52a9036 - forecasts/2026-04-23-06z.zip
aefe289a9e7a92f139dba3b6de18cecc - forecasts/2026-04-23-00z.zip
4d8fe183180942ce902ea38c311b920c - forecasts/2026-04-22-18z.zip
9c8b1024b3b9c9870b26ddce202bf27b - forecasts/2026-04-22-06z.zip
f825ce231c249063bb1c3d03968f99d4 - forecasts/2026-04-22-00z.zip
4aa5a9574257c0fc6d5eb9f0f7e61598 - forecasts/2026-04-21-18z.zip
a93d03e4672784bebfa1100085ff552d - forecasts/2026-04-21-06z.zip
68aa7beeddf64d782456d99b08a7799b