Proposal:Milk types
| Milk types | |
|---|---|
| Proposal status: | Draft (under way) |
| Proposed by: | Trainsgender |
| Applies to: | |
| Definition: | The types of milk offered, used in drinks like coffee or hot chocolate. |
| Rendered as: | Not rendered. |
| Draft started: | 2025-02-24 |
Proposal
This proposal aims to unambiguously indicate the types of milk (both animal and plant-based milks) a customer can choose to have included in beverages like coffee, hot chocolate or tea, at places like a restaurant, café or shop. Milk sold as a drink on its own is out of the scope of this proposal, as this can already be indicated with drink:*=*.
Rationale
Currently, drink:*=* is sometimes used to indicate this, but this creates ambiguity. For example: if a coffee shop is tagged with drink:oat_milk=served, does this mean the business serves oat milk, or one can get oat milk in coffee? Common sense would imply the latter, but the definition of drink:*=* implies the former. This creates ambiguity, which is even more problematic in cases like drink:hot_milk=*.
Therefore, I suggest to use a different tagging scheme to specifically indicate what types of milks are used in milk-based beverages. I propose to use subkeys of milk:*=* with values similar to those used in the drink:*=* scheme, allowing one to indicate whether this type of milk applies to served drinks, sold drinks, takeaway drinks etc.
I see two main use cases for including this information in OSM:
- Dietary restrictions, such as veganism.
- Allergies: common allergens include lactose, casein and soy.
While some of this can already be indicated with the diet:*=* scheme, it does not specifically cover milk-based drinks. For example, a coffee shop might not offer any vegan cakes, therefore not qualifying as diet:vegan=yes, but might offer plant-based milks in their coffee.
Tagging
This tagging scheme is intended to be extendable. Proposed tags for some common types of milk:
- Animal origin:
- Plant-based:
milk=* (without any subkeys) could be used as well, but it provides very little information over just not adding this information at all. An exception is milk=no, which can be used to indicate that no milk is offered where it would be expected.
A note on spelling: the hyphen in milk:plant-based=* is intentional. The common spelling of “plant-based” is with a hyphen, not a space (see Wiktionary).
Examples
There's no uses of these tags in OSM as of yet, because an automated edit prevents their use; see changeset 162571268, where I tried to introduce this tag on a coffee shop. (There's no changeset discussion because I discussed this automated edit in personal communication with the user.)
Rendering
This tag shouldn't be rendered on general-purpose maps, it could be rendered on maps specifically aimed at showing vegan-friendly, lactose-free etc. places.
Features/Pages affected
The introduction of this tagging scheme would mainly affect:
drink:*=* would also need to be updated to clarify the difference between drink:milk=* (and similar keys) and milk:*=*.
External discussions
This scheme has been discussed in the OSM BE Matrix room (https://matrix.to/#/#osmbe:matrix.org).
This proposal was presented as a Lightning Talk at State of the Map 2026 (Paris, France).
Comments
Please comment on the discussion page.