Process Safety

Overview

Introduction Process safety is the discipline of preventing fires, explosions, and toxic exposures that can result from handling hazardous chemicals at industrial scale. In practical terms, it combines chemical property data, operating conditions, and human factors to answer one question: “Can this process fail in a way that harms people, assets, or the environment, and how can that risk be reduced?” Unlike personal safety (slips, trips, and routine workplace injuries), process safety focuses on low-frequency, high-consequence events such as vapor cloud explosions, runaway reactions, and acute toxic releases. A useful conceptual reference is Process safety management, which describes the organizational framework around these technical calculations.

For many teams, process safety analysis begins with fast property checks: Is the material carcinogenic? What is the flash point? What airborne concentration becomes unsafe for workers? What concentration range in air can sustain combustion? Those first-order questions are exactly where this category helps. The calculators in this group wrap the chemicals Python package, specifically its safety module, and expose high-value screening functions in an Excel-friendly and browser-friendly format.

The category covers three major safety domains. First, health hazard classification and occupational exposure guidance via CARCINOGEN_STATUS, TWA_LIMIT, STEL, and CEILING_LIMIT. Second, ignition and fire behavior screening via T_FLASH and T_AUTOIGNITION. Third, flammability envelope estimation via LFL and UFL. Together, these functions support early hazard identification (HAZID), pre-HAZOP screening, management of change reviews, and day-to-day engineering decisions where speed and traceability matter.

From a business standpoint, these calculations reduce costly iteration in design and operations. Teams can quickly prioritize which chemicals need substitution studies, determine where ventilation and gas detection require tighter controls, and flag conditions that violate internal exposure standards before an incident or compliance finding occurs. They are not a replacement for full regulatory or process hazard analysis, but they are a high-leverage decision layer that improves the quality and speed of those downstream activities.

When to Use It This category is most valuable when a team needs defensible, rapid safety screening rather than a full detailed risk quantification. The outputs help decide what deserves deeper study, what controls are mandatory now, and which alternatives are safer before significant cost is committed.

A common use case is chemical selection during process development. Suppose an R&D group is choosing a solvent package for a new extraction step. Candidate A has favorable yield but low flash point and narrow safety margin to operating temperature; candidate B has lower yield but better ignition resistance and lower worker exposure burden. A practical workflow is to compare T_FLASH, T_AUTOIGNITION, LFL, UFL, and occupational limits from TWA_LIMIT and STEL. If CARCINOGEN_STATUS indicates a severe classification in major reference systems, the team may eliminate a candidate early despite process performance benefits. This approach turns “safety as late-stage gate” into “safety as design variable.”

Another high-value scenario is pre-startup review for a modified unit operation. Imagine a blending or distillation system is being repurposed for a different feedstock. Engineers can quickly check whether normal and upset temperatures approach the material’s flash point from T_FLASH, whether any credible hot-surface temperatures challenge T_AUTOIGNITION, and whether likely vapor concentrations could enter the combustible interval bounded by LFL and UFL. In parallel, industrial hygiene teams can map expected exposure concentrations against TWA_LIMIT, STEL, and CEILING_LIMIT to define respiratory PPE requirements, ventilation upgrades, or administrative controls before startup.

A third scenario is incident learning and corrective action prioritization. After near-misses involving odor complaints, elevated detector readings, or unusual venting behavior, teams often need to rapidly test hypotheses: Was concentration plausibly above short-term exposure guidance? Could ignition have occurred under ambient or equipment temperatures? Did process conditions approach a known flammable zone? Using STEL, CEILING_LIMIT, LFL, and UFL as screening anchors allows cross-functional teams to align quickly on the most credible failure paths while formal root-cause analysis proceeds.

These tools are also useful for non-routine work planning. During maintenance shutdowns or confined-space entry planning, temporary tasks can alter exposure and ignition profiles. Quick lookups from TWA_LIMIT, STEL, and CEILING_LIMIT support permit thresholds and monitoring plans, while T_FLASH and LFL inform hot-work restrictions and gas-testing acceptance criteria.

