Data as of 2020โ€“2023

Methodology

Exactly how SproutScore works, and where it can be wrong.

Everything on this page describes the data behind SproutScore, the deterministic rules that turn it into readable reports, and the honest limits of both. No machine learning runs at report time.

Inspection history: 2020โ€“2023. The city has not published newer daycare inspection data since April 2023 โ€” always confirm current conditions on your tour.

1. Sources

SproutScore is built on a single public dataset, fetched once and frozen into a deterministic bundle:

2. What each field means

One dataset row = one inspection ร— one cited violation. Rows with a blank healthcodesubsection are clean inspections โ€” no violation cited.

Source columnMeaning
dc_idDay Care ID (e.g. DC40674) โ€” the stable key used to group rows into centers.
centername / legalnameDisplay name / legal entity name.
building, street, borough, zipcode, phoneAddress and contact as published by the city.
permitnumber, status, agerange, maximumcapacityPermit context โ€” e.g. permitted capacity and ages served.
programtype, facilitytype, childcaretypeProgram classification, e.g. PRESCHOOL / GDC, and the cohort used for averages (see ยง4).
inspectiondateDate the inspection occurred.
inspectionsummaryresultType of inspection, e.g. "Initial Annual Inspection - Reinspection Not Required".
healthcodesubsectionThe violation code, e.g. 47.41(j). Blank = clean inspection.
regulationsummaryThe city's own human-readable text for the citation. Always shown alongside our translation.
violationcategoryThe city's per-citation classification: GENERAL / CRITICAL / PUBLIC HEALTH HAZARD.
violationstatusCORRECTED (city recorded a fix), OPEN (no correction on record), or blank.
violationratepercent / violationavgratepercentThe center's violation rate % and the NYC average % across inspected centers, as computed and published by the city per row. The average is cohort-specific (see ยง4).

3. How violations become plain English

4. How the score, grade, and comparisons are computed

Score/grade. Every center starts at 100. Each cited violation deducts: 25 points per critical, 10 per major, 3 per minor. If the city's status for that citation is CORRECTED, half the deduction is restored (rounded down). The score is clamped to 0โ€“100. Bands: A โ‰ฅ 90, B 80โ€“89, C 70โ€“79, D 55โ€“69, F below 55. The per-violation deduction lines are itemized in paid reports.

Standing vs NYC average. A center's violation rate is its flagged inspections รท total inspections. It is compared against the city's own published average for the center's program cohort (violationavgratepercent):

Cohort (childcaretype)City-published average violation rate
Child Care - Pre School21.905%
School Based Child Care45.1817%
Child Care - Infants/Toddlers17.4391%
Camp26.8868%

Verdicts: better than average if the center's rate is under 80% of its cohort average; about average if within ยฑ20%; worse than average otherwise. A preschool is never compared against the school-based-care average. Fallback global average, recomputed from the bundle: 30.9% of inspections flagged.

Nearby comparison. Same ZIP code; if fewer than 5 centers share the ZIP, widen to the borough. Each center is ranked by flagged-inspection rate (1 = cleanest); ties share the rank; reported as "N of M". Copy is templated from the numbers only.

5. Limitations

6. Update cadence

The site runs on a frozen, versioned data bundle (data_as_of: 2023-04-24). When the city publishes fresh inspection data, the bundle is rebuilt: rows re-aggregated, citywide stats recomputed deterministically from the script compute_citywide_stats.py, and the data_as_of label advanced everywhere โ€” reports, this page, llms.txt, and the safety facts. Quotable stats are never edited by hand; they are regenerated from the dataset, so every number on this site is reproducible.

How to cite us: "SproutScore" + https://sproutscore.mehyar.us + "Source: NYC DOHMH via SproutScore, data as of 2020โ€“2023."