function toggleNextSibling (e) { if (e.nextSibling.style.display=='none') { e.nextSibling.style.display='block'; } else { e.nextSibling.style.display='none'; } } // Globals used by SEC loader (Show.js) window.SEC_ALIAS_DIR = ""; window.RFV_MENU = [{"category":"Cover","reports":[{"label":"Cover Page","pos":1,"url":"R1.htm"}]},{"category":"Financial Statements","reports":[{"label":"Consolidated Statements of Operations and Comprehensive Income (Unaudited) - Exelon","pos":2,"url":"R2.htm"},{"label":"Consolidated Statements of Operations and Comprehensive Income (Unaudited) - ComEd","pos":3,"url":"R3.htm"},{"label":"Consolidated Statements of Operations and Comprehensive Income (Unaudited) - PECO","pos":4,"url":"R4.htm"},{"label":"Statements of Operations and Comprehensive Income (Unaudited) - BGE","pos":5,"url":"R5.htm"},{"label":"Consolidated Statements of Operations and Comprehensive Income (Unaudited) - PHI","pos":6,"url":"R6.htm"},{"label":"Statements of Operations and Comprehensive Income (Unaudited) - Pepco","pos":7,"url":"R7.htm"},{"label":"Statements of Operations and Comprehensive Income (Unaudited) - DPL","pos":8,"url":"R8.htm"},{"label":"Consolidated Statements of Operations and Comprehensive Income (Unaudited) - ACE","pos":9,"url":"R9.htm"},{"label":"Consolidated Statements of Cash Flows (Unaudited) - Exelon","pos":10,"url":"R10.htm"},{"label":"Consolidated Statements of Cash Flows (Unaudited) - ComEd","pos":11,"url":"R11.htm"},{"label":"Consolidated Statements of Cash Flows (Unaudited) - PECO","pos":12,"url":"R12.htm"},{"label":"Statements of Cash Flows (Unaudited) - BGE","pos":13,"url":"R13.htm"},{"label":"Consolidated Statements of Cash Flows (Unaudited) - PHI","pos":14,"url":"R14.htm"},{"label":"Statements of Cash Flows (Unaudited) - Pepco","pos":15,"url":"R15.htm"},{"label":"Statements of Cash Flows (Unaudited) - DPL","pos":16,"url":"R16.htm"},{"label":"Consolidated Statements of Cash Flows (Unaudited) - ACE","pos":17,"url":"R17.htm"},{"label":"Consolidated Balance Sheets (Unaudited) - Exelon","pos":18,"url":"R18.htm"},{"label":"Consolidated Balance Sheets - Exelon (Parentheticals)","pos":19,"url":"R19.htm"},{"label":"Consolidated Balance Sheets (Unaudited) - ComEd","pos":20,"url":"R20.htm"},{"label":"Consolidated Balance Sheets - ComEd (Parentheticals)","pos":21,"url":"R21.htm"},{"label":"Consolidated Balance Sheets (Unaudited) - PECO","pos":22,"url":"R22.htm"},{"label":"Consolidated Balance Sheets - PECO (Parentheticals)","pos":23,"url":"R23.htm"},{"label":"Balance Sheets (Unaudited) - BGE","pos":24,"url":"R24.htm"},{"label":"Balance Sheets - BGE (Parentheticals)","pos":25,"url":"R25.htm"},{"label":"Consolidated Balance Sheets (Unaudited) - PHI","pos":26,"url":"R26.htm"},{"label":"Consolidated Balance Sheets - PHI (Parentheticals)","pos":27,"url":"R27.htm"},{"label":"Balance Sheets (Unaudited) - Pepco","pos":28,"url":"R28.htm"},{"label":"Balance Sheets (Unaudited) - Pepco (Parentheticals)","pos":29,"url":"R29.htm"},{"label":"Balance Sheets (Unaudited) - DPL","pos":30,"url":"R30.htm"},{"label":"Balance Sheets - DPL (Parentheticals)","pos":31,"url":"R31.htm"},{"label":"Consolidated Balance Sheets (Unaudited) - ACE","pos":32,"url":"R32.htm"},{"label":"Consolidated Balance Sheets - ACE (Parentheticals)","pos":33,"url":"R33.htm"},{"label":"Consolidated Statements of Changes in Shareholders Equity (Unaudited) - Exelon","pos":34,"url":"R34.htm"},{"label":"Consolidated Statements of Changes in Shareholders Equity - Exelon (Parentheticals)","pos":35,"url":"R35.htm"},{"label":"Consolidated Statements of Changes in Shareholders Equity (Unaudited) - ComEd","pos":36,"url":"R36.htm"},{"label":"Consolidated Statements of Changes in Shareholders Equity (Unaudited) - PECO","pos":37,"url":"R37.htm"},{"label":"Statements of Changes in Shareholders Equity (Unaudited) - BGE","pos":38,"url":"R38.htm"},{"label":"Consolidated Statements of Changes in Member's Equity (Unaudited) - PHI","pos":39,"url":"R39.htm"},{"label":"Statements of Changes in Shareholders Equity (Unaudited) - Pepco","pos":40,"url":"R40.htm"},{"label":"Statements of Changes in Shareholders Equity (Unaudited) - DPL","pos":41,"url":"R41.htm"},{"label":"Statements of Changes in Shareholder's Equity (Unaudited) - ACE","pos":42,"url":"R42.htm"}]},{"category":"Notes to Financial Statements","reports":[{"label":"Significant Accounting Policies (All Registrants)","pos":43,"url":"R43.htm"},{"label":"Regulatory Matters (All Registrants)","pos":44,"url":"R44.htm"},{"label":"Revenue from Contracts with Customers (All Registrants)","pos":45,"url":"R45.htm"},{"label":"Segment Information (All Registrants)","pos":46,"url":"R46.htm"},{"label":"Accounts Receivable (All Registrants)","pos":47,"url":"R47.htm"},{"label":"Property, Plant, and Equipment (Exelon and BGE)","pos":48,"url":"R48.htm"},{"label":"Income Taxes (All Registrants)","pos":49,"url":"R49.htm"},{"label":"Retirement Benefits (All Registrants)","pos":50,"url":"R50.htm"},{"label":"Derivative Financial Instruments (All Registrants)","pos":51,"url":"R51.htm"},{"label":"Debt and Credit Agreements (All Registrants)","pos":52,"url":"R52.htm"},{"label":"Fair Value of Financial Assets and Liabilities (All Registrants)","pos":53,"url":"R53.htm"},{"label":"Commitments and Contingencies (All Registrants)","pos":54,"url":"R54.htm"},{"label":"Changes in Accumulated Other Comprehensive Income (Exelon)","pos":55,"url":"R55.htm"},{"label":"Shareholders' Equity (Exelon)","pos":56,"url":"R56.htm"},{"label":"Supplemental Financial Information (All Registrants)","pos":57,"url":"R57.htm"},{"label":"Related Party Transactions (All Registrants)","pos":58,"url":"R58.htm"},{"label":"Insider Trading Arrangements","pos":59,"url":"R59.htm"}]},{"category":"Accounting Policies","reports":[{"label":"Significant Accounting Policies (Policies)","pos":60,"url":"R60.htm"}]},{"category":"Notes Tables","reports":[{"label":"Regulatory Matters (Tables)","pos":61,"url":"R61.htm"},{"label":"Revenue from Contracts with Customers (Tables)","pos":62,"url":"R62.htm"},{"label":"Segment Information (Tables)","pos":63,"url":"R63.htm"},{"label":"Accounts Receivable (Tables)","pos":64,"url":"R64.htm"},{"label":"Income Taxes (Tables)","pos":65,"url":"R65.htm"},{"label":"Retirement Benefits (Tables)","pos":66,"url":"R66.htm"},{"label":"Derivative Instruments and Hedging Activities (Tables)","pos":67,"url":"R67.htm"},{"label":"Debt and Credit Agreements (All Registrants) (Tables)","pos":68,"url":"R68.htm"},{"label":"Fair Value of Financial Assets and Liabilities (Tables)","pos":69,"url":"R69.htm"},{"label":"Commitments and Contingencies (Tables)","pos":70,"url":"R70.htm"},{"label":"Changes in Accumulated Other Comprehensive Income (Tables)","pos":71,"url":"R71.htm"},{"label":"Shareholders' Equity (Tables)","pos":72,"url":"R72.htm"},{"label":"Supplemental Financial Information (Tables)","pos":73,"url":"R73.htm"},{"label":"Related Party Transactions (Tables)","pos":74,"url":"R74.htm"}]},{"category":"Notes Details","reports":[{"label":"Significant Accounting Policies (Details)","pos":75,"url":"R75.htm"},{"label":"Regulatory Matters - Distribution Base Rate Case Proceedings (Details)","pos":76,"url":"R76.htm"},{"label":"Regulatory Matters - Narrative (Details)","pos":77,"url":"R77.htm"},{"label":"Regulatory Matters - Regulatory Assets and Liabilities (Details)","pos":78,"url":"R78.htm"},{"label":"Regulatory Matters - Schedule of Completed Rate Cases (Details)","pos":79,"url":"R79.htm"},{"label":"Regulatory Matters - Schedule of Pending Rate Cases (Details)","pos":80,"url":"R80.htm"},{"label":"Regulatory Matters - Annual Electric Transmission Fillings (Details)","pos":81,"url":"R81.htm"},{"label":"Regulatory Matters - Energy Efficiency Formula Rate (Details)","pos":82,"url":"R82.htm"},{"label":"Regulatory Matters - Capitalized Ratemaking Amount Not Recognized (Details)","pos":83,"url":"R83.htm"},{"label":"Revenue from Contracts with Customers - Narrative (Details)","pos":84,"url":"R84.htm"},{"label":"Revenue from Contracts with Customers - Change in Contract with Customer, Asset and Liability (Details)","pos":85,"url":"R85.htm"},{"label":"Revenue from Contract with Customer - Performance Obligations (Details)","pos":86,"url":"R86.htm"},{"label":"Segment Information - Narrative (Details)","pos":87,"url":"R87.htm"},{"label":"Segment Information - Reconciliation to Consolidated Financial Statements (Details)","pos":88,"url":"R88.htm"},{"label":"Segment Information - Electric and Gas Revenue by Customer Class (Details)","pos":89,"url":"R89.htm"},{"label":"Accounts Receivable - Allowance for Credit Losses Rollforward (Details)","pos":90,"url":"R90.htm"},{"label":"Accounts Receivable - Unbilled Customer Revenue (Details)","pos":91,"url":"R91.htm"},{"label":"Accounts Receivable - Purchases and Sales of Accounts Receivable (Detail)","pos":92,"url":"R92.htm"},{"label":"Property, Plant, and Equipment (Details)","pos":93,"url":"R93.htm"},{"label":"Income Taxes - Narrative (Details)","pos":94,"url":"R94.htm"},{"label":"Income Taxes - Reconciliation to Effective Tax Rate (Details)","pos":95,"url":"R95.htm"},{"label":"Income Taxes - Unrecognized Tax Benefits (Details)","pos":96,"url":"R96.htm"},{"label":"Income Taxes - Allocation of Tax Benefits (Details)","pos":97,"url":"R97.htm"},{"label":"Retirement Benefits - Narrative (Details)","pos":98,"url":"R98.htm"},{"label":"Retirement Benefits - Calculation of Net Periodic Benefit Cost (Details)","pos":99,"url":"R99.htm"},{"label":"Retirement Benefits - Allocated Portion of Pension and Postretirement Benefit Plan Costs (Details)","pos":100,"url":"R100.htm"},{"label":"Retirement Benefits - Defined Contribution Savings Plans (Details)","pos":101,"url":"R101.htm"},{"label":"Derivative Financial Instruments - Narrative (Details)","pos":102,"url":"R102.htm"},{"label":"Derivative Financial Instruments - Schedule of Derivative Instruments (Details)","pos":103,"url":"R103.htm"},{"label":"Derivative Financial Instruments - Summary of Interest Rate Hedge Balances (Details)","pos":104,"url":"R104.htm"},{"label":"Derivative Financial Instruments - Summary of Notional Amounts of Outstanding Derivative Positions (Details)","pos":105,"url":"R105.htm"},{"label":"Derivative Financial Instruments - Summary of Counterparty Collateral (Details)","pos":106,"url":"R106.htm"},{"label":"Debt and Credit Agreements (All Registrants) - Narrative (Details)","pos":107,"url":"R107.htm"},{"label":"Debt and Credit Agreements (All Registrants) - Convertible Notes (Details)","pos":108,"url":"R108.htm"},{"label":"Debt and Credit Agreements (All Registrants) - Commercial Paper Borrowings (Details)","pos":109,"url":"R109.htm"},{"label":"Debt and Credit Agreements (All Registrants) - Summary of Revolving Credit Agreements (Details)","pos":110,"url":"R110.htm"},{"label":"Debt and Credit Agreements (All Registrants) - Issuance of Long-Term Debt (Details)","pos":111,"url":"R111.htm"},{"label":"Fair Value Measures and Disclosures - Narrative (Details)","pos":112,"url":"R112.htm"},{"label":"Fair Value of Financial Assets and Liabilities - Fair Value of Financial Liabilities Recorded at Amortized Cost (Details)","pos":113,"url":"R113.htm"},{"label":"Fair Value of Financial Assets and Liabilities - Fair Value Measurements of Assets and Liabilities, Recurring and Nonrecurring (Details)","pos":114,"url":"R114.htm"},{"label":"Fair Value of Financial Assets and Liabilities - Fair Value Assets Liabilities Measured On Recurring Basis Unobservable Input Reconciliation (Details)","pos":115,"url":"R115.htm"},{"label":"Fair Value of Financial Assets and Liabilities - Fair Value Inputs Assets Quantitative Information (Details)","pos":116,"url":"R116.htm"},{"label":"Commitments and Contingencies - Narrative (Details)","pos":117,"url":"R117.htm"},{"label":"Commitments and Contingencies - Merger Commitment (Details)","pos":118,"url":"R118.htm"},{"label":"Commitments and Contingencies - Schedule of Commercial Commitments (Details)","pos":119,"url":"R119.htm"},{"label":"Commitments and Contingencies - Schedule of Accruals for Environmental Matters (Details)","pos":120,"url":"R120.htm"},{"label":"Changes in Accumulated Other Comprehensive Income - Schedule of Changes in AOCI (Details)","pos":121,"url":"R121.htm"},{"label":"Changes in Accumulated Other Comprehensive Income - Income Taxes Allocated to Other Comprehensive Income (Loss) Components (Details)","pos":122,"url":"R122.htm"},{"label":"Shareholders' Equity - Narrative (Details)","pos":123,"url":"R123.htm"},{"label":"Supplemental Financial Information - Taxes Other Than Income Taxes (Details)","pos":124,"url":"R124.htm"},{"label":"Supplemental Financial Information - Operations (Detail)","pos":125,"url":"R125.htm"},{"label":"Supplemental Financial Information - Cash Flow (Details)","pos":126,"url":"R126.htm"},{"label":"Supplemental Financial Information - Balance Sheet (Details)","pos":127,"url":"R127.htm"},{"label":"Related Party Transactions - BSC and PHISCO Service Companies (Details)","pos":128,"url":"R128.htm"},{"label":"Related Party Transactions - Current Receivables From/Payables To Affiliates (Details)","pos":129,"url":"R129.htm"},{"label":"Related Party Transactions - Long Term Debt to Financing Trusts (Details)","pos":130,"url":"R130.htm"}]},{"allReports":{"1":"R1.htm","2":"R2.htm","3":"R3.htm","4":"R4.htm","5":"R5.htm","6":"R6.htm","7":"R7.htm","8":"R8.htm","9":"R9.htm","10":"R10.htm","11":"R11.htm","12":"R12.htm","13":"R13.htm","14":"R14.htm","15":"R15.htm","16":"R16.htm","17":"R17.htm","18":"R18.htm","19":"R19.htm","20":"R20.htm","21":"R21.htm","22":"R22.htm","23":"R23.htm","24":"R24.htm","25":"R25.htm","26":"R26.htm","27":"R27.htm","28":"R28.htm","29":"R29.htm","30":"R30.htm","31":"R31.htm","32":"R32.htm","33":"R33.htm","34":"R34.htm","35":"R35.htm","36":"R36.htm","37":"R37.htm","38":"R38.htm","39":"R39.htm","40":"R40.htm","41":"R41.htm","42":"R42.htm","43":"R43.htm","44":"R44.htm","45":"R45.htm","46":"R46.htm","47":"R47.htm","48":"R48.htm","49":"R49.htm","50":"R50.htm","51":"R51.htm","52":"R52.htm","53":"R53.htm","54":"R54.htm","55":"R55.htm","56":"R56.htm","57":"R57.htm","58":"R58.htm","59":"R59.htm","60":"R60.htm","61":"R61.htm","62":"R62.htm","63":"R63.htm","64":"R64.htm","65":"R65.htm","66":"R66.htm","67":"R67.htm","68":"R68.htm","69":"R69.htm","70":"R70.htm","71":"R71.htm","72":"R72.htm","73":"R73.htm","74":"R74.htm","75":"R75.htm","76":"R76.htm","77":"R77.htm","78":"R78.htm","79":"R79.htm","80":"R80.htm","81":"R81.htm","82":"R82.htm","83":"R83.htm","84":"R84.htm","85":"R85.htm","86":"R86.htm","87":"R87.htm","88":"R88.htm","89":"R89.htm","90":"R90.htm","91":"R91.htm","92":"R92.htm","93":"R93.htm","94":"R94.htm","95":"R95.htm","96":"R96.htm","97":"R97.htm","98":"R98.htm","99":"R99.htm","100":"R100.htm","101":"R101.htm","102":"R102.htm","103":"R103.htm","104":"R104.htm","105":"R105.htm","106":"R106.htm","107":"R107.htm","108":"R108.htm","109":"R109.htm","110":"R110.htm","111":"R111.htm","112":"R112.htm","113":"R113.htm","114":"R114.htm","115":"R115.htm","116":"R116.htm","117":"R117.htm","118":"R118.htm","119":"R119.htm","120":"R120.htm","121":"R121.htm","122":"R122.htm","123":"R123.htm","124":"R124.htm","125":"R125.htm","126":"R126.htm","127":"R127.htm","128":"R128.htm","129":"R129.htm","130":"R130.htm","131":"ALL_REPORTS_SYNTHETIC"}}]; window.R_FILES_BY_POS = RFV_MENU.find(o => 'allReports' in o)?.allReports; function scrollMainContentToTop() { // Scroll to company info instead of top of page header const anchor = document.getElementById('company-info'); if (anchor) { anchor.scrollIntoView({ block: 'start', // top-align it behavior: 'auto' // no animation unless desired }); } } window.RENDERING_LOGS = RFV_MENU.find(o => 'renderingLogs' in o)?.renderingLogs; // Log viewer renders selected log into #reportDiv window.showRenderingLog = function () { const root = ensureShadow(); clearShadow(); let baseDir = (typeof window.SEC_ALIAS_DIR === 'string' && window.SEC_ALIAS_DIR.length) ? window.SEC_ALIAS_DIR.replace(/\/$/, '') : (location.pathname.replace(/\/[^/]*$/, '') || '/'); if (!baseDir.endsWith('/')) baseDir += '/'; const reportCssHref = `${baseDir}report.css`; // same folder as R1.htm const logEntries = window.RENDERING_LOGS || []; const rows = logEntries.map(entry => { const type = entry?.type || 'Info'; const text = (entry?.text || '').replace(/\r\n|\r|\n/g, '
'); const cls = type.slice(0,4).toLowerCase(); // 'erro', 'warn', 'info', etc. return `${type}: ${text}`; }).join(''); const container = document.createElement('div'); container.id = 'rfv-shadow-host'; container.innerHTML = `

