Stapel

Nederlands

Contribute

Something is missing. Where does it go?

Almost none of it belongs to us, and that is on purpose. Only a missing chain has no upstream.

Four cases, three different destinations.
What is missing Where it goes Why there
A branch of a chain we already know OpenStreetMap Fixes it for everyone and returns through the normal build
A shop that has closed OpenStreetMap The only route that fixes closures at the source. We cannot see them
A chain or brand missing entirely To us There is no upstream. This is the catalogue, and it is ours
One local shop round the corner Nowhere Pin it in the app. That works completely and needs to go nowhere

A shop that is missing or closed

Add it to OpenStreetMap, with the editor on the site or with StreetComplete on your phone. What helps: the brand name exactly as the chain writes it, and the correct shop type. We fetch stores through Wikidata brand identifiers, so a correct brand tag arrives.

In the meantime: pin it yourself

Open your card at the till while no known store of that chain is nearby, and the app asks whether you are standing there. One tap, and arrival detection works with it immediately.

  • The coordinates are the record; an address is decoration. Everything works without one.
  • Pins live in their own table, which the sync never touches.
  • They outrank bundled stores when proximity alerts are armed.
  • If the shop later arrives through OpenStreetMap, your pin is superseded rather than deleted, and you are told it landed.

A chain that is missing

The catalogue holds 49 researched Dutch chains, 39 of them with a card. If one is missing, or a colour or name is wrong, that is a real bug; six programmes were renamed during 2025 and 2026.

Send this, or as much of it as you know:

{
  "key": "fitfun",
  "name": "Fit&Fun Ledenpas",
  "chain": "Fit&Fun",
  "aliases": ["Fit en Fun", "FitFun"],
  "colorHex": "#1D4E8F",
  "icon": "fitness_center",
  "preferredFormat": "CODE_128",
  "kind": "MEMBERSHIP",
  "confidence": { "color": "guess", "format": "guess" }
}
  • key — short, lowercase, unique. We will invent one if you do not.
  • name is what the programme is called, chain is what the shop is called. Often not the same thing.
  • colorHex — the brand colour, if you have a source. Without one, leave it out rather than guess.
  • icon — a name from Material Symbols. The build rejects a name that does not exist.
  • preferredFormat — only if you actually know. For 36 of the 49 chains this is an assumption, which is why it counts only as a hint for hand-typed numbers.
  • kindLOYALTY, VOUCHER or MEMBERSHIP. A paid subscription is not a points card.
  • confidence — be honest here. guess is a fine answer and far more useful than a wrong verified.

The shape of a store record

Records are positional arrays: across twelve thousand records, key names cost more than the data.

["ah", 52.38312, 4.88594, "Haarlemmerdijk 108", "1013JG", "Amsterdam"]
 chain key, latitude, longitude, street, postcode, city

Coordinates carry five decimals, about a metre. Street, postcode and city may be empty; the coordinates never are.

Where to send it

An issue on the repository, preferably. It costs you no email address, the JSON pastes as a code block, and you can watch what happens to it.

Open an issue

Rather send mail? hallo@square-management.nl. A dedicated address, never a personal one. An issue is still better, because you can follow it, but not everyone wants an account on a code site to pass on a shop address.

What happens when you send something

  • From inside the app, a suggestion is attached to a mail that you send. You see what is in it and can cancel. The app sends nothing itself and never learns your address.
  • One item per message, never in bulk. A bulk export of every shop you pinned is a map of where you shop and when.
  • A suggestion for the store database may be published under the ODbL. The app says so at the moment of sending.
  • Hand triage is fine up to roughly five to ten submissions a week.

Are you a chain?

If you would rather not see your name, colour or logo here or in the app, we take it out. One message is enough. If you would rather your real logo were shown, that needs written permission, recorded per entry with its source and licence.