91³Ô¹ÏÍø

Watch CBS News

Chevron Richmond refinery, Air District reach agreement on hazardous gas monitoring

The Bay Area Air District (BAAD) reached an agreement with Chevron on a new air pollution monitoring system at its Richmond refinery that will bring enhanced monitoring for hydrogen sulfide, a smelly and potentially dangerous gas previously not properly monitored according to the Air District's standards.

Chevron is the first of the five oil refineries in the nine-county BAAD to reach an agreement with the Air District after all the refineries' fenceline monitoring programs were deemed insufficient and were "disapproved" in October 2023.

The agreement announced by the Air District Tuesday will implement a new, more robust monitoring system for hydrogen sulfide, increased data sharing, and more community outreach from the company.

Chevron also agreed to pay a penalty of $100,000 to the Air District and agreed to pay further penalties if it violates the settlement agreement, according to the Air District.

Hydrogen sulfide, or H2S, is a colorless, hazardous gas that is heavier than air and is a biproduct of the refining process. It can smell like rotten eggs in low concentrations and is also referred to as sewer gas, swamp gas, stink damp, and sour damp, according to the U.S. Occupational Health and Safety Administration (OSHA).

Health effects can occur even at low levels and include tearing eyes, headaches, nausea and vomiting. Exposure to sulfur dioxide can cause loss of consciousness or death, according to OSHA.

The Air District previously required refineries in the Bay Area to monitor the gas with an "open line" monitoring system, which uses a beam of light to measure the presence of hydrogen sulfide over a large area.

But in 2022 it told Chevron and others that their fenceline monitoring plans, which detect pollutants at the properties' edge, or fenceline, were deficient and needed to be remade. When the companies submitted their new plans the following year, they were each deemed out of regulatory compliance.

Chevron's deficiencies, and necessary corrections, centered around the number of data points that would be created by the monitoring technology, which are supposed to hit a certain threshold both hourly and quarterly. Other issues revolved around how the data was formatted and transmitted to regulators and retained for public review.

Under the settlement agreement, Chevron will install a network of four "point monitors" which will have a lower detection threshold for hydrogen sulfide. They detect the gas at certain points rather than over large areas and are said to be more accurate than the open line system currently being used. They are also more reliable in bad weather conditions, such as dense fog, that hampered the open line monitors, according to the BAAD.

"This settlement goes beyond what's required, and it reflects the Air District's commitment to transparency, enforcement and public health," said the Air District's executive officer, Philip Fine. "It raises the bar for transparency and community access to air quality data, setting a positive example for the industry."

The website maintained by Chevron to report air quality data to the public, Richmondairmonitoring.org, will now maintain data for five years, rather than the current three months, and make the data downloadable.

A spokesperson for Chevron said the agreement would essentially enhance the monitoring the company was already doing at the refinery.

"We know data and transparency are important to our community and are proud to be the first refinery in the Bay Area to move forward with these improvements," the company said in a statement.

Chevron will also hold a community meeting to discuss its monitoring program sometime before the end of the year, but it was not yet scheduled as of Wednesday. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });