<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dan McCarthy, Author at Corporate Knights</title>
	<atom:link href="https://corporateknights.com/author/dan-mccarthy/feed/" rel="self" type="application/rss+xml" />
	<link>https://corporateknights.com/author/dan-mccarthy/</link>
	<description>The Voice for Clean Capitalism</description>
	<lastBuildDate>Tue, 08 Sep 2026 20:52:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.7</generator>

<image>
	<url>https://corporateknights.com/wp-content/uploads/2022/05/cropped-K-Logo-in-Red-512-32x32.png</url>
	<title>Dan McCarthy, Author at Corporate Knights</title>
	<link>https://corporateknights.com/author/dan-mccarthy/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Solar is beating coal in China. But the story is more complicated than that.</title>
		<link>https://corporateknights.com/energy/solar-is-beating-coal-in-china-but-the-story-is-more-complicated-than-that/</link>
		
		<dc:creator><![CDATA[Dan McCarthy]]></dc:creator>
		<pubDate>Tue, 08 Sep 2026 20:52:49 +0000</pubDate>
				<category><![CDATA[Energy]]></category>
		<category><![CDATA[china]]></category>
		<category><![CDATA[Coal]]></category>
		<category><![CDATA[energy transition]]></category>
		<category><![CDATA[renewables]]></category>
		<category><![CDATA[Solar]]></category>
		<guid isPermaLink="false">https://corporateknights.com/?p=51196</guid>

					<description><![CDATA[<p>While true, the stat is a little misleading. The nuance is in understanding energy capacity.</p>
<p>The post <a href="https://corporateknights.com/energy/solar-is-beating-coal-in-china-but-the-story-is-more-complicated-than-that/">Solar is beating coal in China. But the story is more complicated than that.</a> appeared first on <a href="https://corporateknights.com">Corporate Knights</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="mb-4 md:grid md:grid-cols-12 md:gap-4 md:mb-6">
<p><em>This story was originally published by <a href="https://www.canarymedia.com/subscribe-to-our-newsletters">Canary Media</a>.</em></p>
</div>
<p>Solar is beating coal in China. Sorta. But also not at all.</p>
<p>Let me explain.</p>
<p>An eye-popping new chart made the rounds this week. It shows a line representing solar energy in China rising improbably over the last decade, until at last it overtakes another line that represents the nation’s vast coal fleet. One article featuring this chart came with the following headline: ​“<a href="https://www.semafor.com/article/09/01/2026/solar-surpasses-coal-in-china-becomes-top-power-source" target="_blank" rel="noopener">Solar surpasses coal in China, becomes top power source</a>.”</p>
<p>This is exactly the type of chart a person concerned about climate change could hope to see — one that would have defied the imagination of analysts and onlookers even a few years ago. It proves that the nation has been taking serious steps to clean up its coal-heavy grid, contra those who use China’s enormous emissions to justify climate complacency elsewhere.</p>
<p>But it’s also a bit misleading. While there’s nothing wrong with the data — solar really has overtaken coal in terms of capacity — the story is more complicated than a tidy chart can express.</p>
<p>To understand why, you’ll have to bear with some technical definitions. Capacity is the key word here: It’s a measure of the absolute maximum output a power plant can produce. But plants don’t run at full tilt, and experts use a metric called capacity factor to express how much electricity a facility actually produces compared with its potential output.</p>
<p>In China, coal has an average capacity factor of <a href="https://www.woodmac.com/press-releases/chinas-coal-fired-power-generation-declines-for-the-first-time-since-2015/" target="_blank" rel="noopener">around 50%</a>. Solar’s is <a href="https://www.the-independent.com/climate-change/news/china-solar-power-capacity-coal-first-time-b2912940.html" target="_blank" rel="noopener">only 14%</a>.</p>
<p>That means China still generates way, way more electricity from coal than from solar panels, even though solar’s capacity now outweighs coal’s. At current capacity factors, China’s solar fleet would need to be about 3.5 times bigger than its coal fleet in order to generate more electricity.</p>
<p>The yawning gap between capacity and generation is, in part, the result of physical differences between coal and solar. You might have heard that solar <a href="https://www.canarymedia.com/articles/solar/doe-solar-power-day-night-texas" target="_blank" rel="noopener">only works during the day?</a></p>
<p>But in China, a big piece of the story is also underutilization. The country has built solar — and wind — so quickly that it is struggling to metabolize the renewable energy sources into its grid. The nation doesn’t have enough power lines to bring electricity to where it’s needed, or enough batteries to absorb all the energy that isn’t immediately used.</p>
<p>Due largely to these constraints, China had to curtail — or leave unused — <a href="https://www.reuters.com/business/energy/china-leads-wave-clean-power-wastage-grids-globally-hit-limits-2026-08-17/" target="_blank" rel="noopener">more than one-quarter </a>of its wind and solar power in the first half of this year. As a result, 360 terawatt-hours of carbon-free power went to waste, an amount larger than the U.K.’s entire electricity use last year.</p>
<p>So, yes, solar has won the capacity race in China, and that is a truly remarkable milestone. But the real race — the one that measures actual electrons generated — is still coal’s to lose.</p>
<div class="md:grid md:grid-cols-12 md:gap-4">
<div class="md:col-span-9 md:col-start-2 lg:col-span-7 lg:col-start-2 2xl:col-span-6 2xl:col-start-4">
<div class="prose sm:prose-sm xl:prose-lg relative">
<div class="">
<p dir="ltr"><em><a href="https://www.canarymedia.com/about/people/dan-mccarthy">Dan McCarthy</a> is a senior editor at Canary Media.</em></p>
<p dir="ltr"><script>
var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),document.addEventListener("gform/theme/scripts_loaded",function(){gform.themeScriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>"function"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn("The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1."),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener("gform_main_scripts_loaded",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener("gform/theme/scripts_loaded",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener("DOMContentLoaded",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook("action",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook("filter",o,r,e,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,r){gform.removeHook("action",o,r)},removeFilter:function(o,r,e){gform.removeHook("filter",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+"_"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==r?t.apply(null,e):e[0]=t.apply(null,e)})),"filter"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});
</script>

                <div class='gf_browser_chrome gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_11' >
                        <div class='gform_heading'>
                            <h2 class="gform_title">The Weekly Roundup</h2>
                            <p class='gform_description'>Get all our stories in one place, every Wednesday at noon EST.</p>
                        </div><form method='post' enctype='multipart/form-data'  id='gform_11'  action='/author/dan-mccarthy/feed/' data-formid='11' novalidate>
                        <div class='gform-body gform_body'><div id='gform_fields_11' class='gform_fields top_label form_sublabel_below description_below validation_below'><div id="field_11_2" class="gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible"  ><label class='gfield_label gform-field-label' for='input_11_2'>Facebook</label><div class='ginput_container'><input name='input_2' id='input_11_2' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_11_2'>This field is for validation purposes and should be left unchanged.</div></div><div id="field_11_1" class="gfield gfield--type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below hidden_label field_validation_below gfield_visibility_visible"  ><label class='gfield_label gform-field-label' for='input_11_1'>Email<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_email'>
                            <input name='input_1' id='input_11_1' type='email' value='' class='large'   placeholder='YOUR EMAIL' aria-required="true" aria-invalid="false"  />
                        </div></div></div></div>
        <div class='gform-footer gform_footer top_label'> <input type='submit' id='gform_submit_button_11' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' value='SIGN UP'  /> 
            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_11' value='postback' />
            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_11' id='gform_theme_11' value='gravity-theme' />
            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_11' id='gform_style_settings_11' value='[]' />
            <input type='hidden' class='gform_hidden' name='is_submit_11' value='1' />
            <input type='hidden' class='gform_hidden' name='gform_submit' value='11' />
            
            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='CAD' value='jXU/IKOl7vYpOpF+WECEikFhqe4+NTP3M4tHpJyGgfEu3v0iWuBLhNC3R/CLgaINIinMl4N7Vuls/C4kydHSWhckXf+OOX8EZN7chil6hw2vy5c=' />
            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
            <input type='hidden' class='gform_hidden' name='state_11' value='WyJbXSIsIjdjY2U2ODhmOTVmZGE2ZTVkZTQxZmZiOTljZWY5OWY0Il0=' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_11' id='gform_target_page_number_11' value='0' />
            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_11' id='gform_source_page_number_11' value='1' />
            <input type='hidden' name='gform_field_values' value='' />
            
        </div>
                        </form>
                        </div><script>
gform.initializeOnLoaded( function() {gformInitSpinner( 11, 'https://corporateknights.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery('#gform_ajax_frame_11').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_11');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_11').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_11').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_11').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_11').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */  }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_11').val();gformInitSpinner( 11, 'https://corporateknights.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [11, current_page]);window['gf_submitting_11'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_11').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [11]);window['gf_submitting_11'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_11').text());}else{jQuery('#gform_11').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "11", currentPage: "current_page", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( "gform_wrapper_11" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( "span" );            visibilitySpan.id = "gform_visibility_test_11";            gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( "gform_visibility_test_11" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 11, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );
</script>

</div>
</div>
</div>
</div>
<p>The post <a href="https://corporateknights.com/energy/solar-is-beating-coal-in-china-but-the-story-is-more-complicated-than-that/">Solar is beating coal in China. But the story is more complicated than that.</a> appeared first on <a href="https://corporateknights.com">Corporate Knights</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