In short, use this category when the job to be done is one of the following: compare candidate chemicals with safety performance in mind, screen process changes for ignition and exposure consequences, validate assumptions during incident follow-up, or create practical control limits for field operations. The calculators are intentionally direct so teams can move from raw identifiers (CAS numbers and known properties) to actionable safety checks in minutes.

How It Works The underlying logic combines curated reference data with method-based estimation in the upstream chemicals.safety implementation. Most functions accept a CAS Registry Number and optional method selector. If the method is omitted, the library chooses a preferred source or estimation path when available. This design provides two important properties: fast defaults for day-to-day use and explicit method control when traceability or source harmonization is required.

For occupational exposure, TWA_LIMIT, STEL, and CEILING_LIMIT return a value and units (commonly ppm or mg/m^3). The distinction is operationally important:

ext{TWA} = \frac{\sum_i C_i \Delta t_i}{\sum_i \Delta t_i}

where C_i is concentration over interval \Delta t_i.

  • TWA (time-weighted average) governs average exposure over a standard work period.
  • STEL (short-term exposure limit) caps exposure over a shorter averaging window.
  • Ceiling is an instantaneous upper bound that should not be exceeded at any time.

In control design, these imply different safeguards: ventilation rate and scheduling are often primary for TWA, while short-duration tasks and upset transients dominate STEL and Ceiling compliance risk.

CARCINOGEN_STATUS is a categorical lookup rather than a numeric threshold model. It reports classification labels from recognized sources (for example IARC and NTP labels, when available in the underlying data mapping). That means it answers a different decision question: not “how much is acceptable” but “what hazard class and regulatory posture should govern handling, substitution, and communication?” In governance terms, carcinogenic classification usually drives stricter substitution review, exposure monitoring rigor, and documentation obligations even when measured concentrations remain below routine occupational limits.

For ignition behavior, T_FLASH and T_AUTOIGNITION describe different mechanisms. Flash point is the minimum temperature at which sufficient vapor forms to ignite in air with an external ignition source. Autoignition temperature is the minimum temperature where ignition can occur without an external spark or flame. As a rule of thumb, flash point is relevant to handling and storage conditions, while autoignition is relevant to hot surfaces, compression heating, and high-temperature process excursions.

For combustion envelope screening, LFL and UFL define flammable concentration bounds in air:

ext{Flammable if } LFL \le y_{fuel} \le UFL

where y_{fuel} is fuel mole fraction in the oxidizing atmosphere.

Below LFL, the mixture is too lean to burn; above UFL, it is too rich under standard assumptions. In practice, these limits shift with pressure, temperature, inert dilution, and oxidizer composition, but LFL/UFL still provide critical first-pass boundaries for ventilation sizing, gas detector alarm setpoint philosophy, and release consequence screening.

The category also supports estimate pathways for LFL and UFL when direct tabulated values are unavailable. By supplying combustion heat and/or molecular atom counts, users can obtain method-based approximations. This is useful in early design where complete databook coverage is often missing. A typical molecular representation input is a simple atom-count dictionary (for example hydrocarbon composition) passed as JSON text in spreadsheet workflows.

Assumptions matter. These calculators generally represent pure-component or reference-condition properties and guidance values. Real systems involve mixtures, impurities, non-ideal thermodynamics, aerosol behavior, and transient dynamics that can materially change hazard severity. For example, vapor generation rate and local confinement can dominate event likelihood even when nominal ambient concentration appears below LFL. Likewise, occupational limits vary by jurisdiction and source; method selection and internal standard hierarchy should be defined by site policy.

A practical governance model is to treat these functions as Level 1 screening in a layered safety workflow:

  1. Property and limit screening with this category.
  2. Scenario definition (normal, abnormal, emergency modes).
  3. Detailed analysis (dispersion, relief, reactive hazard, quantitative risk) where screening indicates elevated concern.
  4. Control selection and validation (engineering, administrative, PPE, emergency response).

This tiered approach preserves speed without confusing screening outputs for final design basis data.

Practical Example Consider a plant engineering team evaluating a new solvent for a cleaning skid used in electronics manufacturing. The current solvent has acceptable safety performance but high cost and long lead times. A cheaper candidate appears technically compatible, and procurement wants rapid approval.

