Proposal:Comprehensive Childcare
| Comprehensive Childcare Tagging | |
|---|---|
| Proposal status: | Draft (under way) |
| Proposed by: | Nadjita |
| Tagging: | amenity=kindergarten, amenity=childcare, amenity=childminder
|
| Applies to: | |
| Definition: | Comprehensive tagging scheme for all types of childcare facilities |
| Draft started: | 2025-07-09 |
Proposal
This proposal formalizes widely-adopted childcare tags while introducing a comprehensive tagging system that fills current mapping gaps. It provides clear categorization of educational versus care-only services, supports mixed-age group facilities, and includes features such as childminders, drop-in care availability and parental involvement expectations.
The goal is to keep both major tags education=kindergarten (+amenity=kindergarten), and amenity=childcare as a distinction between facilities providing some formal form of education (kindergarten), or care-only child supervision (childcare), while strengthening 4 existing and new sub-tags (nursery, preschool, combined_childcare, and after_school) to allow childcare and education tagging to be tagged more precisely, and incorporated into schools and other facilities.
New/formalized tags
amenity=childmindernursery=yespreschool=yescombined_childcare=yesafter_school=yesdrop_in_care=only/yes/noparent_involvement=optional/mandatory/nocare_hours=4;6;8nursery/preschool/after_school:designation=*
Rationale
There were several attempts to introduce generic childcare tagging: Proposal:Childcare (rejected), Proposal:Childcare2.0 (abandoned), and a related one Proposal:Nursery (abandoned). Even though none were approved, the community has decided that there is a need for childcare outside of amenity=kindergarten, started using amenity=childcare, and also came up with additional tags for further refinement.
Still, current childcare tagging in OSM has several limitations:
- Two rivaling main tags
amenity=kindergartenandamenity=childcarewith no clear separation when to use which (apart fromeducation=kindergartenalready defining a separation), leading to arbitrary rather than criteria-based tagging and inconsistent mapping of similar facilities - Various sub-tags exist to describe services offered, but lack standardized definitions and consistent usage
- We cannot adequately describe facilities with mixed-age groups combining nursery and preschool, which are common in a lot of countries
- There is no support for childcare/kindergarten in schools, shopping malls or other stores. Some countries have kindergarten as part of regular schools, yet there is no accepted tagging for this. Some shopping malls or stores offer childcare while the parents are shopping
- Missing tags for common services like drop-in care and parent involvement requirements
- No way to record local terminology and legal classifications that vary significantly between countries
Tagging
The main difference should be made between childcare following educational curriculum (ISCED level 0), and childcare that looks after children without any formal education. If an institution is offering formal education, it's either education=school (+amenity=school), or education=kindergarten (+amenity=kindergarten). Everything else is amenity=childcare or amenity=childminder (for home-based individual care in small groups).
Main Tags
| Tag | Meaning |
|---|---|
education=kindergarten(+ amenity=kindergarten) |
Facilities offering formal early education (isced:level=0), and possibly additional regular childcare
|
amenity=childcare |
Facilities providing care without formal education |
amenity=childminder |
Home-based individual care (usually not education) in small groups |
All facilities should use explicit subkey tagging (nursery=yes, preschool=yes, after_school=yes) regardless of primary amenity tag.
Core Service subkey-tags
The following tags are the main tags describing the childcare services offered. They can all be used as simple Tag (to express the types of services offered), or as a prefix for detailed tagging of a facility.
| Key | Type | Meaning |
|---|---|---|
nursery=yes/no |
Care only | Childcare for infants and toddlers (no formal education) |
preschool=yes/no |
Formal education | Early childhood education following educational curriculum (ISCED level 0) |
after_school=yes/no |
Student supervision | Care for school-age children after regular school hours |
combined_childcare=yes/no/only |
Mixed provision | Groups that combine nursery care with preschool education |
Why preschool=* and not kindergarten=*?
Consider a facility offering both kindergarten and nursery services if we used kindergarten=yes and kindergarten:*=*
education=kindergarten amenity=kindergarten kindergarten=yes nursery=yes capacity=120 kindergarten:capacity=90 nursery:capacity=30
This creates two immediate problems:
- Redundant tagging: Why tag
kindergarten=yeswhen it's alreadyamenity=kindergarten? We see a lot of already existing tagging for pure nurseries withamenity=kindergarten+nursery=yes, so until these are all cleaned up, we don't know if someone forgot to addkindergarten=yes, or it's actually aamenity=childcare. Usingpreschoolwould at least allow us to tagpreschool=nowithout trolltagging. - Subkey ambiguity Does the total
capacity=120include or exclude thekindergarten:capacity=90? It's a kindergarten with capacity 120, and the kindergarten's capacity is 90.
Combined Childcare Groups
Standard tagging using nursery=* and preschool=* prefixes cannot describe facilities where children of different educational levels share the same groups. The combined_childcare=* tag solves this issue.
| Tag | Meaning |
|---|---|
combined_childcare=yes |
The facility offers combined and non-combined groups |
combined_childcare=no |
The facility offers no combined groups, nursery and preschool are separated |
combined_childcare=only |
The facility offers only combined groups of nursery and preschool |
Additional tags
A lot of already established and used tags are listed just for completion. They can all be used as a sub-tag for nursery:*=*, preschool:*=*, combined_childcare:*=*, and after_school:*=*.
| Tagging | Used for |
|---|---|
religion=*denomination=* |
If the facility has a particular religious affiliation and denomination |
capacity=* |
The number of children that can be accommodated in total |
operator=* |
The name of the organisation which runs the facility; this may be the local government, a religious parish, or a parent association |
operator:type=* |
The type of organisation which runs the facility |
min_age=* / max_age=* |
The age range of children that can attend the institution |
pedagogy=* |
The if the institution adheres to a particular pedagogical philosophy (Steiner, Montessori, Fröbel, …) |
opening_hours=* |
The regular hours when the facility is actively staffed and providing services |
opening_hours:extended=* |
Many childcare institutions offer extended opening hours with limited staffing, sometimes at extra cost |
opening_hours:office=* |
A lot of childcare institutions have separate office hours |
language:language code=yes/no/main |
The languages spoken |
wheelchair=* |
Whether the building is usable by wheelchairs |
lunch=* |
Whether lunch is offered for the children. Can be further refined with lunch:fee=yes/no
|
network=* |
If this institution is part of a network (e.g. common application process) |
Short term care
There is currently no tag to describe whether a facility offers short-term care (e.g., dropping off your child for ~2h to go and see a doctor). In some countries, nurseries especially offer this as a service, but in some countries, IKEA's Småland is also famous for exactly this type of service. This proposal wants to introduce drop_in_care=yes/no/only with drop_in_care:*=* for refinement. This is not limited to childcare, and can be extended to every meaningful value of drop_in_care:for=*.
Difference between drop_in_care and kids_area
Use kids_area=* (plus kids_area:supervised=yes) for places where you must remain in or close to the establishment, and cannot leave for several hours. These are usually in establishments where childcare is a secondary service – places like restaurants, shopping centers, or gyms that provide kids' areas in addition to their primary business.
Use drop_in_care=* for places that allow you to drop off your child, pet, or other dependent so you can leave the premises for appointments or errands. This usually indicates facilities where care services are the main business or where services are provided by qualified professionals.
Difference between social_facility=day_care and drop_in_care
It's important to distinguish between traditional day care centers and drop-in care services, as they serve different needs and operate under different models:
Day care centers (tagged with appropriate amenity=social_facility + social_facility=day_care, or amenity=childcare) are designed for regular, ongoing care. Clients typically:
- Enroll in advance and attend on a scheduled basis (e.g., Monday-Wednesday-Friday)
- Follow structured programs with consistent routines
- Require advance registration and often waiting lists
- Pay monthly or weekly fees
Drop-in care services (tagged with drop_in_care=yes) provide flexible, short-term care where clients can:
- Use services on an as-needed basis without regular enrollment
- Drop off dependents for specific errands or appointments
- Often use services infrequently or just once
- Pay per-use fees
Some establishments offer both models. A nursery might provide regular day care Monday-Friday, but also accept drop-in children on weekends. In such cases, use both the appropriate primary amenity tag and drop_in_care=yes, as seen in the firsst example.
Example 1: Upscale nursery
amenity=childcare nursery=yes drop_in_care=yes drop_in_care:for=children drop_in_care:registration=yes drop_in_care:reservation=required drop_in_care:min_age=6 months
Example 2: IKEA Småland
shop=furniture […] drop_in_care=yes drop_in_care:name=Småland drop_in_care:for=children drop_in_care:min_age=3 drop_in_care:max_age=10 drop_in_care:registration=no drop_in_care:reservation=no drop_in_care:maxstay=90 minutes
Alternatively, depending on the situation (for example if they don't allow you to leave), you will have to use kids_area=* instead:
shop=furniture […] kids_area=yes kids_area:name=Småland kids_area:supervised=yes kids_area:fee=no kids_area:indoor=yes kids_area:min_age=3 kids_area:max_age=10 kids_area:registration=no kids_area:reservation=no kids_area:maxstay=90 minutes
Example 3: Dog drop-in care at a petshop
shop=pet drop_in_care=yes drop_in_care:for=dogs drop_in_care:maxstay=30 minutes
Example 4: A drop-in care only nursery
amenity=childcare drop_in_care=only drop_in_care:for=children registration=no reservation=recommended min_age=6 months max_age=3 years maxstay=4 hours
Example 5: A local Alzheimer's Association chapter offering respite programs
amenity=social_facility social_facility=outreach social_facility:for=dementia drop_in_care=yes drop_in_care:for=dementia drop_in_care:maxstay=4 hours drop_in_care:reservation=required drop_in_care:fee=yes
Involvement
Childcare facilities vary significantly in their expectations for parent participation. Some cooperative nurseries require parents to take on cleaning duties, organize events, or serve on committees, while private facilities typically operate without parent involvement. Tagging this information helps parents understand the commitment level required beyond fees.
Use parent_involvement=* to indicate the level of parent participation expected by the facility:
| Tag | Meaning |
|---|---|
parent_involvement=mandatory |
Parents are required to participate in facility activities (e.g., cleaning duties, fundraising, committee work) |
parent_involvement=optional |
Parents may volunteer for activities, but participation is not required |
parent_involvement=no |
No parent participation is expected or requested; facility operates independently |
If known, and important, the type of involvement required or allowed can be added with parent_involvement:activities=*, e.g. parent_involvement:activities=events;cleaning;fundraising.
This also leaves room to further tag the amount and frequency of the parent involvement at a later point – if really needed.
Childcare Hours
Many childcare institutions offer structured care packages of specific durations rather than allowing children to stay for the entire opening period. For example, a facility might be open from 08:00 to 18:00 but offer only 4-hour, 6-hour, or 8-hour care packages. This is distinct from the facility's opening hours, which indicate when the building is accessible.
Use care_hours=* to specify the duration options available:
education=kindergarten amenity=kindergarten nursery=yes preschool=yes opening_hours=Mo-Fr 07:00-18:00 nursery:care_hours=4;6;8 preschool:care_hours=6;8
In this example, the facility is open for 11 hours daily, but nursery children can be enrolled for 4, 6, or 8-hour packages, while preschool children have 6 or 8-hour options available.
Values:
- Use semicolon separation for multiple duration options
- Specify hours as numbers (e.g.,
4;6;8) - Specify time units if not hours (e.g.,
90 minutes;270 minutes) - Apply as subkeys when different services offer different durations
Difference between care_hours and maxstay
care_hours=* is used for childcare facilities that offer fixed care packages with predetermined durations. Parents must book one of the specified time slots (e.g., 4, 6, or 8 hours). The facility operates on a structured system where care is provided in discrete blocks. It could also be possible to pick up children earlier or later, but not on a regular basis.
maxstay=*, on the other hand, is used for childcare facilities with flexible scheduling where parents can choose any duration up to the maximum allowed time. There are no predetermined packages – parents have freedom to pick up their child at any point within the allowed timeframe.
care_hours=4;6;8→ You can book 4-hour, 6-hour, or 8-hour care packagesmaxstay=8 hours→ Your child can stay anywhere from 5 minutes up to 8 hours maximum
This distinction should helps mappers accurately represent whether a facility requires booking specific time blocks versus allowing flexible drop-off/pick-up within operational hours.
Local designation
It can be important to be able to add the local name for the designation of an institution, much like school=primary / school:DE=Grundschule. Because nursery=*, preschool=*, and after_school=* are already keys on its own, the proposal suggests to use type:designation=* instead, because we already use designation=* to "record the legal classification of an object". Use only lower-case values without spaces.
designation=family_day_carefor qualified childminders regulated under Australia's National Quality Frameworknursery:designation=infant_daycarefor Canadanursery:designation=großtagespflegefor a nursery in Germany operated by 2 or more childmindersnursery:designation=hoikuenfor government-licensed daycare centers (0-5 years) in Japannursery:designation=eorini_jipfor government-supervised childcare centers (age 0-5) in South Koreapreschool:designation=grade_rfor formal pre-primary year (age 5-6) in South Africapreschool:designation=pre_kfor a pre-kindergarten in the USpreschool:designation=kindergartenfor a regular kindergarten in most countriespreschool:designation=balwadifor pre-primary schools in Indiaafter_school:designation=fritidshemfor a place where younger schoolchildren voluntarily stay in the days before and after school in Sweden
Cases where countries make finer distinctions within the same category should be handled similarly to school=*. For example, in the US, both 'Kindergarten' and 'Pre-K' map to preschool=yes, but represent different local designations. When a single facility offers multiple designation types (e.g., both Pre-K and Kindergarten programs), using preschool:designation=kindergarten;pre_k with semicolon separation could cause parsing issues for data consumers, though this currently appears to be the only available option.
In order to capture the designation of the facility as a whole, simply use designation=* without prefix, e.g. designation=registered_childminder for licensed home-based childcare in the UK, or designation=kindertagespflege for regulated family daycare in Germany.
Mappers are encouraged to discuss and establish standardized designation values for their countries, as providing an exhaustive international list is beyond the scope of this proposal.
Foreign Childcare Systems
In rare cases where a facility operates under a foreign educational/childcare system but is located in a different country, both the local designation and the foreign system designation can be captured:
- Use
type:designation=*for the local term that would be used in that country for similar facilities - Use
type:designation:CC=*(where CC is the ISO country code) for the actual designation from the foreign system being implemented
For example, a Swedish-style fritidshem operating in Germany:
after_school:designation=hort
after_school:designation:SE=fritidshem
This approach ensures that local data consumers understand the facility type in their context, while preserving information about the specific foreign educational approach being used. The country-specific designation should only be added when the facility genuinely implements a foreign system, not merely for translation purposes.
Examples
Facility offering combined and non-combined groups
education=kindergarten amenity=kindergarten capacity=60 care_hours=4;6 nursery=yes pedagogy=Montessori parent_involvement=mandatory preschool=yes combined_childcare=yes opening_hours=Mo-Fr 07:30-16:00; PH off nursery:min_age=0 nursery:max_age=2 nursery:capacity=15 nursery:opening_hours:extended=Mo-Fr 07:30-17:00; PH off nursery:designation=krippe preschool:min_age=3 preschool:max_age=5 preschool:capacity=25 preschool:care_hours=4;6;8 preschool:designation=kindergarten combined_childcare:min_age=1 combined_childcare:max_age=4 combined_childcare:capacity=20
Facility offering after school care
amenity=childcare capacity=20 after_school=yes opening_hours=Mo-Fr 12:00-16:00; SH Mo-Fr 08:30-17:00; PH off min_age=6 max_age=10 lunch=yes lunch:fee=yes
School with its own preschool class
education=school amenity=school […] preschool=yes preschool:designation=senior_kindergarten preschool:opening_hours=Mo-Fr 08:00-12:30; PH off preschool:min_age=4 preschool:max_age=5 preschool:capacity=20 preschool:lunch=no
Features/Pages affected
education=kindergarten,amenity=kindergartenandamenity=childcareneed to be changedamenity=childminderneeds to be created- Pages for
nursery=*,preschool=*,combined_childcare=*, andafter_school=*need proper content - Create pages for
drop_in_care=*, anddrop_in_care:*=* - Create page for
parent_involvement=* - Create page for
care_hours=* - Explain the difference between
kids_areaanddrop_in_careinkids_area=*
Comments
Please comment on the discussion page.
External discussions
Status
This proposal is in draft status and currently not open for community feedback.