every_door icon indicating copy to clipboard operation
every_door copied to clipboard

payment:free=yes

Open RayBB opened this issue 6 months ago • 1 comments

Someone reached out to me asking why I have added payment:free=yes to some nodes in osm.

After poking around a bit I realized at some point I set free as a payment method in everydoor and have accidentally added it to quite a few nodes.

What is the payment:free=yes for in the everydoor app? Is that a regional payment method?

Based on a cursory look, I think some others (https://www.openstreetmap.org/node/12052692505) have accidentally used this setting in everydoor to mark something as free.

Perhaps, that should use fee=no under the hood or there should be a way to mark things as free?

In any case, thanks for developing this app. I enjoy it a lot and look forward to vector tiles as well!

RayBB avatar Jun 23 '25 19:06 RayBB

Perhaps, that should use fee=no under the hood or there should be a way to mark things as free?

Well, if they are often free, then they should have fee=* field defined in id-tagging-schema, like e.g. amenity=parking has. Then, Every Door will ask if the fee is yes or no, and users will choose that.

If some other amenity misses fee tag (and it makes sense to show it), feel free to open an issue or even PR on id-tagging-schema repository, and it will get used by next version of EveryDoor (and many other editors).

Problem is when certain things, like shops, do not have fee=* field in in-tagging-schema because it makes no sense for them to have it due to it being extremely rarely free (e.g. because like 99.9999% of shops are fee=yes so it does not make sense to ask for fee there). So people might tag shop=clothes on them even if they are giving away free clothes, for example.

But shops do have field payment:* in id-tagging-schema so that gets offered (with all values existing in the wild, including unfortunately nonsense paymant:free=*).

Since there is no "fee" field, but there is "payment" field, many users (yourself included, looks like) will search for "none" or "free" payment method there, and add that. And it results in such problematic data :-(

I've now updated wiki at https://wiki.openstreetmap.org/wiki/Key:payment:*#Others to also indicate payment:free as an synonym of problematic payment:none; but it will only help if people read that page, which many won't. 🤷

For that specific shop example, there exist better values like shop=charity, or amenity=freeshop and there are similar things like e.g. amenity=give_box.

But users will only find those if they look for them explicitely (e.g. "Charity Store"). If they look for "clothes store" (or open shop already tagged as shop=clothes), they will be in problem explained above if they wanted to mark they things are free to pickup there without payment.

What is the payment:free=yes for in the everydoor app? Is that a regional payment method?

No... EveryDoor shows it because it exists in the OSM database and has more than 30 uses, even if it is undocumented (as there are many undocumented tags which are still useful).

As noted above, payment:free=yes is unfortunate accident. One could use EveryDoor raw tag editor to add fee=no (and preferably note=* explaining what is exactly meant by that, i.e. is it a charity shop or whatever), but it will only happen if they are aware of the problem.


As for the possible solutions to the problem:

  • One might be automated edit which would remove or replace those payment:free=yes or payment:none=yes

    But iD, EveryDoor and other editors will likely re-add them (you can add any value, like payment:RayBB=yes just by typing it in, even if it was never used before, due to ATYL OSM policy). That policy has some very good sides (as you can start adding data for your local payment card which is not popular worldwide), but as can be seen in this examples, also has problematic side (like misunderstanding like in this case, or accidental typos as another category of problems).

    So it would need to be periodic bot which does that automated edit, otherwise you'd be on square one in several month when users would add none and free payment values again.

  • Another alternative would be a machine readable list of deprecated tags and then make sure it is consumed by Every Door, iD, Vespucci, JOSM and other editors; which they would then use to warn user that probably did not intend to do that, but something else, linking them to documentation.

But either of those is not trivial amount of work, and someone would have to volunteer to do it.

  • Yet another possible workaround would be to have fee=* available on every OSM element, including those where it almost never makes sense. Then it would be prominently shown always and users would be much less likely to look for rare payment:* values instead. But that has obvious disadvantages too, and many people might object to such "solution".

mnalis avatar Jun 23 '25 23:06 mnalis