Decree 99/2016 Coll. sets maximum permissible operative temperatures by work class for indoor work, and where those are exceeded routes the case to Annex 3's tabulated long-term (τsh) and short-term (τmax) permissible work times plus the decree's own cycle and break arithmetic. Exceeding a maximum is a control duty first — eliminate the heat load — and the work/rest regime applies only where elimination is not achievable and the temperatures are regularly exceeded on more than 50% of days in the year.
No standalone formula is published for this standard; see programmable logic and parameters below.
Governing metric: Operative temperature to against the work-class maximum (Annex 2); globe temperature tg into the Annex 3 τsh/τmax tables
| Parameter | Value |
|---|---|
maxPermissibleOperativeTempWarmC | {"1a":28,"1b":27,"1c":26,"2a":25,"2b":25} |
maxPermissibleOperativeTempColdC | {"1a":26,"1b":24,"1c":22,"2a":20,"2b":20} |
workClassBandsWm2 | {"3":[201,260],"4":[261,null],"1a":[null,80],"1b":[81,105],"1c":[106,130],"2a":[131,165],"2b":[166,200]} |
warmPeriodMinAvgDailyC | 13 |
warmPeriodEndConsecutiveDays | 2 |
exceptionallyHotDayShadeC | 30 |
unacclimatizedWeeks | 3 |
shiftBasisMinutes | 480 |
tableTgMinC | 20 |
tableTgMaxC | 50 |
tableTaMinC | 5 |
tabulatedAirVelocityMS | [0.1,0.5,1] |
rhLimitSingleLayerPercent | 70 |
rhLimitHeavyClothingPercent | 60 |
tabulatedClothingClo | [0.64,0.85,1.03,1.5] |
evaporationRestrictingClothingMinQmWm2 | 105 |
headRadiantIrradianceMaxWm2 | 200 |
headDirectSolarMaxMinutesPerShift | 10 |
annex3TablesTotal | 15 |
annex3TablesTranscribed | 15 |
annex3TgRows | 249 |
annex3Cells | 1743 |
Annex 3's τ tables are FULLY transcribed: all 15 tables, 249 tg rows and 1743 cells (3486 numbers), each cell read twice by independent methods — the PDF text layer and a 300 dpi raster render — with zero disagreements, tables 13-15 additionally re-transcribed in full by a second independent reader who agreed cell for cell, and table 1 re-transcribed blind as a control against the values encoded first, matching all 112 cells. Two corrections to the verification dossier's own description of the annex, both found while transcribing and both making it larger than recorded: tables 13-15 have NINETEEN tg rows, not fifteen — 26-50°C in 2°C steps and then 55, 60, 65, 70, 75, 80°C in 5°C steps — so the six rows above 50°C would otherwise have been silently unavailable in exactly the conditions the heavy-clothing tables exist for; and the annex therefore holds 249 rows and 1743 cells rather than the 237 rows and 3318 numbers estimated earlier. No τ cell is reconstructed from ISO 7933, from the Czech NV 361/2007 tables, or by interpolating tg. Interpolation is authorised for air velocity alone (Annex 3 note b), so globe temperature is rounded UP to the next tabulated row, the more protective direction, and the result is labelled as rounded. Annex 3 point 2.3 is load-bearing and was absent from the submitted spec: where τsh equals τmax the cycle calculation is not applied and only τsh must be observed. About 30% of the current annex's cells have τsh == τmax — including every class 1a-2a cell up to tg 30°C — where point 2.2 would divide by zero and emit Infinity break lengths. Two open source issues carried rather than resolved: (1) Annex 3 table 2 at tg = 20°C, class 2b reads τmax = 103 while the 2016 annex read 403 and the very next row reads 403, which looks like a 403→103 typo introduced by 227/2019; verified at 300 dpi that the in-force annex really says 103, so an implementer must transcribe it and flag it rather than silently correcting it. (2) Tables 13-15 tabulate tg rows up to 80°C while note d) states the envelope as 20-50°C; the annex contradicts itself. The engine honours the tabulated rows for the governing table and flags beyondNoteDEnvelope, because refusing a welder at 60°C on the strength of a note the same annex overrides would withhold the row the decree actually prints for that case. A 0.64 clo table still stops at 50°C, because that is where its own rows stop. (3) Table 15's class 1a column is systematically inverted from tg 32°C upward: the LIGHTEST work class prints a SHORTER permissible shift time than classes 1b and 1c, and from 42°C also shorter than 2a. Unlike the table 2 cell this runs for sixteen consecutive rows, so it is either a real property of the model for sedentary work in 1.5 clo impermeable clothing or a systematic error in the source's 1a column. Encoded as printed: no code may infer a 1a value from its neighbours or assume the lightest class yields the longest permissible time in this table. Also deliberately not encoded: any stop-work, because the heat provisions contain none — the 30°C exceptionally-hot-day definition attaches only to the § 4(7) preventive measures via § 4(8), which expressly does not route outdoor work into the Annex 3 tables. Classes are not guessed in the official bands' gaps at 165.x and 200.x W/m². § 3(6)'s ten-minute direct-solar limit is a workplace-design duty on the placement of openings and fixed workstations, not a shift timer. WBGT is not the metric: Annex 3 is keyed on globe temperature and Branch 1 on operative temperature, and WBGT appears only in § 4(6) as one permitted method for assessing radiant load. The § 4(2) schedule duty is conditional on the temperatures being regularly exceeded on more than 50% of days in the year — an annual-records question no instantaneous reading can answer — so it is surfaced as an explicit caller assertion with an explanatory note rather than assumed either way.
Programmable logic: Average energy expenditure in W/m² (metabolic rate in watts over the standard 1.8 m² body surface) maps to the current Annex 1 classes: 1a ≤80, 1b 81-105, 1c 106-130, 2a 131-165, 2b 166-200, 3 201-260, 4 >260. Branch 1 compares operative temperature against the Annex 2 maxima — warm period 1a 28°C, 1b 27°C, 1c 26°C, 2a 25°C, 2b 25°C; cold period 26/24/22/20/20°C — where § 2(4) permits the globe reading to serve as to at air velocity at or below 0.2 m/s. Classes 3 and 4 have no single maximum and go straight to Branch 2. Branch 2 selects one of Annex 3's 15 tables by sex, acclimatization, clothing insulation and air velocity, gates on tg ≥ ta, 20°C ≤ tg ≤ 50°C, ta > 5°C and rh below the clothing-coupled limit (70% at 0.64 clo, 60% at 0.85/1.03/1.5 clo), then reads τsh and τmax for the work class. The decree's arithmetic follows: Annex 3 point 2.3 short-circuits when τsh equals τmax (the calculation is not applied and only τsh must be observed); otherwise c = ceil(τsh / τmax) cycles with breaks of τp = (480 − τsh) / (c − 1) minutes. Interpolation is authorised for air velocity alone, so globe temperature is rounded up to the next tabulated row and labelled as rounded. All 15 Annex 3 tables are transcribed, so every population the decree tabulates is reachable and the sex and acclimatization axes change the answer materially: under identical conditions an unacclimatized woman receives a shorter permissible shift time than an acclimatized man. Conditions outside the tabulated range for the governing table return requiresIndividualTechnicalCalculation with the specific reasons.
Required inputs: metabolicRateW
Optional inputs: operativeTempC, globeTempC, airTempC, relativeHumidity, windSpeedMS, clothingInsulationClo, acclimatization, sex, maxTempC, shiftStart, shiftEnd, temperaturesExceededOver50PctOfDays