RuleisRequest access

Deterministic SDS auditing

A supplier's SDS declares the hazard. Ruleis checks the math behind it.

Ruleis re-derives GHS hazard classifications from a supplier's own Section 3 data and flags any mismatch with what they declared, citing EU CLP and US OSHA HCS 2024. Every number shows its source.

The document workspace, shown with a synthetic test document. Selecting a field outlines where it was read on the supplier's page.

Honest by construction

A missing input is never shown as a clean result.

Every endpoint ends in one of three states: classified, evaluated with no cut-off crossed, or cannot be determined. When an input is missing the answer is "cannot be determined" and the missing inputs are listed, never a quiet "no hazard".

  • Classified
  • Evaluated, no cut-off crossed
  • Cannot be determined

One flag, traced

One flag, traced from the page to the rule.

A flag is only useful if you can see how it was reached. This one is traced through the calculation that produced it.

Illustrative example, not a real supplier document

1

Extracted from Section 3

Sodium hydroxide (CAS 1310-73-2), declared at 10-30 %

The composition range comes straight from the supplier's SDS, with the page it was read from.

2

Worst-case boundary

Evaluated at the upper bound: 30 %

A concentration range is run at the boundary that gives the most severe result, not the midpoint.

3

Limit from the Annex VI table

Sodium hydroxide: Skin Corr. 1A (H314) at C of 5.0 % or more

The same entry lists Skin Corr. 1B at 2.0 % to under 5.0 %, and Skin Irrit. 2 (H315) and Eye Irrit. 2 (H319) at 0.5 % to under 2.0 %. 30 % is above 5.0 %.

CLP Annex VI Table 3, entry 011-002-00-6, specific concentration limits

4

Flagged

Declared H315 under-declares the computed H314

Skin Irrit. 2 as declared is less severe than Skin Corr. 1A as computed.

CLP Article 10 / Annex VI Specific Concentration Limit

Every result cites its rule and rule version

EU CLP

Regulation (EC) No 1272/2008

US OSHA HCS 2024

29 CFR 1910.1200

GHS

UN GHS, Rev. 7

Classification data: EU CLP Annex VI (ATP23) and US OSHA HCS 2024. The GB mandatory classification list is not loaded.

The problem

A declared hazard classification is only as good as the cross-check behind it.

A Safety Data Sheet declares a hazard classification in Section 2. Confirming it against the Section 3 composition data means re-running toxicity, corrosion, and cutoff math by hand, so most distributors do not do it consistently.

Ruleis runs that cross-check on every document, every time, and shows its work.

Discrepancy detected

Illustrative example, not a real supplier document

Supplier declared
H315, Skin Irrit. 2
Ruleis computed
H314, Skin Corr. 1A
Basis
Upper bound 30 %, limit C of 5.0 % or more (Annex VI entry 011-002-00-6)

Under-disclosure: the declared classification is less severe than the composition data supports at its upper bound.

How it works

Language models read the PDF. Code decides the hazard.

  1. Step 1

    Upload the supplier SDS

    Ruleis reads Sections 2, 3, 9, 11 and 12 and records where on the page each value came from.

  2. Step 2

    Check every extracted value

    Values that more than one reader agrees on pass. The rest go to a person, with the page and the exact text beside them.

  3. Step 3

    Recalculate from rule tables

    Plain arithmetic and comparisons against versioned CLP and OSHA tables. No model decides a hazard, and each result cites its rule.

  4. Step 4

    Review, export, sign off

    Discrepancies show the supplier declaration beside the computed result. The audit report records every correction. Sign-off stays with your CIH or Regulatory Officer.

See the steps in the product

Three steps, one of them is code that never guesses.

The panels use a hypothetical document. Every limit and ATE value is taken from the rule tables; the concentrations are the example's own.

In the product, step 1

Upload the SDS, Ruleis extracts what matters

Ruleis parses Sections 2, 3, 9, 11 and 12: declared hazards, composition ranges, pH, toxicology and ecotoxicity data. Language models help only here, structuring OCR text and translating non-English layouts. They never decide a hazard classification.

