Skip to content

Exclude stop field for stop signs in Bulgaria#1539

Open
Dimitar5555 wants to merge 1 commit intoopenstreetmap:mainfrom
Dimitar5555:patch-4
Open

Exclude stop field for stop signs in Bulgaria#1539
Dimitar5555 wants to merge 1 commit intoopenstreetmap:mainfrom
Dimitar5555:patch-4

Conversation

@Dimitar5555
Copy link
Copy Markdown
Contributor

Description, Motivation & Context

All stop signs in Bulgaria are stop=minor. The literal meaning of the stop sign according to local law is "Stop! Give way to the priority road" so "all ways stop" should be an impossible situation.

Related issues

none

Links and data

Relevant OSM Wiki links:
n/a

Relevant tag usage stats:
There were 14 uses in Bulgaria of which 11 tagged as minor (some of them being on residential crossroads, go figure which one is "minor"), 1 incorrectly tagged as all and 1 of each forward and backward. The highest usage was around 35 uses in Jan 2022.

image

https://taginfo.geofabrik.de/europe:bulgaria/keys/stop

Checklist and Test-Documentation Template

Read on to get your PR merged faster…

Follow these steps to test your PR yourself and make it a lot easier and faster for maintainers to check and approve it.

This is how it works:

  1. After you submit your PR, the system will create a preview and comment on your PR:

    🍱 You can preview the tagging presets of this pull request here.
    If this is your first contribution to this project, the preview will not happen right away but requires a click from one of the project members. We will do this ASAP.

  2. Once the preview is ready, use it to test your changes.

  3. Now copy the snippet below into a new comment and fill out the blanks.

  4. Now your PR is ready to be reviewed.

## Test-Documentation

### Preview links & Sidebar Screenshots

<!-- Use the preview to find examples, select the feature in question and **copy this link here**.
     Find examples of nodes/areas. Find examples with a lot of tags or very few tags. – Whatever helps to test this thoroughly.
     Add relevant **screenshots** of the sidebar of those examples. -->