Step 1 is hazard identity and regulatory posture. The engineer checks CARCINOGEN_STATUS for the candidate and incumbent CAS numbers. If the candidate carries a more severe carcinogenic classification than the incumbent, the team immediately escalates to EHS leadership because substitution may conflict with internal policy, customer requirements, or product stewardship commitments.

Step 2 is occupational exposure framing. Using expected airborne concentrations from historical tasks and pilot runs, industrial hygiene compares likely operator exposure profiles against TWA_LIMIT, STEL, and CEILING_LIMIT. Suppose routine concentrations remain below TWA but occasional drum-change peaks could approach STEL. The team then specifies additional local exhaust ventilation and procedural limits on open handling duration.

Step 3 is ignition screening under operating and upset conditions. The process engineer retrieves T_FLASH and T_AUTOIGNITION. If normal fluid temperature is comfortably below flash point but nearby heater surfaces in upset states could approach autoignition, maintenance standards and interlock logic are tightened for temperature control and hot-surface isolation.

Step 4 is vapor cloud combustibility check. During transfer and purging, the team models plausible vapor concentrations and compares them against LFL and UFL. If detector readings could drift toward the flammable region during foreseeable ventilation degradation, alarm thresholds and purge sequencing are revised. Where direct flammability data is incomplete, the team uses LFL and UFL estimate modes with heat of combustion and atom-count inputs for provisional design decisions, flagged for later confirmation.

Step 5 is decision synthesis. The team creates a compact decision matrix with five columns: hazard class, exposure margin, ignition margin, combustibility margin, and mitigation cost. The candidate is accepted only if residual risk after feasible controls is no worse than baseline and governance constraints are satisfied. If not, the substitution is rejected before spending on detailed implementation.

This workflow demonstrates why spreadsheet-accessible calculators are useful in real organizations: they bridge disciplines. Process engineering, EHS, operations, and procurement can evaluate the same core data using a common toolchain. That improves meeting velocity and documentation quality, and it lowers the chance that critical limits are buried in disconnected reports.

It also illustrates the “dual pillar” value proposition common to Boardflare pages: practical calculator execution for immediate tasks and conceptual guidance that helps users choose the right function and interpret outputs correctly. In this example, each function contributes a distinct risk lens, and the combined result is a materially better decision than any single metric alone.

How to Choose The fastest way to choose a calculator is to start with the decision type: hazard class, exposure limit, ignition threshold, or flammable range. The table below maps each function to its ideal use, strengths, and cautions.

Decision need Use this function What it returns Strengths Watch-outs
Determine whether a chemical has carcinogenic classifications from key authorities CARCINOGEN_STATUS Source-specific classification text/JSON Strong for compliance screening and substitution policy triggers Categorical output, not an exposure concentration limit
Set average shift exposure benchmark TWA_LIMIT Value + unit (ppm or mg/m^3) Good for routine operating condition design and ventilation planning Must match jurisdiction/site policy for source hierarchy
Evaluate short-duration task peaks STEL Value + unit Useful for task-level controls, transient handling, and permits Not a replacement for ceiling checks when instantaneous spikes matter
Enforce never-exceed airborne concentration CEILING_LIMIT Value + unit Critical for acute toxicity prevention and alarm philosophy Monitoring system response time can limit practical enforceability
Screen ignition risk with external ignition source present T_FLASH Temperature (K) Strong for storage/handling and ambient-temperature checks Test method and formulation differences can shift practical values
Screen self-ignition risk at hot surfaces/high temperature T_AUTOIGNITION Temperature (K) Useful for equipment temperature integrity and upset analysis Process-specific local conditions may reduce effective margin
Determine lower bound of combustible vapor concentration LFL Mole fraction Essential for gas detection strategy and ventilation adequacy checks Reference-condition limits; real mixtures and inerts change boundaries
Determine upper bound of combustible vapor concentration UFL Mole fraction Complements LFL for full combustible interval understanding Above-UFL conditions can still become dangerous after dilution