Extracted from Section 3 (illustrative)

Sodium hydroxide
10-30 %
CAS
1310-73-2
Upper bound used
30 %

In the product, step 2

Deterministic code runs the hazard math

Every concentration range is evaluated at its worst-case upper bound. Acute toxicity additivity, corrosion, eye-damage and aquatic cut-offs run as plain arithmetic against versioned rule tables, so the same input gives the same result every time. A language model can misstate a threshold with total confidence, which is disqualifying for a legal compliance decision.

ATE additivity, oral route (illustrative)

Ingredient, harmonised ATE (Annex VI, formic acid)
500 mg/kg at 35 %
Mixture ATE = 100 / (35 / 500)
1428.6 mg/kg
Category 4 upper bound (GHS Table 3.1.1)
2000 mg/kg
Result
Category 4

In the product, step 3

Every discrepancy is flagged and cited

The computed classification is checked against the supplier's declared H-codes. A mismatch, whether over-disclosure or under-disclosure, is flagged with the citation and rule version behind it. The same inputs against the same rule tables give the same result.

Discrepancy record (illustrative)

Endpoint
skin_corrosion
Declared, computed
H315, H314
Citation
CLP Article 10 / Annex VI SCL

Sample audit report

What your auditor receives.

A PDF per document: the verdict, the composition, each endpoint in its three states, discrepancies with citations, field provenance, registry versions and hashes, and the audit timeline.

This sample was produced by the product from a fictional example document. The supplier and the product do not exist.

Download the sample report (PDF)

Pricing

Planned ranges, not an offer.

Ruleis is pre-launch. These are the ranges on our roadmap; terms are set per engagement.

  • Phase 1

    B2B SaaS

    12,000 to 36,000 USD

    annual contract value

  • Phase 2

    Usage-based

    1.50 to 5.00 USD

    per document

  • Phase 3

    Enterprise

    50,000 to 150,000 USD and above

    per year

Who it's for

Built for the people who sign off on hazard classifications.

Role 1 of 3

FAQ

What people ask before they sign up. The mechanics, not the marketing.

Ruleis re-derives the GHS hazard classification straight from a supplier's own Section 3 composition data, using the same math a regulatory officer would run by hand. If the result doesn't match what the supplier declared, it's flagged, with the specific rule and citation behind it.

It runs the calculation at the upper bound of that range, the worst case. If more than one ingredient shares a hazard endpoint, their upper bounds get added together before checking against the cutoff. This is the same approach a cautious reviewer would take by hand, applied consistently every time.

No. Language models are used only to read messy supplier PDFs and translate non-English documents into structured data. The actual classification, the toxicity math, the corrosion cutoffs, the pH overrides, all of it, runs as plain deterministic code against versioned rule tables. The same input always produces the same result.

It's flagged with the specific citation and rule version that produced it, for example a supplier declaring H315 when the composition data at its upper bound actually requires H314. Nothing is flagged without showing exactly which rule and which calculation triggered it.

Not yet, Ruleis is pre-launch. There's no self-serve signup. Use the request access form below and tell us about your supplier volume and the jurisdictions you need covered, and we'll follow up directly.

Classification data: EU CLP Annex VI (ATP23) and US OSHA HCS 2024. The GB mandatory classification list is not loaded. Results are not produced for other jurisdictions.

No. Ruleis automates the calculation and cross-check, but final regulatory sign-off remains the legal responsibility of the user's competent person or Regulatory Officer, as the footer says.

Request access

Ruleis is pre-launch. Talk to us before you sign up for anything.

There is no self-serve signup yet. Tell us about your supplier volume and the jurisdictions you need covered, and we will follow up directly.

Planned pricing ranges are above. Exact terms are set per engagement, ask in the form.

Sending opens your email client with this request prefilled so you can review it before it goes out. Ruleis is pre-launch, this reaches a person directly, not a queue.