<!-- FYI: What we will check:
     - Is the [icon](https://github.com/ideditor/schema-builder/blob/main/ICONS.md) well chosen.
     - Are the fields well-structured and have good labels.
     - Do the dropdowns (etc.) work well and show helpful data. -->

### Search

<!-- **Test the search** of your preset and share relevant **screenshots** here.
     - Test the preset name as search terms.
     - Also test the preset terms and aliases as search terms (if present). -->

### Info-`i`

<!-- **Test the info-i** for your fields and preset and share relevant **screenshots** here.
     The info needs to help mappers understand the preset and when to use it.
     [Learn more…](https://github.com/openstreetmap/id-tagging-schema/blob/main/CONTRIBUTING.md#info-i)
 -->

### Wording

- [ ] American English
- [ ] `name`, `aliases` (if present) use Title Case
- [ ] `terms` (if present) use lower case, sorted A-Z
<!-- Learn more in https://github.com/openstreetmap/id-tagging-schema/blob/main/GUIDELINES.md#2-design-the-preset -->

All stop signs in Bulgaria are `stop=minor`. The literal meaning of the stop sign according to local law is "Stop! Give way to the priority road" so "all ways stop" should be an impossible situation.
@github-actions
Copy link
Copy Markdown

github-actions bot commented May 7, 2025

🍱 Your pull request preview is ready

Please use this preview to check your changes. Ideally use the test documentation template and document your test results by commenting on the PR. This will speed up the review process for everyone.

FYI, once this PR is merged, you can use the iD Editor Preview to test your changes in interaction with all other changes.

@1ec5
Copy link
Copy Markdown
Contributor

1ec5 commented May 7, 2025

As far as I know, there isn’t a default implied value of stop=* globally. It isn’t the case that a missing stop=* necessarily means stop=all, especially since highway=stop can be tagged at the stopline rather than the intersection node. In fact, existing routers don’t differentiate local legal expectations when applying penalties for highway=stop. Are you sure stop signs should not be tagged stop=minor under any circumstance? Or would it be reasonable to define a Bulgaria-specific preset that automatically applies stop=minor without providing a field to change it to stop=all?

@Dimitar5555
Copy link
Copy Markdown
Contributor Author

From what I've seen stop signs are rarely mapped at the intersection node. Does this field make sense when the sign is not at the intersection?

Are you sure stop signs should not be tagged stop=minor under any circumstance?

Legally there shouldn't be such cases. In practice officials don't always follow the law and they might create stop=all junction...

@Dimitar5555
Copy link
Copy Markdown
Contributor Author

Sidebar screenshot:
https://www.openstreetmap.org/node/7899835401
image

@1ec5
Copy link
Copy Markdown
Contributor

1ec5 commented May 7, 2025

From what I've seen stop signs are rarely mapped at the intersection node. Does this field make sense when the sign is not at the intersection?

The documented tagging scheme is counterintuitive: effectively, an all-way stop should be tagged as stop=all on the intersection node, but a two-way stop should be tagged as stop=minor on each stopline. Implicitly, a data consumer can infer that any intersection node is stop=all and any other node is stop=minor, unless otherwise specified. This appears to be how routers are treating the key, though renderers may be doing something different. (Regardless of the documentation, some mappers are mapping all stop signs at the stoplines for consistency.)

Legally there shouldn't be such cases. In practice officials don't always follow the law and they might create stop=all junction...

That sounds similar to the situation with highway=give_way in some jurisdictions. What does it even mean for everyone to give way to everyone else? 😵‍💫

@tordans tordans added waitfor-consensus there seems to be no clear consensus on this in the osm communtiy; this has to wait preset labels May 23, 2025
@Dimitar5555
Copy link
Copy Markdown
Contributor Author

I've looked up the local legislation again. It turns out that placing stop signs is allowed in very few cases. Namely, when there is limited visibility and/or in junctions with high concentration of traffic accidents. Even then, the name of the sign remains "Stop! Give way to traffic on the priority road!".

The only 2 mentions of stop signs in the road design ordinance

https://lex.bg/bg/laws/ldoc/2137187173

REGULATION No. RD-02-20-2 OF 28 AUGUST 2018 ON ROAD DESIGN
Effective as of 26.10.2018
Issued by the Minister of Regional Development and Public Works

Published State Gazette No. 79 of 25 September 2018, amended State Gazette No. 90 of October 30, 2018, amended State Gazette No. 38 of April 24, 2020, amended and supplemented State Gazette No. 33 of April 12, 2024


Art. 113. (1) The field of visibility shall be determined by the distance of visibility in the secondary direction in accordance with Figure 42a and Figure 42b.

...

(10) At intersections where visibility cannot be ensured by the traffic organization design, a B2 "Stop! Give way to traffic on the priority road!" sign and an M6 "Stop line" sign shall be installed.


Art. 128. (1) A "roundabout" may be defined as (legal definition).

...

(3) The design of new roundabouts and major repairs to existing intersections shall be carried out under the following conditions:

...

  1. in the event of a concentration of traffic accidents at intersections on Class III roads and local roads, where the placement of signs B2 "Stop! Give way to traffic on the priority road!" ("Stop" sign) or B1 "Give way to traffic on the priority road" ("Give way" sign) does not improve the situation;

Translated with DeepL.com (free version)

The closest thing to "all way stop" is "junction of roads of equal importance" but it's definition tactically avoids all way stops.

Details

https://www.mrrb.bg/bg/naredba-rd-02-21-1-ot-23-11-2023-g-za-signalizaciya-na-putistata-s-putni-znaci/

Regulation No. RD-02-21-1 of November 23, 2023, on road signage with traffic signs
(State Gazette No. 101 of December 5, 2023, effective August 5, 2024)

Art. 40. Road sign A25 "Intersection of equal roads" warns of an approaching intersection outside the boundaries of a populated area where there is no signaled right of way.

@1ec5
Copy link
Copy Markdown
Contributor

1ec5 commented Sep 10, 2025

All stop signs in Bulgaria are stop=minor.

Should be a separate highway=stop preset for Bulgaria (and maybe other countries?) that automatically adds stop=minor?

Art. 40. Road sign A25 "Intersection of equal roads" warns of an approaching intersection outside the boundaries of a populated area where there is no signaled right of way.

That sounds identical to the established definition of junction=uncontrolled, although sign A25 is literally the Vienna Convention sign for what OSM globally tags as hazard=dangerous_junction.

@Dimitar5555
Copy link
Copy Markdown
Contributor Author

All stop signs in Bulgaria are stop=minor.

Should be a separate highway=stop preset for Bulgaria (and maybe other countries?) that automatically adds stop=minor?

Probably no. Navigation software usually knows where it is driving and should take the national law into consideration. Just like it knows that maxspeed:type=bg:urban is 50 km/h.

@tordans
Copy link
Copy Markdown
Collaborator

tordans commented Sep 10, 2025

It sounds to me that at this point of research the PR does what it is supposed to do, right?
Does anyone see a reason to not merge it as is?

@1ec5
Copy link
Copy Markdown
Contributor

1ec5 commented Sep 10, 2025

Probably no. Navigation software usually knows where it is driving and should take the national law into consideration. Just like it knows that maxspeed:type=bg:urban is 50 km/h.

Speed limits are probably not a great precedent for the idea of implicit national defaults, which are difficult to implement in general. There was a substantial effort to help data consumers interpret the mapping community’s default speed limit expectations, but so far uptake is minimal, and only OsmAnd supports maxspeed:type=*.

Looking more closely, this documentation does imply that data consumers infer stop=minor country by country or treat minor as the default, but this is very obscure from a data consumer standpoint. There’s no mention of which countries are affected in that page, the stop=minor page, the associated data item, “OSM tags for routing”, etc. On the contrary, at least one router apparently requires stop=minor to avoid overpenalizing when crossing a highway=stop at the intersection node. (But this is a non-issue if the stop node is at the stop line.)

The bottom line is that this PR will make it more difficult for mappers to add stop=all/minor or even know when it’s already present, so you should really be sure this is just hypothetical and not a realistic scenario:

In practice officials don't always follow the law and they might create stop=all junction...

@Dimitar5555
Copy link
Copy Markdown
Contributor Author

The bottom line is that this PR will make it more difficult for mappers to add stop=all/minor or even know when it’s already present, so you should really be sure this is just hypothetical and not a realistic scenario:

In practice officials don't always follow the law and they might create stop=all junction...

There’s a common internal joke in Bulgaria: "Bulgaria - the country of unlimited opportunities." It’s used whenever something happens that feels so absurd it couldn’t possibly happen anywhere else. Sometimes it even feels uncomfortably true…

But in all seriousness, a stop=all situation here is extremely hypothetical and very unlikely. Traffic organization changes go through a strict, multi-step process that involves at least one dozen people:

  • The mayor issues an order for a change.
  • A licensed engineer prepares all required drawings in line with legislation.
  • The project goes to an expert commission for approval, which typically includes:
    • Traffic Police
    • Fire Service
    • Local transport officials (e.g. "Transport Directorate", "Traffic Management", "Road Organisation" or whatever it might be called)
    • The local public transit operator (if affected)
    • The State Road Agency (if state roads are involved)
  • Only if the commission approves, the mayor/State Road Agency gives the final sign-off.

(Verified by trying convince the local municipality that what they did on a road 10 years was legal back then but it isn't anymore and it should be fixed. Still waiting for a resolution...)

Given this amount of paperwork and scrutiny, it’s practically impossible for a junction with stop signs on all approaches to slip through. And even if, under some bizarre set of circumstances, it did happen, locals/users of this road would immediately notice, the media would pick it up, and it would be corrected very quickly.

Yes, the mayor may say "I want stop signs on all sides on this junction" but it’s precisely the job of the commission and the traffic engineers to prevent such things.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

preset waitfor-consensus there seems to be no clear consensus on this in the osm communtiy; this has to wait

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants