Skip to content
Grepobot

Automation lane

Market

This is the clearest case for the whole design, so it is worth spelling out.

On the market

380 wood for 300 silver

Warehouse comfortable

Nothing waits on wood.

Refused

Costs silver the harbour needs.

Trireme blocked on wood

The rest is paid for.

Taken

Ship finishes 2h 55m sooner.

Why a ratio setting is the wrong control

Every trading bot in this game asks you for a ratio: take anything better than 1.2 to 1, say. The trouble is that the same trade is a different decision at different moments. Three wood for one silver is robbery when your warehouse is comfortable. It is a bargain when wood is the only thing standing between you and a finished trireme, and the trireme is what the town is for.

A threshold cannot see that difference, because the only thing it is looking at is the ratio. Grepobot prices the offer in seconds removed from the town's goal, which is why it will take the three-to-one when it matters and refuse a one-to-one an hour later.

The listing is global, the cache was not

A market offer belongs to the market, not to your town — so two of your own towns looking at the same cached listing could both decide to take it, and the second spend would land somewhere you did not intend. The listing cache is now shared, which is the only way that arithmetic is correct.

Merchants are the scarce thing

A trade is not free even when the rate is good: it occupies merchants, and merchants are what every other trade in that town is waiting for. So a market action is scored per merchant rather than per resource, and a marginally good offer that would tie up the whole fleet loses to a better one that fits.

What it does not do

  • Grepobot accepts offers other players have posted. It does not post offers of its own.