Proposal talk:Milk types
milk:plant-based: Use underscore rather than hyphen
According to Any tags you like#Syntactic conventions for new tags, milk:plant-based should actually be written with an underscore rather than a hyphen, i.e. milk:plant_based :) Havelock Vétérini (talk) 20:03, 30 August 2026 (UTC)
- yep, I came here to say that! :) Amᵃᵖanda (talk) 09:16, 2 September 2026 (UTC)
- The hyphen is intentional. According to Wiktionary, “plant-based” is spelled with a hyphen, not with a space. In places that do not support spaces, such as OSM tags, underscores generally represent spaces only, not hyphens.
- So the question is whether we adhere to OSM tagging practices (by using an underscore) or to common English spelling (by using a hyphen). Trainsgender (talk) 23:27, 10 September 2026 (UTC)
- Are there examples of similar tags with hyphens in OSM? Or examples of tags with underscores, which represent words spelled with hyphens in the real world? Nielkrokodil (talk) 14:32, 18 October 2026 (UTC)
- There appear to be some: Taginfo shows heavy use of the hyphen in language codes within tags, as well as in GTFS-related tags. The hyphen is also used in various `ref:*=*` keys, in cases where the original string contained a hyphen: `ref:sous-surveillance_net=*`, `ref:FR:prix-carburants=*` … Some other tags exist too: `strassen-nrw:abs=*`, `payment:china_t-union=*`, `communication:gsm-r=*`, `ISO3166-2=*` …
- The keys given here as examples have between 5,600 and 632,000 uses worldwide and illustrate the reasoning I used earlier: that hyphens are frequently used in OSM keys and values, where the original string had a hyphen, and that underscores mainly represent spaces. Trainsgender (talk) 16:26, 18 October 2026 (UTC)
- The one that comes to mind is
service=drive-through, not to be confused withdrive_through=*. Oof. Minh Nguyễn 💬 00:44, 20 October 2026 (UTC)
- Are there examples of similar tags with hyphens in OSM? Or examples of tags with underscores, which represent words spelled with hyphens in the real world? Nielkrokodil (talk) 14:32, 18 October 2026 (UTC)
Changing drink:raw_milk / drink:soy_milk
I am wondering whether the existing drink tags, e.g. drink:soy_milk or drink:milk, should also be deprecated by this proposal and move to drink:milk:soy and drink:milk:animal respectively for better coherence. This could also be a way to introduce new tags under drink, such as drink:milk:oat (drink:oat_milk has a few taginfo usages, but no documentation).
But how would we handle the case of raw milk? Should it be milk:animal/cow/camel:raw and / drink:milk:animal/cow/camel:raw ? Havelock Vétérini (talk) 10:55, 31 August 2026 (UTC)
- As for the first question: I think this would be a good idea to keep things coherent, but I'm unsure as to whether to include it in this proposal, or attempt it later as a separate proposal.
- For raw milk, I see two options: either we come up with a convention as to whether “milk” implies by default that the milk is raw, pasteurised, UHT-treated, etc., or we agree that “milk” does not imply any of these and tags like
milk:<type>:raw=*can be used to add this information. In any case, I think this is outside of the scope of this proposal and should get its own proposal and/or discussion. Trainsgender (talk) 23:35, 10 September 2026 (UTC) - I fully agree to include the `drink:*` tags to use identical terms as subkeys, e.g.
drink:milk:oat=*. This shouldn't be a problem as thedrink:*_milk=*tags never have been properly introduced nor documented. - Regarding the raw / treated question it might be good to put this into the value instead of introducing another ton of keys:
drink:milk=yes / no / raw / uht / pasteurizedMueschel (talk) 10:23, 19 October 2026 (UTC)
milk:plant-based=yes/no & subkeys
Documentation improvement: I presume the milk:plant-based=yes (& {{tag|milk:animal||yes)} tag would be implied if any one of the tags has a subkeys has a yes, right? i.e.milk:oat=yes would imply milk:plant-based=yes.
likewise milk:plant-based=no would imply milk:oat=no. Amᵃᵖanda (talk) 09:22, 2 September 2026 (UTC)
Future Idea: Oat milk doesn't cost anything more
I've heard that some places will charge extra for switching a drink to oat milk. This could be tagged with milk:plant-based:fee=(, but I don't think this is needed right now for this version Amᵃᵖanda (talk) 10:08, 2 September 2026 (UTC)
yes/no)
- This was my idea from the beginning, I just thought I'd give it its own proposal after this one. Trainsgender (talk) 23:29, 10 September 2026 (UTC)
milk=no → no milk here?
The proposal says (& I agree with it)
milk=*(without any subkeys) could be used as well, but it provides very little information over just not adding this information at all.
but could we define milk=no to mean “This is a place where you would expect to get drinks with milk, but this place does not offer any milk products”?
Imagine a MapComplete/StreetComplete task to add the availability of oat milk to venues. They would need an option of “No there is no milk here at all” Amᵃᵖanda (talk) 07:38, 17 September 2026 (UTC)
- Good suggestion, I've added it to the proposal. Trainsgender (talk) 15:21, 20 September 2026 (UTC)
a1 and a2 animal milk
In the US I have started to see milk advertised to have only A2 β-casein (or A1), I've heard that some people that are lactose intolerant find that they can drink cow milk without the A1 (so only A2) and not have issues. So it may be helpful to be able to specify that a business offers drinks using A2 only milk for those that prefer that, so something like milk:cow:a2=* and milk:cow:a1=* could be useful to be able to tag. Though I understand if that is a future proposal. Though with out without this I support this proposal. Udarian (talk) 23:52, 18 October 2026 (UTC)
- A1/A2 is not related to lactose free milk, this is a different property. However I'd like to suggest to also include the topic of lactose free milk (and A1/A2) here - we already have
diet:lactose_free=*but this might be too broad in the context of shops also selling food. Mueschel (talk) 12:28, 19 October 2026 (UTC)
Milk as an additive
From what I understand, this proposal considers its scope to be milk that isn't sold separately, but part of a different beverage like coffee or hot chocolate. To me, this doesn't become clear by the naming choice of milk:*=* which I would certainly mistake for a wrong tagging of drink:milk=* if I didn't know about this proposal, like has already happened in your mentioned changeset.
I'm also thinking more broadly about other additives like sugar which are commonly served with coffee. While it's technically out of scope, I think that provides a hint at a more general rule.
As a constructive suggestion, there is the additives:*=* namespace, e.g. additives:milk:cow=yes. Other additives would remain out of scope.
Thank you for bringing this topic to attention! Jofban (talk) 06:41, 19 October 2026 (UTC)
- “As a constructive suggestion, there is the additives:*=* namespace“
- I think the bare
milk=*is fine. I know OSM is “British English as interpreted by Germans”, but if you did want to namespace it, I'd suggestingredient=*instead ofadditive=*(Additive is the wrong word here) Amᵃᵖanda (talk) 09:29, 19 October 2026 (UTC)- "I think the bare
milk=*is fine" - Is it really that easy to disregard two instances where it wasn't fine?
- As for the word additive, it does see use in this context ([1][2]). Both words seem to be used interchangeably. I would argue that additive puts more emphasis on the choice, where an ingredient is non-negotiable. I've also been thinking about
extras:*=*. Jofban (talk) 10:03, 19 October 2026 (UTC)- Native English speaker here. Additive does not conventionally mean something one can add optionally to a food or drink item. In a food context it usually refers to things which you would not usually find in the particular item. Examples include vitamins added to breakfast cereals; chemicals which extend the shelf life of products, such as bread: artificial flavourings and colourings. Nearly all such chemicals will have an E-number. I suspect this is a false friend. ---- SK53 (talk) 12:43, 19 October 2026 (UTC)
- > As for the word additive, it does see use in this context ([1][2]). Both words seem to be used interchangeably
- I ran a poll on the OSM fedi/mastodon. 78 people (95%) think the words “additive” & “ingredient” are different things, only 4 people (5%) think they are the same. Amᵃᵖanda (talk) 16:31, 27 October 2026 (UTC)
- "I think the bare
Optional side-category vs Supra-category
As milk:*=* and theoretically milk=* is proposed, why not directly invent animal_milk:*=* vs plant_milk:*=* (and animal_milk=* vs plant_milk=* )? I know "milk" can include plant-based, but I imagine many users would assume milk=no means only no animal milk. And in some languages, some plant milk commonly aren't seen as plant "milk" (eg rice can be a "syrup", and coconut a "juice"). drink:milk=* and vending=milk must be mostly animal/cow milk.
Furthermore, animal_milk:*=* and plant_milk:*=* are more scalable to identify what newly-added milks are. That's less namespaced than milk:animal:*=* and milk:plant-based:*=* for over-namespacing concerns.
Kovposch (talk) 10:57, 19 October 2026 (UTC)
dairy milk options
I understand this proposal is more focused on the dairy alternatives, so this isn't something that needs to be in this proposal, but for the future how we could capture things like full cream (higher fat content) vs skim (lower fat content) as options provided? I'm thinking milk:cow:full_cream=*, milk:cow:skim=*. We could then do milk:cow:lactose_free=* (see above a1/a2 topic). Aharvey (talk) 00:04, 20 October 2026 (UTC)
Can this be applied to ice cream shops?
I really like this proposal and support it as written.
I had one question: in your opinion as the author, can the proposed tags be applied to amenity=ice_cream locations to indicate which types of milk they use? The main difference I see between this and coffee shops (which are presumably the most common use case for the new tags) is that coffee drinks are usually made to order, whereas ice cream is usually made in advance in batches, though there are probably exceptions to both generalizations. Nonetheless it seems like the tag could be usefully applied to either situation.
As an aside: boba (bubble tea) are another establishment that would benefit from these tags. Lots of boba shops pre-mix their tea drinks in large batches, which means they tend to have more limited milk options than coffee shops (at least where I live). Being able to tag boba shops that offer alternative milks would be great!