marola research / 2026-10-14

marola-bench

a proposal for a WeatherBench for Brazil

One scorer, Brazilian truth, and a ranking rule written before the scores

DOI10.5281/zenodo.23352633

An empty chart: a time axis, a score axis and a dashed line for the climatology floor. No series is drawn.
The bench today. A series for each forecaster at each point will be drawn here. None is: v0 (a proposal, not peer reviewed; no score has been computed).

Read the paper (PDF)The research on GitHub

marolaouroboric

What the bench is

“The bench are the score series performed by any Forecaster, Registered by an Actor.”

Matheus Hoffmann, the owner

A score is one forecast compared with one observation. A series is those scores in order of time, for one forecaster, one point, one variable and one lead. The bench is all the series, and it is the final goal: the points, the actors and the cloud exist to make it.

Three things the public benchmarks do not have

the paper, sections 1 and 2

WeatherBench, WeatherBench 2 and Operational WeatherBench made weather models comparable. marola-bench keeps their method: one scorer, a truth that is stated one time, fixed leads and regions, a rule written before the scores. It changes three things.

  • A region that is Brazil

    The operational scoreboard offers the globe, the tropics, the two hemispheres, North America and Europe.

  • A score for waves

    Its variables are of the atmosphere. marola forecasts the sea.

  • An instrument as the truth

    There, a model is scored against its own analysis. Here, against what a buoy or a station measured.

The owner's rules. They are not open to an agent's choice. Five of them change the design that was accepted the same day, and the paper says where; a new design document must settle the rest before code is written.

  1. marola-bench is implemented in Apache Pekko, in Scala 3.
  2. marola-bench is implemented on GCP, and developed with Claude Code, with an SDD (spec-driven development) framework.
  3. Its infrastructure as code is defined with Besom.
  4. marola-bench lives here, in marola-research/marola-bench. The first rendered paper is here.
  5. The deployment of the Pekko cluster is cheap and reliable. Both are hard requirements, and so is its infrastructure on GCP.
  6. marola-bench is all rights reserved, and the credit belongs to Matheus Hoffmann. No sharing outside marola-dev and ouroboric-dev without his acknowledgement. Whoever uses it cites it.
  7. Ponytail 5 is adopted as the coding assistant, a Claude Code plugin (the owner, 14 October 2026).
  1. A person adds a point. A buoy or a station, through an API. By hand, because a point has an instrument, a quality flag and a licence, and somebody must read the terms.
  2. The point gets an actor. One small program for one point. It knows when the next observation is due.
  3. The actor asks the forecasters. The providers that publish a model today, and marola's own forecaster later. It asks all of them the same way.
  4. The actor registers a score. One forecast against one observation. A score that was registered is not edited.
  5. The scores are the series, and the series are the bench. marola's forecaster is in it as one forecaster among the others.

Cheap, and reliable

the paper, section 4.4

Reliability is what makes it cheap.

Cheap capacity on a cloud is the kind that can be taken away. A cluster that survives the loss of any node can use it. So the two requirements are one piece of work: first survive the loss of a node, then buy the cheap nodes. The four properties of a reactive system are used for both.

PropertyCheapReliable
Message drivenAn actor that waits uses no processor.One failed point or provider does not stop the others.
ResilientA node may be lost, so capacity that can be taken away is usable.An actor's state is its stored events: no score is lost with a node.
ElasticAn idle actor is stopped. Memory follows the work, not the number of points.More points do not need a larger design.
ResponsiveNo capacity is kept for a peak.An answer that does not come in time is a row that says missing, never a guess.

These are proposals for the next design document. Nothing has been priced, and no cluster exists.

Where it stands

the journal
  • doneThe proposaldraft, v0 (a proposal, not peer reviewed; no score has been computed).
  • doneThe references35 of them, each read against a passage of its own text.
  • doneThe accepted designMIP-0091, in marola's main repository.
  • openA design for the hard rulesHow Pekko, GCP and Besom meet the accepted design.
  • noneCodeNone yet.
  • noneObservation pointsNone yet.
  • noneScoresNone yet.

Public weather benchmarks made forecast models comparable, but for a person on a Brazilian beach three things are missing in them: a region that is Brazil, a score for ocean waves, and an instrument as the truth. This paper proposes marola-bench, which keeps the method of WeatherBench, WeatherBench 2 and Operational WeatherBench and changes those three things. The bench is defined as the set of score series: the scores of any forecaster against the observations of a point, in order of time. Observation points are added by hand, and one actor for each point asks the forecasters and registers the scores. The paper states seven hard rules of the owner: five for the implementation (Apache Pekko and Scala 3, GCP, Besom, a home in this repository, a cheap and reliable cluster), one for its terms (all rights reserved) and one for its coding assistant (Ponytail 5, a Claude Code plugin). It says where they change the accepted design, MIP-0091. It reports no result: no forecast has been scored, and nothing has been built.

  1. Summary
  2. What is copied, and from whom
  3. The proposal
  4. The system: the bench, the points and the actors
  5. From a scoreboard to one forecast
  6. Conservative, and safe outside the forecaster
  7. Why this is open
  8. The order
  9. What is not known
  10. Where the thesis comes from

The preview does not show on every phone. Open the PDF or download it.

One idea in one note, linked to other notes, each with how far it was checked. The paper is written from them.

One entry for each challenge met: what was hard, the options, the decision, the result and the lesson. What went wrong is an entry too.

No reference is cited before it is fetched. For each one, a passage of its own text that supports the claim was read, and the log quotes it and says how much of the source was read.

  • 35references
  • 6read as full text
  • 9read as an abstract
  • 20read as a page or a record

Checks

all runs

A change to the paper is a proposal first. Machines read it, then a person decides. The same checks run on the proposal and on the main branch, and each badge is the state of that check now.

  • pdf: the state of its last runthe paper builds, every reference has its row and is cited, and the PDF is the one its text makes.
  • .md: the state of its last runstructure, plain words and links to files, in every Markdown file; the notes keep their rules.
  • live links: the state of its last runevery web link answers.
  • site: the state of its last runthis page builds from the research's files and its tests pass.

What is not known

the paper's last sections

Every paper here ends with what is not known. For this one, from its own list:

  • What the seven hard rules leave open
  • What section 4 leaves open
  • The name
  • The licence of the scorecards
  • How deep the reading was
  • An analysis as a second truth

Whoever uses this work, a person or an agent, cites it: the author, the title, and the DOI as a link.

Matheus Hoffmann (2026). marola-bench: a proposal for a WeatherBench for Brazil. Zenodo. https://doi.org/10.5281/zenodo.23352633