Skip to content
Vega-Lite templates

Stoessel criticality diagram — cooling-failure assessment of a semi-batch acylation

Thermal process-safety criticality diagram placing process temperature, MTSR, MTT and T_D24 on one temperature scale to classify a semi-batch reaction as Stoessel class 4, the assessment a reaction-hazard or process-safety chemist files from calorimetry data before scaling a batch reaction up.

Template previewVega-Lite
Rendering…

Make it your own.

{
 "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
 "title": {
  "text": "Stoessel criticality diagram — semi-batch acylation in toluene, 6.3 m³ reactor",
  "subtitle": [
   "Criticality class 4: T_p < MTT < T_D24 < MTSR — on loss of cooling the batch reaches boiling before decomposition,",
   "so evaporative cooling is a barrier ONLY if the condenser and vent are sized for the full boil-off rate."
  ],
  "anchor": "start",
  "fontSize": 15,
  "subtitleFontSize": 11
 },
 "width": 560,
 "height": 330,
 "data": {
  "values": [
   {
    "code": "T_p",
    "T": 60,
    "val": "60 °C",
    "note": "process set point\njacket cooled",
    "order": 1,
    "role": "Process"
   },
   {
    "code": "MTT",
    "T": 111,
    "val": "111 °C",
    "note": "reaction mass b.p.\nat 1.013 bar",
    "order": 2,
    "role": "Technical limit"
   },
   {
    "code": "T_D24",
    "T": 125,
    "val": "125 °C",
    "note": "TMR_ad = 24 h\nadiabatic calorimetry",
    "order": 3,
    "role": "Decomposition"
   },
   {
    "code": "MTSR",
    "T": 139,
    "val": "139 °C",
    "note": "T_p + 0.45 × ΔT_ad\nΔT_ad,rx = 175 K",
    "order": 4,
    "role": "Cooling failure"
   }
  ]
 },
 "layer": [
  {
   "mark": { "type": "bar", "size": 112, "cornerRadiusEnd": 3 },
   "encoding": {
    "x": {
     "field": "code",
     "type": "nominal",
     "sort": ["T_p", "MTT", "T_D24", "MTSR"],
     "title": null,
     "axis": { "labelAngle": 0, "labelFontSize": 14, "labelFontWeight": "bold" }
    },
    "y": {
     "field": "T",
     "type": "quantitative",
     "title": "Temperature (°C)",
     "scale": { "domain": [0, 180], "nice": false }
    },
    "color": {
     "field": "role",
     "type": "nominal",
     "scale": {
      "domain": ["Process", "Technical limit", "Decomposition", "Cooling failure"],
      "range": ["#1f47f5", "#0891b2", "#a16207", "#e11d48"]
     },
     "legend": { "title": null, "orient": "top-right", "offset": 4 }
    },
    "tooltip": [
     { "field": "code" },
     { "field": "T", "type": "quantitative" },
     { "field": "role" }
    ]
   }
  },
  {
   "mark": { "type": "text", "dy": -9, "fontSize": 13, "fontWeight": "bold", "color": "#0f172a" },
   "encoding": {
    "x": { "field": "code", "type": "nominal", "sort": ["T_p", "MTT", "T_D24", "MTSR"] },
    "y": { "field": "T", "type": "quantitative" },
    "text": { "field": "val" }
   }
  },
  {
   "mark": {
    "type": "text",
    "fontSize": 10,
    "color": "#f8fafc",
    "lineBreak": "\n",
    "baseline": "bottom",
    "dy": -6
   },
   "encoding": {
    "x": { "field": "code", "type": "nominal", "sort": ["T_p", "MTT", "T_D24", "MTSR"] },
    "y": { "datum": 6 },
    "text": { "field": "note" }
   }
  },
  {
   "data": {
    "values": [
     { "T": 111, "t": "MTT — max. temperature for technical reasons" },
     { "T": 125, "t": "T_D24 — decomposition, TMR_ad = 24 h" }
    ]
   },
   "mark": { "type": "rule", "strokeDash": [5, 4], "color": "#475569", "strokeWidth": 1 },
   "encoding": { "y": { "field": "T", "type": "quantitative" } }
  },
  {
   "data": {
    "values": [
     {
      "x": "T_p",
      "y": 163,
      "t": "Dashed lines: MTT (boiling, 111 °C) and T_D24 (125 °C).\nMTSR = 139 °C sits above both, so the cooling-failure\npath is boil-off first, then decomposition — class 4."
     }
    ]
   },
   "mark": {
    "type": "text",
    "align": "left",
    "dx": 0,
    "baseline": "top",
    "fontSize": 10,
    "color": "#475569",
    "lineBreak": "\n"
   },
   "encoding": {
    "text": { "field": "t" },
    "x": { "value": 10 },
    "y": { "value": 6 }
   }
  }
 ],
 "config": {
  "view": { "stroke": "#cbd5e1" },
  "axis": { "grid": true, "gridColor": "#e2e8f0" }
 }
}