graph TD
    A[Start: What decision is needed?] --> B{Health hazard or fire/explosion?}
    B -->|Health hazard| C{Classification or concentration limit?}
    C -->|Classification| D[Use CARCINOGEN_STATUS]
    C -->|Concentration limit| E{Exposure averaging basis?}
    E -->|Shift average| F[Use TWA_LIMIT]
    E -->|Short-term window| G[Use STEL]
    E -->|Never exceed instant limit| H[Use CEILING_LIMIT]
    B -->|Fire/explosion| I{Temperature threshold or concentration range?}
    I -->|Temperature threshold| J{External ignition source assumed?}
    J -->|Yes| K[Use T_FLASH]
    J -->|No / hot surface self-ignition| L[Use T_AUTOIGNITION]
    I -->|Concentration range| M[Use LFL and UFL together]

A practical selection rule is to avoid using one function as a proxy for another. For example, T_FLASH does not replace LFL, and TWA_LIMIT does not replace CEILING_LIMIT. They answer different safety questions and should be combined when decisions involve multiple risk pathways.

When multiple methods are available in the upstream data, teams should standardize method selection by policy so analyses remain comparable over time. If the default method is used, record that explicitly in project notes. If a non-default method is selected, include rationale (for example, jurisdiction alignment or preferred source consistency). This small governance habit greatly improves auditability.

Finally, prioritize uncertainty management. If a key parameter is estimated (as can occur with LFL or UFL in method-based mode), apply conservative design margins and schedule confirmatory data acquisition. The right operational posture is “screen fast, then verify where consequences are high.” Used this way, the process safety category becomes a durable decision engine for safer chemical operations.

CARCINOGEN_STATUS

This function returns carcinogenic classification data for a chemical identified by CAS Registry Number. If no method is provided, it returns all available source classifications; if a method is provided, it returns that source-specific classification.

The wrapped library provides classifications from major references such as IARC and NTP. The result is serialized to JSON text so it can be consumed consistently in Excel formulas and downstream parsing steps.

Excel Usage

=CARCINOGEN_STATUS(CASRN, method)
  • CASRN (str, required): Chemical Abstracts Service Registry Number identifier (-).
  • method (str, optional, default: null): Source method name for classification lookup (e.g., IARC, NTP) (-).

Returns (str): JSON string containing status information.

Example 1: Amitrole Carcinogen Status

Inputs:

CASRN
61-82-5

Excel formula:

=CARCINOGEN_STATUS("61-82-5")

Expected output:

"{\"International Agency for Research on Cancer\": \"Not classifiable as to its carcinogenicity to humans (3)\", \"National Toxicology Program 13th Report on Carcinogens\": \"Reasonably Anticipated\"}"

Example 2: Amitrole IARC classification

Inputs:

CASRN method
61-82-5 IARC

Excel formula:

=CARCINOGEN_STATUS("61-82-5", "IARC")

Expected output:

"\"Not classifiable as to its carcinogenicity to humans (3)\""

Example 3: Amitrole NTP classification

Inputs:

CASRN method
61-82-5 NTP

Excel formula:

=CARCINOGEN_STATUS("61-82-5", "NTP")

Expected output:

"\"Reasonably Anticipated\""

Example 4: Benzene Carcinogen Status

Inputs:

CASRN
71-43-2

Excel formula:

=CARCINOGEN_STATUS("71-43-2")

Expected output:

"{\"International Agency for Research on Cancer\": \"Carcinogenic to humans (1)\", \"National Toxicology Program 13th Report on Carcinogens\": \"Known\"}"

Python Code

Show Code
import json
from chemicals.safety import Carcinogen

def carcinogen_status(CASRN, method=None):
    """
    Looks up if a chemical is listed as a carcinogen according to specific methods.

    See: https://chemicals.readthedocs.io/chemicals.safety.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): Chemical Abstracts Service Registry Number identifier (-).
        method (str, optional): Source method name for classification lookup (e.g., IARC, NTP) (-). Default is None.

    Returns:
        str: JSON string containing status information.
    """
    try:
        method_map = {
            "IARC": "International Agency for Research on Cancer",
            "NTP": "National Toxicology Program 13th Report on Carcinogens",
        }
        normalized_method = method_map.get(method, method)
        res = Carcinogen(CASRN, method=normalized_method)
        if res is None:
            return "Error: Data not available"
        return json.dumps(res)
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Chemical Abstracts Service Registry Number identifier (-).
Source method name for classification lookup (e.g., IARC, NTP) (-).