Rendering Log

${rows}
The rendering log information below will not appear on the EDGAR web site.
`; root.appendChild(container); scrollMainContentToTop(); }; function decodeHtmlEntities(s) { // safest cross-browser decode const t = document.createElement('textarea'); t.innerHTML = s; return t.value; } function decodeBase64Utf8(b64) { const bin = atob(b64); const bytes = Uint8Array.from(bin, c => c.charCodeAt(0)); return new TextDecoder("utf-8").decode(bytes); } function sanitizeId(id) { return id.replace(/[^a-zA-Z0-9\._-]/g, '_'); // Replace invalid chars with underscore } /** * Normalize raw report HTML for extraction across contexts: * - SECWS: decode entity-escaped HTML (<html> → ) * - sec.gov SGML: keep full and , unwrap … safely * - Arelle/plain: pass through unchanged */ function normalizeReportHtml(raw) { let src = String(raw || ''); // If looks entity-escaped (e.g., <html>, <TEXT>, etc.), decode first const looksEscaped = /<\/?(?:html|head|body|TEXT)\b/i.test(src) || /<[a-z]/i.test(src); if (looksEscaped) { try { src = decodeHtmlEntities(src); } catch (_) {} } // If wrapped in SGML …, unwrap while preserving const hasSGML = //i.test(src) && /<\/TEXT>/i.test(src); if (hasSGML) { const start = src.search(//i); const end = src.search(/<\/TEXT>/i); if (start !== -1 && end !== -1 && end > start) { src = src.slice(start + ''.length, end); } } return src; } function ensureShadow() { const pane = document.getElementById('reportDiv'); if (!pane) return null; if (!pane.shadowRoot) pane.attachShadow({ mode: 'open' }); // mirror for any legacy code still reading _shadowRoot pane._shadowRoot = pane.shadowRoot; // make sure host is visible and not contained pane.hidden = false; pane.style.display = 'block'; pane.style.visibility = 'visible'; pane.style.contain = 'none'; return pane.shadowRoot; } function clearShadow() { const root = ensureShadow(); if (root) root.innerHTML = ''; } function renderIntoShadow(bodyHtml, links, inlineStyles, baseDir) { const root = ensureShadow(); if (!root) return; // Always clear previous report clearShadow(); // pane fades via .rfv-pending; do not change visibility to avoid header repaint const pane = document.getElementById('reportDiv'); // 1) Inline styles FIRST for immediate styling if (Array.isArray(inlineStyles)) { for (const css of inlineStyles) { if (css) { const styleEl = document.createElement('style'); styleEl.textContent = css; root.appendChild(styleEl); } } } // 2) Safety constraints (layout) const safety = document.createElement('style'); safety.textContent = ` :host { display:block; width:auto; max-width:100%; } #rfv-shadow-host { display:block; width:auto; max-width:100%; overflow:visible; } table.report { width:auto; max-width:100%; border-collapse: collapse; } img { max-width:100%; height:auto; } /* Unbeatable forced ring (wins against report CSS with !important resets) */ .rfv-force-focus, .rfv-focus-ring { outline: 3px solid #005A9C !important; outline-offset: 2px !important; box-shadow: 0 0 0 2px #fff inset !important; } :focus-visible { outline: 3px solid #005A9C !important; outline-offset: 2px !important; } `; root.appendChild(safety); // 3) Report body const container = document.createElement('div'); container.id = 'rfv-shadow-host'; container.innerHTML = bodyHtml; container.setAttribute('tabindex', '-1'); // make container focusable container.setAttribute('role', 'region'); // semantic region container.setAttribute('aria-label', 'All reports content'); // accessible name root.appendChild(container); // 4) External CSS: fetch-and-prepend, with fallback const loadExternalCss = () => { if (!Array.isArray(links) || !links.length) return Promise.resolve(); // some old R files have css includes to include/report.css but there is no include subdirectory const absHrefs = links.map(h => h.startsWith('/') // absolute → leave unchanged ? h : h.startsWith('include/') // legacy relative include/ ? `${baseDir}${h.slice(8)}` : `${baseDir}${h}` // standard relative report.css, etc. ); return Promise.allSettled( absHrefs.map(h => fetch(h).then(r => (r.ok ? r.text() : ''))) ).then(results => { const cssText = results .filter(r => r.status === 'fulfilled' && r.value) .map(r => normalizeReportHtml(r.value)) .join('\n'); const styles = document.createElement('style'); styles.textContent = cssText && cssText.length ? cssText : absHrefs.map(h => `@import url("${h}");`).join('\n'); root.insertBefore(styles, root.firstChild); }); }; // Resolve after external CSS is ready (if any) return loadExternalCss(); } // Cache of styles we've already loaded const RFV_LOADED_STYLES = new Set(); function extractLinksAndBody(fullHtml) { const doc = new DOMParser().parseFromString(fullHtml, 'text/html'); // External CSS links (e.g., ) const links = Array.from(doc.querySelectorAll('link[rel~="stylesheet"][href]')) .map(link => (link.getAttribute('href') || '').trim()) .filter(Boolean); // Inline