import re def extract_scope(text, n): m = re.search(rf"Scope\s*{n}[^0-9]*(\d+\.?\d*)", text, re.I) return float(m.group(1)) if m else None def extract_revenue(text): m = re.search(r"Revenue[^0-9]*(\d+\.?\d*)", text, re.I) return float(m.group(1)) if m else None def carbon_intensity(scope1, revenue): if scope1 and revenue: return scope1 / revenue return None