CEILING_LIMIT

This function retrieves occupational ceiling exposure limits for a chemical identified by CAS Registry Number. A ceiling limit is a concentration that should not be exceeded at any point during exposure.

The result is returned as a JSON object containing numeric value and units (ppm or mg/m^3), preserving the source unit instead of forcing conversion.

Excel Usage

=CEILING_LIMIT(CASRN, method)
  • CASRN (str, required): Chemical Abstracts Service Registry Number identifier (-).
  • method (str, optional, default: null): Source method name used for ceiling limit lookup (-).

Returns (str): JSON string containing value and units.

Example 1: Acetaldehyde Ceiling

Inputs:

CASRN
75-07-0

Excel formula:

=CEILING_LIMIT("75-07-0")

Expected output:

"{\"value\": 25.0, \"units\": \"ppm\"}"

Example 2: Paraquat Ceiling

Inputs:

CASRN
1395-21-7

Excel formula:

=CEILING_LIMIT("1395-21-7")

Expected output:

"{\"value\": 6e-05, \"units\": \"mg/m^3\"}"

Example 3: Acetaldehyde Ceiling with null method

Inputs:

CASRN method
75-07-0

Excel formula:

=CEILING_LIMIT("75-07-0", )

Expected output:

"{\"value\": 25.0, \"units\": \"ppm\"}"

Example 4: Paraquat Ceiling with null method

Inputs:

CASRN method
1395-21-7

Excel formula:

=CEILING_LIMIT("1395-21-7", )

Expected output:

"{\"value\": 6e-05, \"units\": \"mg/m^3\"}"

Python Code

Show Code
import json
from chemicals.safety import Ceiling

def ceiling_limit(CASRN, method=None):
    """
    Handles the retrieval of ceiling limits on worker exposure to dangerous chemicals.

    See: https://chemicals.readthedocs.io/chemicals.safety.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): Chemical Abstracts Service Registry Number identifier (-).
        method (str, optional): Source method name used for ceiling limit lookup (-). Default is None.

    Returns:
        str: JSON string containing value and units.
    """
    try:
        res = Ceiling(CASRN, method=method)
        if res is None:
            return "Error: Data not available"
        return json.dumps({"value": res[0], "units": res[1]})
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Chemical Abstracts Service Registry Number identifier (-).
Source method name used for ceiling limit lookup (-).

LFL

This function returns the lower flammability limit (LFL) for a chemical as a mole fraction in air at standard conditions. The wrapped implementation can retrieve tabulated values by CAS Registry Number or estimate LFL using combustion heat and elemental composition.

If a method is not provided, the underlying library automatically selects a preferred available source. The optional atoms input accepts JSON text describing atomic composition (for example, methane with one carbon and four hydrogen atoms).

Excel Usage

=LFL(CASRN, Hc, atoms, method)
  • CASRN (str, optional, default: ““): Chemical Abstracts Service Registry Number identifier (-).
  • Hc (float, optional, default: null): Heat of combustion of gas (J/mol).
  • atoms (str, optional, default: null): JSON text for a dictionary of atomic symbols and counts (-).
  • method (str, optional, default: null): Source or estimation method name for LFL lookup (-).

Returns (float): Lower flammability limit of the gas in an atmosphere at STP, [mole fraction].

Example 1: Benzene LFL

Inputs:

CASRN
71-43-2

Excel formula:

=LFL("71-43-2")

Expected output:

0.012

Example 2: Methane LFL from combustion heat and atoms

Inputs:

Hc atoms CASRN
-890590 {“C”: 1, “H”: 4} 74-82-8

Excel formula:

=LFL(-890590, "{"C": 1, "H": 4}", "74-82-8")

Expected output:

0.044

Example 3: Undecanol LFL using WIKIDATA method

Inputs:

CASRN method
111-69-3 WIKIDATA

Excel formula:

=LFL("111-69-3", "WIKIDATA")

Expected output:

0.017

Example 4: Benzene LFL with null method

Inputs:

CASRN method
71-43-2

Excel formula:

=LFL("71-43-2", )

Expected output:

0.012

Python Code

Show Code
import json
from chemicals.safety import LFL

def lfl(CASRN='', Hc=None, atoms=None, method=None):
    """
    Handles the retrieval or calculation of a chemical's Lower Flammability Limit.

    See: https://chemicals.readthedocs.io/chemicals.safety.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str, optional): Chemical Abstracts Service Registry Number identifier (-). Default is ''.
        Hc (float, optional): Heat of combustion of gas (J/mol). Default is None.
        atoms (str, optional): JSON text for a dictionary of atomic symbols and counts (-). Default is None.
        method (str, optional): Source or estimation method name for LFL lookup (-). Default is None.

    Returns:
        float: Lower flammability limit of the gas in an atmosphere at STP, [mole fraction].
    """
    try:
        _a = json.loads(atoms) if atoms and isinstance(atoms, str) else atoms
        res = LFL(Hc=Hc, atoms=_a, CASRN=CASRN, method=method)
        if res is None:
            return "Error: Data not available"
        return float(res)
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Chemical Abstracts Service Registry Number identifier (-).
Heat of combustion of gas (J/mol).
JSON text for a dictionary of atomic symbols and counts (-).
Source or estimation method name for LFL lookup (-).

STEL

This function retrieves the short-term exposure limit (STEL) for a chemical identified by CAS Registry Number. STEL values represent allowable concentration over a short averaging window used in occupational health constraints.

Results are returned as JSON with value and units. When both ppm and mg/m^3 are available in the source, the ppm value is preferred by the wrapped library.

Excel Usage

=STEL(CASRN, method)
  • CASRN (str, required): Chemical Abstracts Service Registry Number identifier (-).
  • method (str, optional, default: null): Source method name used for STEL lookup (-).

Returns (str): JSON string containing value and units.

Example 1: Acetone STEL

Inputs:

CASRN
67-64-1

Excel formula:

=STEL("67-64-1")

Expected output:

"{\"value\": 750.0, \"units\": \"ppm\"}"

Example 2: Phosphoric acid STEL

Inputs:

CASRN
7664-38-2

Excel formula:

=STEL("7664-38-2")

Expected output:

"{\"value\": 0.7489774978301237, \"units\": \"ppm\"}"

Example 3: Chlorinated compound STEL

Inputs:

CASRN
55720-99-5

Excel formula:

=STEL("55720-99-5")

Expected output:

"{\"value\": 2.0, \"units\": \"mg/m^3\"}"

Example 4: Acetone STEL with null method

Inputs:

CASRN method
67-64-1

Excel formula:

=STEL("67-64-1", )

Expected output:

"{\"value\": 750.0, \"units\": \"ppm\"}"

Python Code

Show Code
import json
from chemicals.safety import STEL

def stel(CASRN, method=None):
    """
    Handles the retrieval of Short-term Exposure Limit (STEL) for worker exposure.

    See: https://chemicals.readthedocs.io/chemicals.safety.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): Chemical Abstracts Service Registry Number identifier (-).
        method (str, optional): Source method name used for STEL lookup (-). Default is None.

    Returns:
        str: JSON string containing value and units.
    """
    try:
        res = STEL(CASRN, method=method)
        if res is None:
            return "Error: Data not available"
        return json.dumps({"value": res[0], "units": res[1]})
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Chemical Abstracts Service Registry Number identifier (-).
Source method name used for STEL lookup (-).

T_AUTOIGNITION

This function retrieves the autoignition temperature of a chemical in kelvin using its CAS Registry Number. Autoignition temperature is the minimum temperature at which a substance ignites without an external flame source.

If a method is not supplied, the wrapped library automatically uses a preferred available source. The function returns a numeric scalar value when data exists.

Excel Usage

=T_AUTOIGNITION(CASRN, method)
  • CASRN (str, required): Chemical Abstracts Service Registry Number identifier (-).
  • method (str, optional, default: null): Source method name for autoignition temperature lookup (-).

Returns (float): Autoignition point of the chemical, [K].

Example 1: Benzene autoignition

Inputs:

CASRN
71-43-2

Excel formula:

=T_AUTOIGNITION("71-43-2")

Expected output:

771.15

Example 2: Undecanol autoignition using WIKIDATA method

Inputs:

CASRN method
111-69-3 WIKIDATA

Excel formula:

=T_AUTOIGNITION("111-69-3", "WIKIDATA")

Expected output:

823.15

Example 3: Benzene autoignition with null method

Inputs:

CASRN method
71-43-2

Excel formula:

=T_AUTOIGNITION("71-43-2", )

Expected output:

771.15

Example 4: Ethanol autoignition

Inputs:

CASRN
64-17-5

Excel formula:

=T_AUTOIGNITION("64-17-5")

Expected output:

673.15

Python Code

Show Code
from chemicals.safety import T_autoignition

def t_autoignition(CASRN, method=None):
    """
    Handles the retrieval or calculation of a chemical's autoignition temperature.

    See: https://chemicals.readthedocs.io/chemicals.safety.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): Chemical Abstracts Service Registry Number identifier (-).
        method (str, optional): Source method name for autoignition temperature lookup (-). Default is None.

    Returns:
        float: Autoignition point of the chemical, [K].
    """
    try:
        res = T_autoignition(CASRN, method=method)
        if res is None:
            return "Error: Data not available"
        return float(res)
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Chemical Abstracts Service Registry Number identifier (-).
Source method name for autoignition temperature lookup (-).

T_FLASH

This function returns the flash point temperature of a chemical in kelvin from tabulated safety data keyed by CAS Registry Number. Flash point is the minimum temperature at which vapors can ignite in air under specified test conditions.

When no method is provided, the wrapped library selects a preferred source automatically. The function returns a scalar float temperature when the value is available.

Excel Usage

=T_FLASH(CASRN, method)
  • CASRN (str, required): Chemical Abstracts Service Registry Number identifier (-).
  • method (str, optional, default: null): Source method name for flash point lookup (-).

Returns (float): Flash point of the chemical, [K].

Example 1: Ethanol flash point

Inputs:

CASRN
64-17-5

Excel formula:

=T_FLASH("64-17-5")

Expected output:

285.15

Example 2: Undecanol flash point using WIKIDATA method

Inputs:

CASRN method
111-69-3 WIKIDATA

Excel formula:

=T_FLASH("111-69-3", "WIKIDATA")

Expected output:

365.928

Example 3: Benzene flash point

Inputs:

CASRN
71-43-2

Excel formula:

=T_FLASH("71-43-2")

Expected output:

262.15

Example 4: Ethanol flash point with null method

Inputs:

CASRN method
64-17-5

Excel formula:

=T_FLASH("64-17-5", )

Expected output:

285.15

Python Code

Show Code
from chemicals.safety import T_flash

def t_flash(CASRN, method=None):
    """
    Handles the retrieval or calculation of a chemical's flash point.

    See: https://chemicals.readthedocs.io/chemicals.safety.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): Chemical Abstracts Service Registry Number identifier (-).
        method (str, optional): Source method name for flash point lookup (-). Default is None.

    Returns:
        float: Flash point of the chemical, [K].
    """
    try:
        res = T_flash(CASRN, method=method)
        if res is None:
            return "Error: Data not available"
        return float(res)
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Chemical Abstracts Service Registry Number identifier (-).
Source method name for flash point lookup (-).

TWA_LIMIT

This function retrieves the time-weighted average (TWA) occupational exposure limit for a chemical using its CAS Registry Number. TWA limits represent allowable average concentration across a standard work period.

The returned JSON includes the numeric value and its source unit (ppm or mg/m^3). Where multiple unit forms are available in the source data, ppm is preferred by the wrapped library.

Excel Usage

=TWA_LIMIT(CASRN, method)
  • CASRN (str, required): Chemical Abstracts Service Registry Number identifier (-).
  • method (str, optional, default: null): Source method name used for TWA lookup (-).

Returns (str): JSON string containing value and units.

Example 1: Benzene TWA

Inputs:

CASRN
71-43-2

Excel formula:

=TWA_LIMIT("71-43-2")

Expected output:

"{\"value\": 0.5, \"units\": \"ppm\"}"

Example 2: Furfural TWA

Inputs:

CASRN
98-00-0

Excel formula:

=TWA_LIMIT("98-00-0")

Expected output:

"{\"value\": 10.0, \"units\": \"ppm\"}"

Example 3: Boron oxide TWA

Inputs:

CASRN
1303-00-0

Excel formula:

=TWA_LIMIT("1303-00-0")

Expected output:

"{\"value\": 5.0742430905659505e-05, \"units\": \"ppm\"}"

Example 4: Benzene TWA with null method

Inputs:

CASRN method
71-43-2

Excel formula:

=TWA_LIMIT("71-43-2", )

Expected output:

"{\"value\": 0.5, \"units\": \"ppm\"}"

Python Code

Show Code
import json
from chemicals.safety import TWA

def twa_limit(CASRN, method=None):
    """
    Return the Time-Weighted Average exposure limits (TWA) for the desired chemical.

    See: https://chemicals.readthedocs.io/chemicals.safety.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str): Chemical Abstracts Service Registry Number identifier (-).
        method (str, optional): Source method name used for TWA lookup (-). Default is None.

    Returns:
        str: JSON string containing value and units.
    """
    try:
        res = TWA(CASRN, method=method)
        if res is None:
            return "Error: Data not available"
        return json.dumps({"value": res[0], "units": res[1]})
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Chemical Abstracts Service Registry Number identifier (-).
Source method name used for TWA lookup (-).

UFL

This function returns the upper flammability limit (UFL) for a chemical as a mole fraction in air at standard conditions. Values can be retrieved directly by CAS Registry Number or estimated when combustion heat and elemental composition are provided.

If no method is supplied, the wrapped library selects a preferred data source automatically. The optional atoms input accepts JSON text describing molecular composition by element counts.

Excel Usage

=UFL(CASRN, Hc, atoms, method)
  • CASRN (str, optional, default: ““): Chemical Abstracts Service Registry Number identifier (-).
  • Hc (float, optional, default: null): Heat of combustion of gas (J/mol).
  • atoms (str, optional, default: null): JSON text for a dictionary of atomic symbols and counts (-).
  • method (str, optional, default: null): Source or estimation method name for UFL lookup (-).

Returns (float): Upper flammability limit of the gas in an atmosphere at STP, [mole fraction].

Example 1: Benzene UFL

Inputs:

CASRN
71-43-2

Excel formula:

=UFL("71-43-2")

Expected output:

0.086

Example 2: Methane UFL from combustion heat and atoms

Inputs:

Hc atoms CASRN
-890590 {“C”: 1, “H”: 4} 74-82-8

Excel formula:

=UFL(-890590, "{"C": 1, "H": 4}", "74-82-8")

Expected output:

0.17

Example 3: Undecanol UFL using WIKIDATA method

Inputs:

CASRN method
111-69-3 WIKIDATA

Excel formula:

=UFL("111-69-3", "WIKIDATA")

Expected output:

0.05

Example 4: Benzene UFL with null method

Inputs:

CASRN method
71-43-2

Excel formula:

=UFL("71-43-2", )

Expected output:

0.086

Python Code

Show Code
import json
from chemicals.safety import UFL

def ufl(CASRN='', Hc=None, atoms=None, method=None):
    """
    Handles the retrieval or calculation of a chemical's Upper Flammability Limit.

    See: https://chemicals.readthedocs.io/chemicals.safety.html

    This example function is provided as-is without any representation of accuracy.

    Args:
        CASRN (str, optional): Chemical Abstracts Service Registry Number identifier (-). Default is ''.
        Hc (float, optional): Heat of combustion of gas (J/mol). Default is None.
        atoms (str, optional): JSON text for a dictionary of atomic symbols and counts (-). Default is None.
        method (str, optional): Source or estimation method name for UFL lookup (-). Default is None.

    Returns:
        float: Upper flammability limit of the gas in an atmosphere at STP, [mole fraction].
    """
    try:
        _a = json.loads(atoms) if atoms and isinstance(atoms, str) else atoms
        res = UFL(Hc=Hc, atoms=_a, CASRN=CASRN, method=method)
        if res is None:
            return "Error: Data not available"
        return float(res)
    except Exception as e:
        return f"Error: {str(e)}"

Online Calculator

Chemical Abstracts Service Registry Number identifier (-).
Heat of combustion of gas (J/mol).
JSON text for a dictionary of atomic symbols and counts (-).
Source or estimation method name for UFL lookup (-).