CINXE.COM
Grid Status Launches Solution for Analyzing Power Market and Grid Data on Snowflake Marketplace | Utility Dive
<!DOCTYPE html> <html class="no-js" dir="ltr" lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Grid Status Launches Solution for Analyzing Power Market and Grid Data on Snowflake Marketplace | Utility Dive</title> <meta name="description" content="Utility industry news and analysis for energy professionals."/> <meta property="fb:pages" content="511735792306612"> <script data-cfasync="false"> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('consent','default',{ 'ad_storage':'denied', 'analytics_storage':'denied', 'ad_user_data':'denied', 'ad_personalization':'denied', 'personalization_storage':'denied', 'functionality_storage':'granted', 'security_storage':'granted', 'wait_for_update': 500 }); gtag("set", "ads_data_redaction", true); </script> <script data-cfasync="false" src="https://cmp.osano.com/AzqdtLT8Mqkut2TZ/bdeb2f70-056f-4937-961a-e9db412e4c7a/osano.js"></script> <style> .osano-cm-widget{display: none;} </style> <script data-cfasync="false"> window.Osano.cm.addEventListener("osano-cm-script-blocked", function (item) { console.log("Script blocked: " + item); }); window.Osano.cm.addEventListener("osano-cm-cookie-blocked", function (item) { console.log("Cookie blocked: " + item); }); </script> <script> window.dive_location = "NonEU"; window.dive_limit_data_processing = false; </script> <!-- ====== FAVICONS ======= --> <link rel="icon" type="image/x-icon" sizes="any" href="/favicon.ico?v=2" /> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=2"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=2"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=2"> <link rel="manifest" href="/site.webmanifest?v=2"> <link rel="mask-icon" href="/safari-pinned-tab.svg?v=2" color="#5bbad5"> <meta name="msapplication-TileImage" content="/mstile-150x150.png?v=2"> <meta name="msapplication-TileColor" content="#603cba"> <meta name="theme-color" content="#ffffff"> <link rel="alternate" type="application/rss+xml" title="Utility Dive - Latest News Feed" href="https://www.utilitydive.com/feeds/news/"/> <meta property="og:site_name" content="Utility Dive" /> <meta property="og:title" content="Grid Status Launches Solution for Analyzing Power Market and Grid Data on Snowflake Marketplace | Utility Dive"/> <meta property="og:type" content="website" /> <meta property="og:url" content="https://www.utilitydive.com/press-release/20250214-grid-status-launches-solution-for-analyzing-power-market-and-grid-data-on-s-1/" /> <meta property="og:image" content="http://res.cloudinary.com/dmgi9movl/image/upload/v1739567175/press_release/assets/header_images/utility_dive_press_release_tv3ipx.png" /> <link rel="stylesheet" href="/static/css/dive_app.css?510416050225"> <script> // Initialize dataLayer empty array for GTM events window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'site': 'Utility Dive', }); // wrapper function to push GTM events to dataLayer pushGTMEvent = (eventObject) => { // if window.datalayer is not defined, then set to an empty array window.dataLayer.push(eventObject); }; </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-55G8WRR');</script> <!-- End Google Tag Manager --> <script> let eventParams = {}; const gtmEventObject = { event: 'page.content', 'page.content': { v:11, // seer version ...eventParams } }; window.pushGTMEvent(gtmEventObject); </script> <script type="module" src="/static/js/dist/lyticsHelper.bundle.js?290716050225" ></script> <script type="text/javascript" src="/static/js/ad_blocker_recovery.js?160016291122"></script> <!-- These are the 2 necessary scripts for the ad recovery message to work --> <script async src="https://fundingchoicesmessages.google.com/i/pub-8553262192892817?ers=1" nonce="RORABhIXgMhQdZXbks8fZQ"></script> <script nonce="RORABhIXgMhQdZXbks8fZQ">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script> <!-- If the ad recovery message is blocked, this script shows a backup error message asking users to allow ads --> <script>(function(){/* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ 'use strict';var aa=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}},ba="function"==typeof Object.create?Object.create:function(a){var b=function(){};b.prototype=a;return new b},k;if("function"==typeof Object.setPrototypeOf)k=Object.setPrototypeOf;else{var m;a:{var ca={a:!0},n={};try{n.__proto__=ca;m=n.a;break a}catch(a){}m=!1}k=m?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null} var p=k,q=function(a,b){a.prototype=ba(b.prototype);a.prototype.constructor=a;if(p)p(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.v=b.prototype},r=this||self,da=function(){},t=function(a){return a};var u;var w=function(a,b){this.g=b===v?a:""};w.prototype.toString=function(){return this.g+""};var v={},x=function(a){if(void 0===u){var b=null;var c=r.trustedTypes;if(c&&c.createPolicy){try{b=c.createPolicy("goog#html",{createHTML:t,createScript:t,createScriptURL:t})}catch(d){r.console&&r.console.error(d.message)}u=b}else u=b}a=(b=u)?b.createScriptURL(a):a;return new w(a,v)};var A=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)};var B={},C=null;var D="function"===typeof Uint8Array;function E(a,b,c){return"object"===typeof a?D&&!Array.isArray(a)&&a instanceof Uint8Array?c(a):F(a,b,c):b(a)}function F(a,b,c){if(Array.isArray(a)){for(var d=Array(a.length),e=0;e<a.length;e++){var f=a[e];null!=f&&(d[e]=E(f,b,c))}Array.isArray(a)&&a.s&&G(d);return d}d={};for(e in a)Object.prototype.hasOwnProperty.call(a,e)&&(f=a[e],null!=f&&(d[e]=E(f,b,c)));return d} function ea(a){return F(a,function(b){return"number"===typeof b?isFinite(b)?b:String(b):b},function(b){var c;void 0===c&&(c=0);if(!C){C={};for(var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"],f=0;5>f;f++){var h=d.concat(e[f].split(""));B[f]=h;for(var g=0;g<h.length;g++){var l=h[g];void 0===C[l]&&(C[l]=g)}}}c=B[c];d=Array(Math.floor(b.length/3));e=c[64]||"";for(f=h=0;h<b.length-2;h+=3){var y=b[h],z=b[h+1];l=b[h+2];g=c[y>>2];y=c[(y&3)<< 4|z>>4];z=c[(z&15)<<2|l>>6];l=c[l&63];d[f++]=""+g+y+z+l}g=0;l=e;switch(b.length-h){case 2:g=b[h+1],l=c[(g&15)<<2]||e;case 1:b=b[h],d[f]=""+c[b>>2]+c[(b&3)<<4|g>>4]+l+e}return d.join("")})}var fa={s:{value:!0,configurable:!0}},G=function(a){Array.isArray(a)&&!Object.isFrozen(a)&&Object.defineProperties(a,fa);return a};var H;var J=function(a,b,c){var d=H;H=null;a||(a=d);d=this.constructor.u;a||(a=d?[d]:[]);this.j=d?0:-1;this.h=null;this.g=a;a:{d=this.g.length;a=d-1;if(d&&(d=this.g[a],!(null===d||"object"!=typeof d||Array.isArray(d)||D&&d instanceof Uint8Array))){this.l=a-this.j;this.i=d;break a}void 0!==b&&-1<b?(this.l=Math.max(b,a+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(c)for(b=0;b<c.length;b++)a=c[b],a<this.l?(a+=this.j,(d=this.g[a])?G(d):this.g[a]=I):(d=this.l+this.j,this.g[d]||(this.i=this.g[d]={}),(d=this.i[a])? G(d):this.i[a]=I)},I=Object.freeze(G([])),K=function(a,b){if(-1===b)return null;if(b<a.l){b+=a.j;var c=a.g[b];return c!==I?c:a.g[b]=G([])}if(a.i)return c=a.i[b],c!==I?c:a.i[b]=G([])},M=function(a,b){var c=L;if(-1===b)return null;a.h||(a.h={});if(!a.h[b]){var d=K(a,b);d&&(a.h[b]=new c(d))}return a.h[b]};J.prototype.toJSON=function(){var a=N(this,!1);return ea(a)}; var N=function(a,b){if(a.h)for(var c in a.h)if(Object.prototype.hasOwnProperty.call(a.h,c)){var d=a.h[c];if(Array.isArray(d))for(var e=0;e<d.length;e++)d[e]&&N(d[e],b);else d&&N(d,b)}return a.g},O=function(a,b){H=b=b?JSON.parse(b):null;a=new a(b);H=null;return a};J.prototype.toString=function(){return N(this,!1).toString()};var P=function(a){J.call(this,a)};q(P,J);function ha(a){var b,c=(a.ownerDocument&&a.ownerDocument.defaultView||window).document,d=null===(b=c.querySelector)||void 0===b?void 0:b.call(c,"script[nonce]");(b=d?d.nonce||d.getAttribute("nonce")||"":"")&&a.setAttribute("nonce",b)};var Q=function(a,b){b=String(b);"application/xhtml+xml"===a.contentType&&(b=b.toLowerCase());return a.createElement(b)},R=function(a){this.g=a||r.document||document};R.prototype.appendChild=function(a,b){a.appendChild(b)};var S=function(a,b,c,d,e,f){try{var h=a.g,g=Q(a.g,"SCRIPT");g.async=!0;g.src=b instanceof w&&b.constructor===w?b.g:"type_error:TrustedResourceUrl";ha(g);h.head.appendChild(g);g.addEventListener("load",function(){e();d&&h.head.removeChild(g)});g.addEventListener("error",function(){0<c?S(a,b,c-1,d,e,f):(d&&h.head.removeChild(g),f())})}catch(l){f()}};var ia=r.atob("aHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2ljb25zL21hdGVyaWFsL3N5c3RlbS8xeC93YXJuaW5nX2FtYmVyXzI0ZHAucG5n"),ja=r.atob("WW91IGFyZSBzZWVpbmcgdGhpcyBtZXNzYWdlIGJlY2F1c2UgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlIGlzIGludGVyZmVyaW5nIHdpdGggdGhpcyBwYWdlLg=="),ka=r.atob("RGlzYWJsZSBhbnkgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlLCB0aGVuIHJlbG9hZCB0aGlzIHBhZ2Uu"),la=function(a,b,c){this.h=a;this.j=new R(this.h);this.g=null;this.i=[];this.l=!1;this.o=b;this.m=c},V=function(a){if(a.h.body&&!a.l){var b= function(){T(a);r.setTimeout(function(){return U(a,3)},50)};S(a.j,a.o,2,!0,function(){r[a.m]||b()},b);a.l=!0}},T=function(a){for(var b=W(1,5),c=0;c<b;c++){var d=X(a);a.h.body.appendChild(d);a.i.push(d)}b=X(a);b.style.bottom="0";b.style.left="0";b.style.position="fixed";b.style.width=W(100,110).toString()+"%";b.style.zIndex=W(2147483544,2147483644).toString();b.style["background-color"]=ma(249,259,242,252,219,229);b.style["box-shadow"]="0 0 12px #888";b.style.color=ma(0,10,0,10,0,10);b.style.display= "flex";b.style["justify-content"]="center";b.style["font-family"]="Roboto, Arial";c=X(a);c.style.width=W(80,85).toString()+"%";c.style.maxWidth=W(750,775).toString()+"px";c.style.margin="24px";c.style.display="flex";c.style["align-items"]="flex-start";c.style["justify-content"]="center";d=Q(a.j.g,"IMG");d.className=A();d.src=ia;d.style.height="24px";d.style.width="24px";d.style["padding-right"]="16px";var e=X(a),f=X(a);f.style["font-weight"]="bold";f.textContent=ja;var h=X(a);h.textContent=ka;Y(a, e,f);Y(a,e,h);Y(a,c,d);Y(a,c,e);Y(a,b,c);a.g=b;a.h.body.appendChild(a.g);b=W(1,5);for(c=0;c<b;c++)d=X(a),a.h.body.appendChild(d),a.i.push(d)},Y=function(a,b,c){for(var d=W(1,5),e=0;e<d;e++){var f=X(a);b.appendChild(f)}b.appendChild(c);c=W(1,5);for(d=0;d<c;d++)e=X(a),b.appendChild(e)},W=function(a,b){return Math.floor(a+Math.random()*(b-a))},ma=function(a,b,c,d,e,f){return"rgb("+W(Math.max(a,0),Math.min(b,255)).toString()+","+W(Math.max(c,0),Math.min(d,255)).toString()+","+W(Math.max(e,0),Math.min(f, 255)).toString()+")"},X=function(a){a=Q(a.j.g,"DIV");a.className=A();return a},U=function(a,b){0>=b||null!=a.g&&0!=a.g.offsetHeight&&0!=a.g.offsetWidth||(na(a),T(a),r.setTimeout(function(){return U(a,b-1)},50))},na=function(a){var b=a.i;var c="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];b=c?c.call(b):{next:aa(b)};for(c=b.next();!c.done;c=b.next())(c=c.value)&&c.parentNode&&c.parentNode.removeChild(c);a.i=[];(b=a.g)&&b.parentNode&&b.parentNode.removeChild(b);a.g=null};var pa=function(a,b,c,d,e){var f=oa(c),h=function(l){l.appendChild(f);r.setTimeout(function(){f?(0!==f.offsetHeight&&0!==f.offsetWidth?b():a(),f.parentNode&&f.parentNode.removeChild(f)):a()},d)},g=function(l){document.body?h(document.body):0<l?r.setTimeout(function(){g(l-1)},e):b()};g(3)},oa=function(a){var b=document.createElement("div");b.className=a;b.style.width="1px";b.style.height="1px";b.style.position="absolute";b.style.left="-10000px";b.style.top="-10000px";b.style.zIndex="-10000";return b};var L=function(a){J.call(this,a)};q(L,J);var qa=function(a){J.call(this,a)};q(qa,J);var ra=function(a,b){this.l=a;this.m=new R(a.document);this.g=b;this.i=K(this.g,1);b=M(this.g,2);this.o=x(K(b,4)||"");this.h=!1;b=M(this.g,13);b=x(K(b,4)||"");this.j=new la(a.document,b,K(this.g,12))};ra.prototype.start=function(){sa(this)}; var sa=function(a){ta(a);S(a.m,a.o,3,!1,function(){a:{var b=a.i;var c=r.btoa(b);if(c=r[c]){try{var d=O(P,r.atob(c))}catch(e){b=!1;break a}b=b===K(d,1)}else b=!1}b?Z(a,K(a.g,14)):(Z(a,K(a.g,8)),V(a.j))},function(){pa(function(){Z(a,K(a.g,7));V(a.j)},function(){return Z(a,K(a.g,6))},K(a.g,9),K(a.g,10),K(a.g,11))})},Z=function(a,b){a.h||(a.h=!0,a=new a.l.XMLHttpRequest,a.open("GET",b,!0),a.send())},ta=function(a){var b=r.btoa(a.i);a.l[b]&&Z(a,K(a.g,5))};(function(a,b){r[a]=function(c){for(var d=[],e=0;e<arguments.length;++e)d[e-0]=arguments[e];r[a]=da;b.apply(null,d)}})("__h82AlnkH6D91__",function(a){"function"===typeof window.atob&&(new ra(window,O(qa,window.atob(a)))).start()});}).call(this); window.__h82AlnkH6D91__("WyJwdWItODU1MzI2MjE5Mjg5MjgxNyIsW251bGwsbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9iL3B1Yi04NTUzMjYyMTkyODkyODE3Il0sbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9lbC9BR1NLV3hVc0lBMXlKVmRQQWNGaXJQX1lGUTdENkpIZVNZUGV6bWNOM216TmJmYWhldlNobXpBVHkzVzlPLU5LV3MyNkx5cWVXRUx3YnRhZzN1MnZEWHVkZnFFSkVRXHUwMDNkXHUwMDNkP3RlXHUwMDNkVE9LRU5fRVhQT1NFRCIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFVoRGZtbFAtR2RTZUhBa1lVY2VmWTFQYXh1cDNFdmhndlJDNVM4bms3S2t1TElaUXBFQ05VZTIySUNjcGx4eF9oeVlveHJTdy1iU3FjUkhKZWwyWU1NalFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QxXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFgzMm02dWJvVVVwaXJ1b1VQMmhkY2R1S2U5S0pzaDlGRDloMDlWOTlYTkpyZkVTRW5HNzh4Vm0yUDZXdjBDNmkwMXZ4Ui11V25ZVVdlWEI3dmNCd1c5cFFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QyXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFh0cXRhOEVpaV9LUVI4VHNLaDFVUGJ5TFlnNU1ocDFqdVNFemltQVFFeDFjRDJxalJhTjNDM21hSkt1VkVqdGZ5bTZjSXg5emVaLU5IazZMbTE5QjB1ZGdcdTAwM2RcdTAwM2Q/c2JmXHUwMDNkMiIsImRpdi1ncHQtYWQiLDIwLDEwMCwiY0hWaUxUZzFOVE15TmpJeE9USTRPVEk0TVRjXHUwMDNkIixbbnVsbCxudWxsLG51bGwsImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tLzBlbW4vZi9wL3B1Yi04NTUzMjYyMTkyODkyODE3LmpzP3VzcXBcdTAwM2RDQUUiXSwiaHR0cHM6Ly9mdW5kaW5nY2hvaWNlc21lc3NhZ2VzLmdvb2dsZS5jb20vZWwvQUdTS1d4V0QtdnVGQVVZRE9STnItSmY2SnJGSGhYYU1QNlo5NG1CTjFyQ2g5M1FvdVNLSmtJcFBlLW1Uc2NpdHNWOEZ0aUdIdzBFZ1QtOEMzbHpFblJMczduZ0pQQVx1MDAzZFx1MDAzZCJd"); </script> <script src="/static/js/jquery_360.min.js?543516150322"></script> <script> // waitForTriggerHandler() is library for queuing up javascript to be stored and then executed when a trigger // function is called. You can push() any number of functions which will be stored unless and until trigger() // is called. Once trigger() is called any future functions that you push() in will be executed immediately. // It is safe to call .trigger() multiple times. Any arguments passed to .trigger() will also be passed along // to the associated function function waitForTriggerHandler() { var function_queue = []; var trigger_arguments = []; this._triggered = false; this.push = function(fn) { if (this._triggered) { // just run it immediately if handler has already been triggered fn.apply(null, trigger_arguments); } else { // otherwise add to the queue to run later function_queue.push(fn); } }; this.trigger = function() { // any arguments passed to trigger(foo, bar, baz) will also be passed along to functions in the queue // first convert any arguments to an array trigger_arguments = Array.prototype.slice.call(arguments); while (function_queue.length){ // for each function in the queue, pop it off and then execute it while passing in any // args that may have been passed to trigger(). function_queue.pop().apply(null, trigger_arguments); // The "null" above is for the value of "this". // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply#Parameters } this._triggered = true; } } // set up waitToLoadAds handler window.waitToLoadAds = new waitForTriggerHandler(); // We set up the triggers for this below, they depend on whether we're loading lytics on the page </script> <script type="text/javascript"> // This token is here for test_lytics_snippet.py test: lytics-is-enabled window.googletag = window.googletag || {}; googletag.cmd = googletag.cmd || []; // initialize callback (source: https://learn.lytics.com/product-docs/lytics-javascript-tag/receiving-data-from-lytics) !function(){"use strict";var o=window.jstag||(window.jstag={}),r=[];function n(e){o[e]=function(){for(var n=arguments.length,t=new Array(n),i=0;i<n;i++)t[i]=arguments[i];r.push([e,t])}}n("send"),n("mock"),n("identify"),n("pageView"),n("unblock"),n("getid"),n("setid"),n("loadEntity"),n("getEntity"),n("on"),n("once"),n("call"),o.loadScript=function(n,t,i){var e=document.createElement("script");e.async=!0,e.src=n,e.onload=t,e.onerror=i;var o=document.getElementsByTagName("script")[0],r=o&&o.parentNode||document.head||document.body,c=o||r.lastChild;return null!=c?r.insertBefore(e,c):r.appendChild(e),this},o.init=function n(t){return this.config=t,this.loadScript(t.src,function(){if(o.init===n)throw new Error("Load error!");o.init(o.config),function(){for(var n=0;n<r.length;n++){var t=r[n][0],i=r[n][1];o[t].apply(o,i)}r=void 0}()}),this}}(); // custom init + lytics default install tag from https://activate.getlytics.com/connect?aid=2751 // see https://learn.lytics.com/understanding/product-docs/lytics-javascript-tag/configuration#configuration-options var lyticsCid = '44fda7674f94228540d8fba6786f9770'; console.log('You are using the Lytics Prod account'); jstag.init({ src: `https://c.lytics.io/api/tag/${lyticsCid}/latest.min.js`, pageAnalysis: { dataLayerPull: { disabled: true } } }); jstag.pageView(); (function(){ var sailthru_cookie, sailthru_user_id; function read_cookie(cookieName) { var re = new RegExp('[; ]'+cookieName+'=([^\\s;]*)'); var sMatch = (' '+document.cookie).match(re); if (cookieName && sMatch) return unescape(sMatch[1]); return ''; } sailthru_cookie = read_cookie('sailthru_hid'); if (sailthru_cookie.length > 56) { sailthru_user_id = sailthru_cookie.slice(32,56); jstag.send({ st_profile_id: sailthru_user_id }); } })(); jstag.call('entityReady', waitToLoadAds.trigger); setTimeout(waitToLoadAds.trigger, 1000); // also trigger lytics if it's taking too long waitToLoadAds.push(function (lytics_data) { // lytics_data won't be defined if lytics failed to load correctly. In that case // we don't need to set any segments. if (lytics_data && lytics_data.segments) { googletag.cmd.push(function() { googletag.pubads().setTargeting("LyticsSegments", lytics_data.segments); }); } }); function getUID(id) { window.dataLayer.push({'user_id': id}); }; jstag.getid(getUID); </script> <script type="text/javascript" src="/static/js/mailcheck.min.js?192616240919"></script> <script type="text/javascript" src="/static/js/dive_mailcheck.js?192616240919"></script> <script src="/static/js/app.js?262317060225"></script> <script type="text/javascript"> var divecounter_settings = {}; </script> <script type="text/javascript" src="/static/js/divecounter.js?261616040423"></script> <script type="text/javascript"> // Special unbounce signup thing for google traffic. Test with ?test_unbounce in the URL // Note: divecounter must already be loaded. Only enabled on pages that would normally have signup ads // Note: showSignupAd is always off if prestitial is enabled! if ((typeof divecounter !== "undefined") && ($(window).width() > 640)) { var test_unbounce = (window.location.href.indexOf("?test_unbounce")>=0); var force_unbounce = (window.location.href.indexOf("signupbounce=1")>=0) || (window.location.href.indexOf("utm_campaign=Linked-HR")>=0) || (window.location.href.indexOf("utm_source=outbrain")>=0); if (test_unbounce || force_unbounce || (document.referrer.match(/^https?:\/\/(www\.google\.|news\.google\.|t\.co|twitter\.com|www\.facebook\.com)/i) && divecounter.getOption('showSignupAd') && divecounter.canShow(1,1)) ) { // dyanmically load ouibounce.js only on pages where its needed $.getScript("/static/js/ouibounce.min.js?102717100918", function(){ // Once ouibounce.js loads, call the script // We're reusing divecounter's modal instead of OuiBounce's modal code (that's why we pass it 'false') var _ouibounce = ouibounce(false, { aggressive: test_unbounce, // ignore cookie in test mode cookieName: '_viewedOuiBounce', // underscored cookies should be ignored by Varnish callback: function() { divecounter_open_ad(); } }); }); } // end should show unbounce } // end divecounter defined </script> <script type="module" src="/static/js/dist/googleAnalyticsHelper.bundle.js?290716050225" ></script> <script type="text/javascript"> function read_cookie(cookieName) { var re = new RegExp('[; ]'+cookieName+'=([^\\s;]*)'); var sMatch = (' '+document.cookie).match(re); if (cookieName && sMatch) return unescape(sMatch[1]); return ''; } var script = document.createElement('script'); script.type = 'text/javascript'; script.async = true; script.addEventListener('load', function(e) { // we only pass the template this context variable on newsposts let informaData = false; if (window.IIRISTracker) { var sailthru_id = read_cookie('sailthru_hid'); if (sailthru_id.length > 56) { sailthru_id = sailthru_id.slice(32,56); } var notProduction = 'False' === 'True'; var domain = 'www.utilitydive.com'.split('.')[1]; // on non-prod environment, there is specific collector domain to send the data to. var cDomain = notProduction ? 'com-informa-prod1.mini.snplow.net' : 'c.' + domain + '.com' // removed .com previous line var cfg = { config: { td: {}, snowplow: { context: {} } } }; cfg.config.idsource = 'sailthruid'; cfg.config.snowplow.appId = domain; cfg.config.snowplow.cDomain = cDomain; cfg.config.td.lob = 'it'; cfg.config.td.domain = domain; cfg.config.snowplow.contentTagEnabled = !!informaData cfg.config.snowplow.context = informaData window.IIRISTracker.initConfig(cfg); window.IIRISTracker.setTrackingUID(sailthru_id); var irisEvt = new Event('trackerLoaded'); window.dispatchEvent(irisEvt); } else { window.addEventListener('trackerLoaded', function(evt) { if(window.IIRISTracker) { window.IIRISTracker.setTrackingUID(sailthru_id); } }); } }); script.src = 'https://static.iris.informa.com/widgets/v3.0/iris-t.js'; document.getElementsByTagName('head')[0].appendChild(script); </script> <script type="text/javascript"> jQuery.browser = {}; (function () { jQuery.browser.msie = false; jQuery.browser.version = 0; if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) { jQuery.browser.msie = true; jQuery.browser.version = RegExp.$1; } })(); </script> <!-- for modal signup form --> <script type="text/javascript" src="/static/js/jquery.simplemodal.divefork.min.js?093716120922"></script> <style> /* dynamic style overrides based on DB go here*/ </style> <link rel="canonical" href="https://www.utilitydive.com/press-release/20250214-grid-status-launches-solution-for-analyzing-power-market-and-grid-data-on-s-1/" /> <link rel="preload" href="/static/css/dive_pressrelease_app.css?510416050225" as="style" onload="this.onload=null; this.rel='stylesheet';"> <script type="module" src="/static/js/dist/signupReferrer.bundle.js?290716050225" ></script> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <script src="/static/js/dist/signupDataGam.bundle.js?290716050225"></script> <script type="text/javascript" src="/static/js/dist/adTemplates.bundle.js?290716050225"></script> <script> var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; var eventer = window[eventMethod]; var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; // Build the site_logos object to be later referenced in house ads const site_logos = {}; site_logos['diveapi'] = { domain: 'diveapi', site_name: "API Site", alt_text: "API Site logo", is_current_site: false, white: { png: "None", svg: "None", }, black: { png: "None", svg: "None", } }; site_logos['agriculturedive'] = { domain: 'agriculturedive', site_name: "Agriculture Dive", alt_text: "Agriculture Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/agriculture_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/agriculture_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/agriculture_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/agriculture_black.svg", } }; site_logos['automotivedive'] = { domain: 'automotivedive', site_name: "Automotive Dive", alt_text: "Automotive Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/automotive_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/automotive_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/automotive_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/automotive_black.svg", } }; site_logos['bankingdive'] = { domain: 'bankingdive', site_name: "Banking Dive", alt_text: "Banking Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/banking_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/banking_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/banking_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/banking_black.svg", } }; site_logos['biopharmadive'] = { domain: 'biopharmadive', site_name: "BioPharma Dive", alt_text: "BioPharma Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/biopharma_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/biopharma_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/biopharma_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/biopharma_black.svg", } }; site_logos['cfo'] = { domain: 'cfo', site_name: "CFO.com", alt_text: "CFO.com logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfodotcom_white.svg", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfodotcom_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfodotcom_black.svg", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfodotcom_black.svg", } }; site_logos['cfodive'] = { domain: 'cfodive', site_name: "CFO Dive", alt_text: "CFO Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfo_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfo_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfo_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cfo_black.svg", } }; site_logos['ciodive'] = { domain: 'ciodive', site_name: "CIO Dive", alt_text: "CIO Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cio_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cio_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cio_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cio_black.svg", } }; site_logos['constructiondive'] = { domain: 'constructiondive', site_name: "Construction Dive", alt_text: "Construction Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/construction_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/construction_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/construction_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/construction_black.svg", } }; site_logos['cstoredive'] = { domain: 'cstoredive', site_name: "C-Store Dive", alt_text: "C-Store Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cstore_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cstore_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cstore_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cstore_black.svg", } }; site_logos['customerexperiencedive'] = { domain: 'customerexperiencedive', site_name: "CX Dive", alt_text: "CX Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cx_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cx_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cx_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cx_black.svg", } }; site_logos['cybersecuritydive'] = { domain: 'cybersecuritydive', site_name: "Cybersecurity Dive", alt_text: "Cybersecurity Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cybersecurity_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cybersecurity_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cybersecurity_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/cybersecurity_black.svg", } }; site_logos['educationdive'] = { domain: 'educationdive', site_name: "Education Dive", alt_text: "Education Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/education_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/education_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/education_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/education_black.svg", } }; site_logos['esgdive'] = { domain: 'esgdive', site_name: "ESG Dive", alt_text: "ESG Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/esg_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/esg_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/esg_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/esg_black.svg", } }; site_logos['facilitiesdive'] = { domain: 'facilitiesdive', site_name: "Facilities Dive", alt_text: "Facilities Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/facilities_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/facilities_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/facilities_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/facilities_black.svg", } }; site_logos['fashiondive'] = { domain: 'fashiondive', site_name: "Fashion Dive", alt_text: "Fashion Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/fashion_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/fashion_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/fashion_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/fashion_black.svg", } }; site_logos['fooddive'] = { domain: 'fooddive', site_name: "Food Dive", alt_text: "Food Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/food_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/food_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/food_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/food_black.svg", } }; site_logos['grocerydive'] = { domain: 'grocerydive', site_name: "Grocery Dive", alt_text: "Grocery Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/grocery_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/grocery_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/grocery_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/grocery_black.svg", } }; site_logos['healthcaredive'] = { domain: 'healthcaredive', site_name: "Healthcare Dive", alt_text: "Healthcare Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/healthcare_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/healthcare_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/healthcare_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/healthcare_black.svg", } }; site_logos['highereddive'] = { domain: 'highereddive', site_name: "Higher Ed Dive", alt_text: "Higher Ed Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/highered_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/highered_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/highered_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/highered_black.svg", } }; site_logos['hoteldive'] = { domain: 'hoteldive', site_name: "Hotel Dive", alt_text: "Hotel Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hotel_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hotel_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hotel_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hotel_black.svg", } }; site_logos['hrdive'] = { domain: 'hrdive', site_name: "HR Dive", alt_text: "HR Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hr_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hr_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hr_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/hr_black.svg", } }; site_logos['k12dive'] = { domain: 'k12dive', site_name: "K-12 Dive", alt_text: "K-12 Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/k12_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/k12_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/k12_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/k12_black.svg", } }; site_logos['legaldive'] = { domain: 'legaldive', site_name: "Legal Dive", alt_text: "Legal Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/legal_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/legal_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/legal_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/legal_black.svg", } }; site_logos['manufacturingdive'] = { domain: 'manufacturingdive', site_name: "Manufacturing Dive", alt_text: "Manufacturing Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/manufacturing_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/manufacturing_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/manufacturing_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/manufacturing_black.svg", } }; site_logos['marketingdive'] = { domain: 'marketingdive', site_name: "Marketing Dive", alt_text: "Marketing Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/marketing_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/marketing_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/marketing_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/marketing_black.svg", } }; site_logos['medtechdive'] = { domain: 'medtechdive', site_name: "MedTech Dive", alt_text: "MedTech Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/medtech_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/medtech_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/medtech_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/medtech_black.svg", } }; site_logos['mobilemarketer'] = { domain: 'mobilemarketer', site_name: "Mobile Marketer", alt_text: "Mobile Marketer logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/mobilemarketer_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/mobilemarketer_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/mobilemarketer_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/mobilemarketer_black.svg", } }; site_logos['multifamilydive'] = { domain: 'multifamilydive', site_name: "Multifamily Dive", alt_text: "Multifamily Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/multifamily_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/multifamily_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/multifamily_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/multifamily_black.svg", } }; site_logos['packagingdive'] = { domain: 'packagingdive', site_name: "Packaging Dive", alt_text: "Packaging Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/packaging_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/packaging_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/packaging_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/packaging_black.svg", } }; site_logos['paymentsdive'] = { domain: 'paymentsdive', site_name: "Payments Dive", alt_text: "Payments Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/payments_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/payments_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/payments_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/payments_black.svg", } }; site_logos['pharmavoice'] = { domain: 'pharmavoice', site_name: "PharmaVoice", alt_text: "PharmaVoice logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/pharmavoice_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/pharmavoice_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/pharmavoice_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/pharmavoice_black.svg", } }; site_logos['proformative'] = { domain: 'proformative', site_name: "Proformative", alt_text: "Proformative logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/proformative_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/proformative_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/proformative_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/proformative_black.svg", } }; site_logos['restaurantdive'] = { domain: 'restaurantdive', site_name: "Restaurant Dive", alt_text: "Restaurant Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/restaurant_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/restaurant_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/restaurant_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/restaurant_black.svg", } }; site_logos['retaildive'] = { domain: 'retaildive', site_name: "Retail Dive", alt_text: "Retail Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/retail_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/retail_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/retail_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/retail_black.svg", } }; site_logos['smartcitiesdive'] = { domain: 'smartcitiesdive', site_name: "Smart Cities Dive", alt_text: "Smart Cities Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smartcities_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smartcities_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smartcities_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smartcities_black.svg", } }; site_logos['socialmediatoday'] = { domain: 'socialmediatoday', site_name: "Social Media Today", alt_text: "Social Media Today logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smt_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smt_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smt_color.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/smt_color.svg", } }; site_logos['supplychaindive'] = { domain: 'supplychaindive', site_name: "Supply Chain Dive", alt_text: "Supply Chain Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/supplychain_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/supplychain_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/supplychain_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/supplychain_black.svg", } }; site_logos['truckingdive'] = { domain: 'truckingdive', site_name: "Trucking Dive", alt_text: "Trucking Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/trucking_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/trucking_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/trucking_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/trucking_black.svg", } }; site_logos['utilitydive'] = { domain: 'utilitydive', site_name: "Utility Dive", alt_text: "Utility Dive logo", is_current_site: true, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/utility_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/utility_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/utility_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/utility_black.svg", } }; site_logos['wastedive'] = { domain: 'wastedive', site_name: "Waste Dive", alt_text: "Waste Dive logo", is_current_site: false, white: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/waste_white.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/waste_white.svg", }, black: { png: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/waste_black.png", svg: "https://d12v9rtnomnebu.cloudfront.net/logo/publications/waste_black.svg", } }; // Get the dive domain and return the dive logo object, or null if it doesn't exist in site_logos function getDivesiteLogoObject(link_url, alt_domain='') { let dive_domain; // Split link URL on 'adurl=' and take what comes after as the ad url const ad_url = decodeURIComponent(link_url.split('adurl=')[1]); // Split on . to get an array of hostname segments const dive_domain_array = new URL(ad_url).hostname.split('.'); // Retrieve the second to last element of the hostname array, which should always be the domain dive_domain = dive_domain_array[dive_domain_array.length - 2] if (alt_domain) { // If alt_domain has been specified, normalize it. i.e. "HR Dive", "http://hrdive.com", etc. => "hrdive" // This will override the link url's domain. dive_domain = alt_domain.replace(/\s+/g, '').replace(/^(https?:\/\/)?(www\.)?|\.com.*|\?.*|#.*/gi, '').toLowerCase(); } // Return the site logos object for this domain if it exists, or null if it does not if (site_logos[dive_domain]) { return site_logos[dive_domain]; } else { // Fallback logo const url_prefix = "https://d12v9rtnomnebu.cloudfront.net/divesite/responsive_ad_assets/small_logos/"; return { domain: 'industrydive', site_name: 'Industry Dive', alt_text: 'Industry Dive logo', white: { svg: url_prefix + 'industrydive-small-white.svg', png: url_prefix + 'industrydive-small-white.png', }, black: { svg: url_prefix + 'industrydive-small-black.svg', png: url_prefix + 'industrydive-small-black.png', } } } } eventer(messageEvent, function (e) { var key = e.message ? "message" : "data"; var data = e[key]; var eventName = data.message || 'ignore'; if (eventName == 'adContentAvailable') { var $ad_element; $ad_element = $('div').filter('[data-container-ad-unit-id="' + data.adUnit + '-' + window.dfp_visibility + '"]'); $ad_element.hide() var nativeAdEditorialSelector = '.sidebar .hybrid-ad-wrapper .native-ad-editorial'; var nativeAdEditorialExists = $(nativeAdEditorialSelector).length > 0; if ( nativeAdEditorialExists ) { $(nativeAdEditorialSelector).closest('.hybrid-ad-wrapper').addClass('native-ad-editorial-sidebar-border'); } // Inline homepage ad $('.feed-item-ad .hybrid-ad-wrapper a').each(function (index, element) { window.updateGamAdUrl(element, 'inline'); }); // Editorial native ad sidebar // NOTE: must go before inline native ad to ensure correct location added $('.sidebar .native-ad.editorial a').each(function (index, element) { window.updateGamAdUrl(element, 'sidebar'); }); // Editorial native ad inline $('.native-ad.editorial a').each(function (index, element) { window.updateGamAdUrl(element, 'inline'); }); // Sidebar ad $('.sidebar .hybrid-ad-wrapper a').each(function (index, element) { window.updateGamAdUrl(element, 'sidebar'); }); } }, false); var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; googletag.cmd.push(function () { var desktopWidth = 1024; if (window.innerWidth >= desktopWidth) { window.dfp_visibility = 'desktop'; } else { window.dfp_visibility = 'mobile'; } var dfpDisplayConfiguration = { "prestitialEnabled": false, "leaderboardEnabled": true, "sidebarAdsEnabled": true, "visibility": window.dfp_visibility }; if (window.dfp_visibility == 'desktop') { if (typeof prestitialAds == 'object' && prestitialAds.pageIsPrestitialEligible()) { googletag.defineSlot('/21662595662/utilitydive/utilitydiveprestitial', [[500, 300], [640, 480]], 'paychekgoeshere').addService(googletag.pubads()); } if (dfpDisplayConfiguration.leaderboardEnabled) { googletag.defineSlot('/21662595662/utilitydive/utilitydiveleaderboard', [[970, 180], [728, 90], [970, 90]], 'dfp-leaderboard-desktop').addService(googletag.pubads()); googletag.pubads().addEventListener('slotRenderEnded', function (event) { if ((event.slot.getAdUnitPath() === '/21662595662/utilitydive/utilitydiveleaderboard' || event.slot.getAdUnitPath() === '/21662595662/utilitydive/utilitydiveleaderboard') && !event.isEmpty ) { $(window).blur(function () { if (document.activeElement === $('#dfp-leaderboard-desktop iframe')[0] || document.activeElement === $('#dfp-leaderboard-desktop iframe')[0]) { try { localStorage.setItem('leaderboard_signup_path', document.location.pathname); } catch (e) { // local storage could not be available due to privacy settings or something } } }); } }); } if (dfpDisplayConfiguration.sidebarAdsEnabled) { googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid1', [[300, 250], 'fluid', [160, 600]], 'dfp-hybrid1-desktop').addService(googletag.pubads()); } googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid2', [[300, 250], 'fluid'], 'dfp-hybrid2-desktop').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid3', [[300, 250], 'fluid'], 'dfp-hybrid3-desktop').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid4', [[300, 250], 'fluid'], 'dfp-hybrid4-desktop').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivethankyouhybrid1', ['fluid'], 'dfp-thankyouhybrid1-desktop').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivethankyouhybrid2', ['fluid'], 'dfp-thankyouhybrid2-desktop').addService(googletag.pubads()); } else { googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid1', [[300, 250], 'fluid'], 'dfp-hybrid1-mobile').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid2', [[300, 250], 'fluid'], 'dfp-hybrid2-mobile').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid3', [[300, 250], 'fluid'], 'dfp-hybrid3-mobile').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivehybrid4', [[300, 250], 'fluid'], 'dfp-hybrid4-mobile').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivethankyouhybrid1', ['fluid'], 'dfp-thankyouhybrid1-mobile').addService(googletag.pubads()); googletag.defineSlot('/21662595662/utilitydive/utilitydivethankyouhybrid2', ['fluid'], 'dfp-thankyouhybrid2-mobile').addService(googletag.pubads()); } if ((typeof divecounter !== "undefined") && (divecounter.getData().is_subscriber)) { googletag.pubads().setTargeting("is_subscriber", "yes"); } var site = window.location.host; googletag.pubads().setTargeting("site", site); var first_path = window.location.pathname.split( '/' )[1]; googletag.pubads().setTargeting("first_path", first_path); // Set ad targeting on the trendline to show the ads designated for it var isTopicPage = window.location.pathname.indexOf('/topic/') !== -1; if(isTopicPage) { googletag.pubads().setTargeting('is_topics_page', 'true'); } googletag.pubads().setCentering(true); googletag.pubads().collapseEmptyDivs(false); // Whether to collapse the slots even before the ads are fetched. googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); </script> <script>window.fallbackAds = '[{\u0022adType\u0022: \u0022editorial_native_ad\u0022, \u0022link\u0022: \u0022/trendline/sustainability/179/?utm_source\u003DUD\u0026utm_medium\u003DNativeFB\u0026utm_campaign\u003DTrendlineFB\u0022, \u0022label\u0022: \u0022Trendline\u0022, \u0022image\u0022: \u0022https://imgproxy.divecdn.com/\u002DaXAO18Hig6E7tiO3bzPXW2sKPQovIshSFOoO9TgDBQ/g:ce/rs:fit:212:100/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9HZXR0eUltYWdlcy0xNjQ3NzA1MjkuanBn.webp\u0022, \u0022attribution\u0022: \u0022\u0022, \u0022headline\u0022: \u0022How utilities are prioritizing sustainability efforts in 2025\u0022, \u0022ctaText\u0022: \u0022Access now\u0022, \u0022description\u0022: \u0022Companies are pursuing increasingly ambitous sustainability goals around clean energy, but integrating rising amounts of renewables, minimizing environmental impacts, and achieving carbon reduction targets can be challenging.\u0022}, {\u0022adType\u0022: \u0022editorial_native_ad\u0022, \u0022link\u0022: \u0022/trendline/virtual\u002Dpower\u002Dplants/519/?utm_source\u003DUD\u0026utm_medium\u003DNativeFB\u0026utm_campaign\u003DTrendlineFB\u0022, \u0022label\u0022: \u0022Trendline\u0022, \u0022image\u0022: \u0022https://imgproxy.divecdn.com/Sc88XUy48zsVoRfCeCzlmMleFBNfzLtjYfo2D62RiD0/g:ce/rs:fit:212:100/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL2RpdmVpbWFnZS9HZXR0eUltYWdlcy0xNDU1ODY5Njk2LmpwZw\u003D\u003D.webp\u0022, \u0022attribution\u0022: \u0022\u0022, \u0022headline\u0022: \u0022Inside the rise of virtual power plants\u0022, \u0022ctaText\u0022: \u0022Access now\u0022, \u0022description\u0022: \u0022Virtual power plants and their ability to balance energy supply and demand are increasingly sought by utilities as electricity demand increases, but their lack of standardization remains a barrier.\u0022}]'</script> <script type="module" src="/static/js/dist/onBoardDiagnostics.bundle.js?290716050225" ></script> <!-- NEW RELIC SYNTHETICS CANARY --> <!-- script for informa/techtarget banner --> <script src="https://d12v9rtnomnebu.cloudfront.net/informa_banner/techtarget-informa-banner.min.js"></script> </head> <body class="pressrelease"> <techtarget-informa-banner theme="light" language="en" class="no-print"></techtarget-informa-banner> <!-- Accessibility skip-nav link --> <a href="#skip-link-target" class="button button--loud skip-nav-link" tabindex="1">Skip to main content</a> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-55G8WRR" height="0" width="0" style="display:none;visibility:hidden"> </iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id="signup-inter" class="modal_dialog" style="display:none;"> <form id="signup-inter-form" class="form-basic" name="signup-inter-form" action="/signup/" method="POST"> <input type="hidden" name="signup_box_location" value="interstitial"> <input type="hidden" name="signup_initial_url_path" value=""> <h1> Don't miss tomorrow's electric utility industry news </h1> <p class="interstitial-text"> Let Utility Dive's free newsletter keep you informed, straight from your inbox. </p> <p class="form-error__message" id="interstitial-error"></p> <div id="form-interstitial"> <input type="email" name="email" placeholder="Work email address" class="email" required id="id_a1240f_email"> <div id="newsletter-list-section"> <ul id="id_a1240f_site_newsletters" class="list-no-bullets"> <li><label for="id_a1240f_site_newsletters_0"><input type="checkbox" name="site_newsletters" value="2" class="list-no-bullets" id="id_a1240f_site_newsletters_0"> Daily Dive <span class="secondary-label">M-F</span></label> </li> <li><label for="id_a1240f_site_newsletters_1"><input type="checkbox" name="site_newsletters" value="41" class="list-no-bullets" id="id_a1240f_site_newsletters_1"> Storage Weekly <span class="secondary-label">Every Tuesday</span></label> </li> <li><label for="id_a1240f_site_newsletters_2"><input type="checkbox" name="site_newsletters" value="13" class="list-no-bullets" id="id_a1240f_site_newsletters_2"> Load Management Weekly <span class="secondary-label">Every Wednesday</span> <p class="newsletter-partner">In partnership with</p><img class="newsletter-partner" loading="lazy" src="https://imgproxy.divecdn.com/HKJu6uVJPTX-d4gNw7YugKLYlbufnSe1qe3AQsV_fzc/raw:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL3RodW1ibmFpbHMvbmV3c2xldHRlcl9saXN0cy9QTE1BX2xvZ28ucG5n"></label> </li> <li><label for="id_a1240f_site_newsletters_3"><input type="checkbox" name="site_newsletters" value="25" class="list-no-bullets" id="id_a1240f_site_newsletters_3"> Renewable Energy Weekly <span class="secondary-label">Every Thursday</span> <p class="newsletter-partner">In partnership with</p><img class="newsletter-partner" loading="lazy" src="https://imgproxy.divecdn.com/1hVbXLb-Spzm3NFCLfhzZiKL8f7i8_ELUv7ZmwPTSYc/raw:1/Z3M6Ly9kaXZlc2l0ZS1zdG9yYWdlL3RodW1ibmFpbHMvbmV3c2xldHRlcl9saXN0cy9zZXBhX2xvZ28uanBn"></label> </li> </ul> </div> <div id="interstitial-consent-container"> <input name="user_consent" value="1" id="id_user_consent" type="checkbox"> <span> By signing up to receive our newsletter, you agree to our <a href="https://www.techtarget.com/terms-of-use/" target="_blank">Terms of Use</a> and <a href="https://www.techtarget.com/privacy-policy/" target="_blank">Privacy Policy</a>. You can unsubscribe at anytime. </span> </div> </div> <input id="signup-inter-submit" class="email_submit submit button" type="submit" data-role="none" value="Subscribe today"> </form> </div> <!-- leaderboard --> <div class="leaderboard-wrap"> <div class="hide-small show-large"> <div data-container-ad-unit-id="/21662595662/utilitydive/utilitydiveleaderboard-desktop"></div> <div id='dfp-leaderboard-desktop' style="min-height: 90px"> <script> waitToLoadAds.push(function() { googletag.cmd.push(function() { if (window.dfp_visibility == 'desktop') { googletag.display('dfp-leaderboard-desktop'); } }) }); </script> </div> </div> </div> <div class="page-container"> <header role="banner"> <nav id="top" class="site-menu" aria-label="Site menu"> <div class="site-menu-inner"> <!-- logo --> <div class="pub-logo-wrapper"> <a href="/" class="analytics t-dash-navigation"> <img class="pub-logo" src="https://d12v9rtnomnebu.cloudfront.net/logo/publications/utility_black.svg" alt="Utility Dive" height="28"> </a> </div> <!-- desktop menu, not visible on mobile/tablet --> <div class="menu-content-wrapper"> <ul class="desktop-menu-main"> <li> <a href="/deep-dive/" class="nav-menu-item analytics t-deepdive-navigation">Deep Dive</a> </li> <li> <a href="/opinion/" class="nav-menu-item analytics t-opinion-navigation">Opinion</a> </li> <li> <a href="/library/" class="nav-menu-item analytics t-library-navigation">Library</a> </li> <li> <a href="/events/" class="nav-menu-item analytics t-events-navigation">Events</a> </li> <li> <a href="/press-release/" class="nav-menu-item analytics t-press-releases-navigation">Press Releases</a> </li> <li class="topics top-nav-dropdown-item"> <button class="nav-menu-item topics-dropdown-item"> Topics <span class="dropdown-toggle-arrow"></span> </button> </li> </ul> <!-- mobile menu toggle icon, not visible on desktop --> <a href="/signup/?signup_location=header" class="nav-menu-item nav-signup-button mobile-nav-signup-button analytics t-signup-navigation button"> Sign up </a> <button class="mobile-menu-toggle"> <img src="/static/img/menu_icons/menu.svg?273117231121" alt="menu" loading="lazy"> </button> <!-- newsletter and search, only shown on desktop --> <ul class="desktop-menu-sub list-no-bullets"> <li> <button class="search-toggle search-button-front analytics t-search-navigation-top"> <img src="/static/img/menu_icons/search.svg?320116291121" alt="search" width="16" height="16" loading="lazy"> <span class="sub-link">Search</span> </button> </li> <li> <a href="/signup/?signup_location=header" class="nav-menu-item nav-signup-button desktop-nav-signup-button analytics t-signup-navigation button"> <img src="/static/img/email_icons/mail.svg?273117231121" width="16" height="11" loading="lazy" alt=""> Sign up </a> </li> </ul> </div> </div> </nav> </header> <div class="menu-search js-search-hide"> <div class="menu-search-inner-wrapper row"> <form action="/search/" method="GET" data-ajax="false"> <label for="search-desktop"> <span class="screen-reader-text search">Search</span> </label> <input id="search-desktop" type="search" name="q" placeholder="Search" data-role="none"> <button type="submit" value="" data-role="none" class="search-button-front analytics t-search-navigation-drawer"> <img src="/static/img/menu_icons/search.svg?320116291121" alt="search" height="16" width="16" loading="lazy"> </button> <img class="close" src="/static/img/menu_icons/close.svg?273117231121" width="16" height="16" alt="close search" loading="lazy"> </form> </div> </div> <nav class="topics menu-bar" aria-label="Menu bar"> <ul class="list-no-bullets"> <li> <a class="analytics t-topic-navigation-Generation" href="/topic/Generation/">Generation</a> </li> <li> <a class="analytics t-topic-navigation-transmission-distribution" href="/topic/transmission-distribution/">T&D</a> </li> <li> <a class="analytics t-topic-navigation-grid-security-reliability" href="/topic/grid-security-reliability/">Grid Reliability</a> </li> <li> <a class="analytics t-topic-navigation-building-transportation-electrification" href="/topic/building-transportation-electrification/">Electrification</a> </li> <li> <a class="analytics t-topic-navigation-demand-response" href="/topic/demand-response/">Load Management</a> </li> <li> <a class="analytics t-topic-navigation-solar" href="/topic/solar/">Renewables</a> </li> <li> <a class="analytics t-topic-navigation-storage" href="/topic/storage/">Storage</a> </li> <li> <a class="analytics t-topic-navigation-distributed-energy" href="/topic/distributed-energy/">DER</a> </li> <li> <a class="analytics t-topic-navigation-policy" href="/topic/policy/">Regs</a> </li> <li> <a class="analytics t-topic-navigation-market-news" href="/topic/market-news/">Corp News</a> </li> </ul> </nav> <script type="module" src="/static/js/dist/navSignupHelper.bundle.js?290716050225" ></script> <script> window.siteName = 'Utility Dive'; </script> <div class="search-overlay"></div> <div class="page-wrapper"> <div class="page-inner-wrapper" id="skip-link-target"> <script src="/static/js/jquery.ui.widget.js" type="text/javascript"></script> <script src="/static/js/jquery.iframe-transport.js" type="text/javascript"></script> <script src="/static/js/jquery.fileupload.js" type="text/javascript"></script> <script src="/static/js/jquery.cloudinary.js" type="text/javascript"></script> <script type='text/javascript'> $.cloudinary.config({"api_key": "516981353162248", "cloud_name": "dmgi9movl"}); </script> <section class="pressrelease-written-content "> <div class="header"> <div class="header__background-top"></div> <div class="row"> <div class="header__back-link"> <a href="/press-release/">← Press Releases</a> <div class="clear-fix"></div> </div> <div class="header__wrapper"> <div class="header__wrapper__background-middle"></div> <div class="large-2 medium-2 large-push-9 medium-push-9 columns"> <div class="header__wrapper__company-logo show-medium"> <img alt="Grid Status logo" class="cld-responsive" data-src="https://res.cloudinary.com/dmgi9movl/image/upload/dpr_auto,w_auto/v1739567171/press_release/assets/company_logos/icon-only-color_1_ub0vth.png"/> </div> </div> <div class="large-offset-1 medium-offset-1 large-9 medium-9 large-pull-3 medium-pull-3 columns"> <h1 class="heading-02 header__wrapper__title">Grid Status Launches Solution for Analyzing Power Market and Grid Data on Snowflake Marketplace</h1> <h2 class="header__wrapper__subheader">Joint customers can leverage power market data from Grid Status to track grid conditions, analyze pricing, generate forecasts, and monitor markets.</h2> <div class="header__wrapper__secondary-label"> PRESS RELEASE FROM <a href="https://www.gridstatus.io" rel="nofollow">GRID STATUS</a> </div> </div> </div> </div> </div> <div class="background-bottom"></div> <article class="content"> <div class="row"> <div class="large-4 medium-4 columns"> <div class="content__publish-date">February 18, 2025</div> <div class="content__contacts-divider"></div> <ul class="social-icon-list"> <li> <a href="http://www.linkedin.com/shareArticle?mini=true&url=https%3A//www.utilitydive.com/press-release/20250214-grid-status-launches-solution-for-analyzing-power-market-and-grid-data-on-s-1/&title=Grid%20Status%20Launches%20Solution%20for%20Analyzing%20Power%20Market%20and%20Grid%20Data%20on%20Snowflake%20Marketplace" aria-label="Share article to Linkedin" class="social-icon"> <img src="/static/img/social_icons/article_page/linkedin.svg?092716141024" alt="Post to LinkedIn"> <span class="social-icon__text">post</span> </a> </li> <li> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A//www.utilitydive.com/press-release/20250214-grid-status-launches-solution-for-analyzing-power-market-and-grid-data-on-s-1/" aria-label="Share article to Facebook" class="social-icon"> <img src="/static/img/social_icons/article_page/facebook.svg?440116200824" alt="Share on Facebook"> <span class="social-icon__text">share</span> </a> </li> <li> <a href="https://twitter.com/intent/tweet?text=Grid%20Status%20Launches%20Solution%20for%20Analyzing%20Power%20Market%20and%20Grid%20Data%20on%20Snowflake%20Marketplace%20https%3A//www.utilitydive.com/press-release/20250214-grid-status-launches-solution-for-analyzing-power-market-and-grid-data-on-s-1/%20via%20@UtilityDive" aria-label="Share article to X/Twitter" class="social-icon"> <img src="/static/img/social_icons/article_page/x.svg?092716141024" alt="Post on X"> <span class="social-icon__text">post</span> </a> </li> <li> <a href="javascript:window.print()" aria-label="Print article" class="social-icon js-social-icon-print"> <img src="/static/img/social_icons/article_page/print.svg?440116200824" alt="Print this page"> <span class="social-icon__text">print</span> </a> </li> <li> <a href="/cdn-cgi/l/email-protection#fbc4a88e99919e988fc6bc89929fdec9cba88f9a8f8e88dec9cbb79a8e9598939e88dec9cba894978e8f929495dec9cb9d9489dec9cbba959a97828192959cdec9cbab948c9e89dec9cbb69a89909e8fdec9cb9a959fdec9cbbc89929fdec9cbbf9a8f9adec9cb9495dec9cba895948c9d979a909edec9cbb69a89909e8f8b979a989edd9a968bc0b9949f82c6938f8f8b88dec8bad4d48c8c8cd58e8f9297928f829f928d9ed5989496d48b899e8888d6899e979e9a889ed4c9cbc9cecbc9cacfd69c89929fd6888f9a8f8e88d6979a8e9598939e88d68894978e8f929495d69d9489d69a959a97828192959cd68b948c9e89d6969a89909e8fd69a959fd69c89929fd69f9a8f9ad69495d688d6cad4" aria-label="Share article with email" class="social-icon"> <img src="/static/img/social_icons/article_page/email.svg?092716141024" alt="Email this page"> <span class="social-icon__text">email</span> </a> </li> </ul> <div class="content__contacts-header">Press Contacts</div> <div class="content__contacts-wrapper"> <div class="content__contacts-wrapper__contact"> <div class="content__contacts-wrapper__contact__name">Clara Zou</div> <div class="content__contacts-wrapper__contact__email"><a href="/cdn-cgi/l/email-protection#5f323a3b363e1f382d363b2c2b3e2b2a2c713630"><span class="__cf_email__" data-cfemail="18757d7c7179587f6a717c6b6c796c6d6b367177">[email protected]</span></a></div> <div class="content__contacts-wrapper__contact__phone"></div> </div> </div> </div> <div class="large-7 medium-8 end columns"> <div class="content__image__wrapper"> <img alt="{{press_release.company_name}} header image" class="cld-responsive content__image" data-src="https://res.cloudinary.com/dmgi9movl/image/upload/dpr_auto,w_auto/v1739567175/press_release/assets/header_images/utility_dive_press_release_tv3ipx.png"/> </div> <div class="content__text"> <span class="content__text__location"><strong>CHICAGO — </strong></span><p>Grid Status today announced the launch of its <a href="https://app.snowflake.com/marketplace/listing/GZT1Z1IIJ3D/grid-status-power-market-data-north-america" rel="nofollow">comprehensive power market datasets</a> on <a href="https://app.snowflake.com/marketplace" rel="nofollow">Snowflake Marketplace</a>. Grid Status’s availability on Snowflake Marketplace provides instant access to low latency real-time and historical data that enables traders, operators, and developers to perform complex analysis and train AI models. </p><p><i>“We’ve been testing and improving this offering with select customers for nearly a year,” said Max Kanter, Founder and CEO at Grid Status. “Our engineering team has done fantastic work to ensure our cleaned and standardized data is available on Snowflake within minutes of being published, so our customers can rely on it for their business-critical decisions.”</i></p><p><a href="https://www.gridstatus.io/products/snowflake" rel="nofollow">Grid Status' offering</a> is the easiest and fastest way for data scientists and analysts to access data about supply, demand, and operations of energy markets. It eliminates the hassle of complex data integration, ensuring smooth and accurate processes for high-stakes energy trading and operational decision-making.</p><p><i>“Grid Status on Snowflake has been a game changer for Cypress Creek Renewables, enabling us to analyze large volumes of historical market data and gain a deeper understanding of energy markets to optimize asset operations,” said Ajit Gopalakrishnan, Senior Manager, Quantitative Analytics at Cypress Creek Renewables. “The low latency of the data has also allowed us to seamlessly integrate Grid Status's offering into our real-time dashboards and machine learning models, significantly enhancing our decision-making processes.”</i></p><p><a href="https://www.gridstatus.io/" rel="nofollow">Grid Status</a> and <a href="https://www.snowflake.com/" rel="nofollow">Snowflake</a>, the AI Data Cloud company, are working together to help joint customers make informed business decisions and drive innovation.</p><p>Joint customers can leverage Grid Status’s data to quickly create market insights, allowing them to improve accuracy when navigating energy markets, manage financial risk, and optimize asset management. </p><p><i>“By bringing its comprehensive power market datasets to Snowflake Marketplace, Grid Status is making energy data more accessible and actionable for our joint customers,” said Tim Long, Global Industry GTM Lead for Manufacturing at Snowflake. “This collaboration enables near real-time access to critical insights natively within the customer’s Snowflake environment.”</i></p><p><a href="https://app.snowflake.com/marketplace" rel="nofollow">Snowflake Marketplace</a> helps companies expand what’s possible with data and AI through third-party data, apps and AI products. With on-platform purchasing and immediate access to data products, Snowflake Marketplace lowers integration costs and streamlines procurement processes. By delivering data, apps and AI products directly to the customers’ data, providers deliver a superior customer experience and see accelerated revenue growth and increased margins. To learn more about Snowflake Marketplace and how to find, try and buy third-party products to accelerate your analytics, app development and AI initiatives, click <a href="https://www.snowflake.com/data-marketplace/" rel="nofollow">here</a>. </p> </div> <div class="content__company-boilerplate"> <div class="content__company-boilerplate__hash">###</div> <div class="content__company-boilerplate__header">About</div> <div class="content__company-boilerplate__text"><p>Grid Status is a data company dedicated to helping customers navigate complex energy markets. Our platform offers reliable access to real-time and historical data, along with analytical tools to analyze it. Energy traders, asset operators, developers, and thousands of other stakeholders rely on our technology for informed decision-making. Grid Status is the data team for the energy industry. For more information about Grid Status, visit <a href="https://www.gridstatus.io/" rel="nofollow">https://www.gridstatus.io</a>.</p></div> </div> <div class="content__divider"></div> <ul class="social-button-list"> <li> <a href="http://www.linkedin.com/shareArticle?mini=true&url=https%3A//www.utilitydive.com/press-release/20250214-grid-status-launches-solution-for-analyzing-power-market-and-grid-data-on-s-1/&title=Grid%20Status%20Launches%20Solution%20for%20Analyzing%20Power%20Market%20and%20Grid%20Data%20on%20Snowflake%20Marketplace" class="social-button" title="Post"> <img src="/static/img/social_icons/article_page/linkedin.svg?092716141024" alt="Post to LinkedIn"> </a> </li> <li> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A//www.utilitydive.com/press-release/20250214-grid-status-launches-solution-for-analyzing-power-market-and-grid-data-on-s-1/" class="social-button" title="Share"> <img src="/static/img/social_icons/article_page/facebook.svg?440116200824" alt="Share on Facebook"> </a> </li> <li> <a href="https://twitter.com/intent/tweet?text=Grid%20Status%20Launches%20Solution%20for%20Analyzing%20Power%20Market%20and%20Grid%20Data%20on%20Snowflake%20Marketplace%20https%3A//www.utilitydive.com/press-release/20250214-grid-status-launches-solution-for-analyzing-power-market-and-grid-data-on-s-1/%20via%20@UtilityDive" class="social-button" title="Post"> <img src="/static/img/social_icons/article_page/x.svg?092716141024" alt="Post to X"> </a> </li> <li> <a href="javascript:window.print()" class="social-button js-social-button-print" title="Print"> <img src="/static/img/social_icons/article_page/print.svg?440116200824" alt="Print this page"> </a> </li> <li> <a href="/cdn-cgi/l/email-protection#b08fe3c5d2dad5d3c48df7c2d9d4958280e3c4d1c4c5c3958280fcd1c5ded3d8d5c3958280e3dfdcc5c4d9dfde958280d6dfc2958280f1ded1dcc9cad9ded7958280e0dfc7d5c2958280fdd1c2dbd5c4958280d1ded4958280f7c2d9d4958280f4d1c4d1958280dfde958280e3dedfc7d6dcd1dbd5958280fdd1c2dbd5c4c0dcd1d3d596d1ddc08bf2dfd4c98dd8c4c4c0c39583f19f9fc7c7c79ec5c4d9dcd9c4c9d4d9c6d59ed3dfdd9fc0c2d5c3c39dc2d5dcd5d1c3d59f82808285808281849dd7c2d9d49dc3c4d1c4c5c39ddcd1c5ded3d8d5c39dc3dfdcc5c4d9dfde9dd6dfc29dd1ded1dcc9cad9ded79dc0dfc7d5c29dddd1c2dbd5c49dd1ded49dd7c2d9d49dd4d1c4d19ddfde9dc39d819f" class="social-button" title="Email"> <img src="/static/img/social_icons/article_page/email.svg?092716141024" alt="Email this page"> </a> </li> </ul> </div> </div> </article> </section> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script> // The following sets up responsive breakpoints for serving Cloudinary images. // 101 and 202 correspond to the company logo sizes, 400 and 800 correspond to the header image sizes. // The dpr='auto' setting on individual image placements will double any of the above sizes on hidpi screens. // The more breakpoints we serve, the more Cloudinary transformations we will have to pay for, so add with caution. $.cloudinary.config({ cloud_name: '', breakpoints: [101, 202, 400, 800] }); $.cloudinary.responsive(); </script> </div> <!-- ends page-inner-wrapper --> <section class="pre-footer"> </section> <hr class="footer-hr"> <footer> <div class="custom-article-footer"> <div class="row columns"> <div class="footer-grid"> <div class="footer-links"> <a href="https://www.industrydive.com"> <img class="pub-logo-footer" src="https://d12v9rtnomnebu.cloudfront.net/logo/corporate/ID_black.svg" alt="Industry Dive Logo" height="28" loading="lazy"/> </a> <ul class="social-icon-list social-icon-list__footer"> <li> <a href="https://www.linkedin.com/company/utility-dive-energy-and-utility-news" aria-label="Industry Dive LinkedIn" class="social-icon-footer analytics t-sitefooter-linkedin"> <img src="/static/img/social_icons/article_page/linkedin.svg?092716141024"> </a> </li> <li> <a href="https://www.facebook.com/utilitydive/" aria-label="Industry Dive Facebook" class="social-icon-footer analytics t-sitefooter-facebook"> <img src="/static/img/social_icons/article_page/facebook.svg?440116200824"> </a> </li> <li> <a href="https://twitter.com/UtilityDive" aria-label="Industry Dive X/Twitter" class="social-icon-footer analytics t-sitefooter-twitter"> <img src="/static/img/social_icons/article_page/x.svg?092716141024"> </a> </li> <li> <a href="https://www.utilitydive.com/feeds/news/" aria-label="Industry Dive RSS feed" class="social-icon-footer analytics t-sitefooter-rss"> <img src="/static/img/social_icons/article_page/rss.svg?440116200824"> </a> </li> </ul> </div> <div class="link-wrapper"> <div class="footer-links"> <h4 class="uppercase-heading-01">Explore</h4> <ul class="list-no-bullets"> <li> <a href="/about/" class="analytics t-about-sitefooter">About</a> </li> <li> <a href="/editors/" class="analytics t-editors-sitefooter">Editorial Team</a> </li> <li> <a href="/contact/" class="analytics t-feedback-sitefooter">Contact Us</a> </li> <li> <a href="/signup/?signup_location=footer-list&signup_path=/press-release/20250214-grid-status-launches-solution-for-analyzing-power-market-and-grid-data-on-s-1/" class="analytics t-signup-sitefooter">Newsletter</a> </li> <li> <a href="/selfservice/article-licensing/submit/" class="analytics t-licensing-sitefooter">Purchase Licensing Rights</a> </li> <li> <a class="analytics t-pr-sitefooter-all" href="/press-release/">Press Releases</a> </li> <li> <a href="/what-we-are-reading/" class="analytics t-wwr-sitefooter">What We're Reading</a> </li> </ul> </div> <div class="second-column"> <div class="footer-links"> <h4 class="uppercase-heading-01">Reach our audience</h4> <ul class="list-no-bullets"> <li> <a href="/advertise/" class="analytics t-advertising-sitefooter">Advertising</a> </li> <li> <a class="analytics t-pr-sitefooter-all" href="/press-release/get-started/">Post a press release</a> </li> <li> <a class="analytics t-pr-sitefooter-all" href="/opinion/">Submit an opinion piece</a> </li> <li> <a class="analytics t-events-sitefooter-start" href="/selfservice/event-listings/contact">Promote an event</a> </li> </ul> </div> <div class="footer-links"> <h4 class="uppercase-heading-01">Related Publications</h4> <ul class="list-no-bullets"> <li> <a href="https://www.smartcitiesdive.com/" class="analytics t-sitefooter-related-smart-cities-dive">Smart Cities Dive</a> </li> <li> <a href="https://www.wastedive.com/" class="analytics t-sitefooter-related-waste-dive">Waste Dive</a> </li> </ul> </div> </div> </div> </div> </div> </div> </footer> <hr class="footer-hr"> <div class="baseline-footer-wrapper"> <div> <div> Industry Dive is an Informa TechTarget business. </div> </div> <div class="baseline-footer"> © 2025 TechTarget, Inc. or its subsidiaries. All rights reserved. | View our <a href="https://www.industrydive.com/industries/">other publications</a> | <a href="https://www.techtarget.com/privacy-policy/">Privacy policy</a> | <a href="https://www.techtarget.com/terms-of-use/">Terms of use</a> | <a href="https://www.industrydive.com/takedown-policy/">Take down policy</a>. <br> <a href="#" onclick="Osano.cm.showDrawer('osano-cm-dom-info-dialog-open')">Cookie Preferences / Do Not Sell</a> </div> <div class="informa-legal-notice"> This website is owned and operated by Informa TechTarget, part of a global network that informs, influences and connects the world's technology buyers and sellers. All copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. TechTarget, Inc.'s registered office is 275 Grove St. Newton, MA 02466. </div> </div> </div> </div> <!-- mobile menu, not visible on desktop, must go AFTER footer --> <nav class="mobile-menu"> <div class="mm-top-bar"> <button class="mobile-menu-toggle"> <img src="/static/img/menu_icons/close.svg?273117231121" width="20" height="20" alt="close menu"/> </button> <div class="mm-search"> <form action="/search/" method="GET" data-ajax="false"> <label for="search-mobile"> <span class="screen-reader-text">Search</span> <input id="search-mobile" type="search" name="q" placeholder="Search" data-role="none"> </label> <button type="submit" value="" data-role="none" class="search-button-front analytics t-search-navigation-mobile"> <img src="/static/img/menu_icons/search.svg?320116291121" width="15" height="15" alt="search"> </button> </form> </div> </div> <ul class="mm-list list-no-bullets"> <li> <a href="/" class="analytics t-dash-navigation-mobile"> <span>Home</span> </a> </li> <li class="mm-accordion"> <button> <span>Topics</span> <span class="accordion-toggle-arrow"> <img src="/static/img/menu_icons/chevron_down.svg?102717100918" width="16" height="9" alt="down arrow" loading="lazy"> </span> </button> <ul class="list-no-bullets"> <li> <a class="analytics t-topic-navigation-mobile-Generation" href="/topic/Generation/">Generation</a> </li> <li> <a class="analytics t-topic-navigation-mobile-transmission-distribution" href="/topic/transmission-distribution/">T&D</a> </li> <li> <a class="analytics t-topic-navigation-mobile-grid-security-reliability" href="/topic/grid-security-reliability/">Grid Reliability</a> </li> <li> <a class="analytics t-topic-navigation-mobile-building-transportation-electrification" href="/topic/building-transportation-electrification/">Electrification</a> </li> <li> <a class="analytics t-topic-navigation-mobile-demand-response" href="/topic/demand-response/">Load Management</a> </li> <li> <a class="analytics t-topic-navigation-mobile-solar" href="/topic/solar/">Renewables</a> </li> <li> <a class="analytics t-topic-navigation-mobile-storage" href="/topic/storage/">Storage</a> </li> <li> <a class="analytics t-topic-navigation-mobile-distributed-energy" href="/topic/distributed-energy/">DER</a> </li> <li> <a class="analytics t-topic-navigation-mobile-policy" href="/topic/policy/">Regs</a> </li> <li> <a class="analytics t-topic-navigation-mobile-market-news" href="/topic/market-news/">Corp News</a> </li> </ul> </li> <li> <a href="/deep-dive/" class="analytics t-deepdive-navigation-mobile"> <span>Deep Dive</span> </a> </li> <li> <a href="/opinion/" class="analytics t-opinion-navigation-mobile"> <span>Opinion</span> </a> </li> <li> <a href="/library/" class="analytics t-library-navigation-mobile"> <span>Library</span> </a> </li> <li> <a href="/events/" class="analytics t-events-navigation-mobile"> <span>Events</span> </a> </li> <li> <a href="/press-release/" class="analytics t-press-releases-navigation-mobile"> <span>Press Releases</span> </a> </li> </ul> <section class="signup mm-signup"> <div class="row"> <div class="large-9 medium-10 medium-centered columns"> <h3 class="display-heading-03 display-heading-03--loud">Get Utility Dive in your inbox</h3> <p class="subhead">The free newsletter covering the top industry headlines</p> <form class="form js-form-email-validate" name="signup" action="/signup/" method="POST"> <label for="id_27993_email" class="email-input js-email-input"> <span class="screen-reader-text">Email:</span> <input type="email" name="email" placeholder="Work email address" class="email" required id="id_27993_email"> </label> <input type="hidden" name="signup_box_location" value="integrated_menu"> <input type="hidden" name="signup_initial_url_path" value="/press-release/20250214-grid-status-launches-solution-for-analyzing-power-market-and-grid-data-on-s-1/"> <input type="hidden" name="signup_internal_referrer"> <input type="hidden" name="signup_external_referrer"> <input type="hidden" name="referral_url"> <input type="hidden" name="js_enabled" value="0" id="id_27993_js_enabled"> <ul class="signup-list list-no-bullets"> <li> <label><span class="screen-reader-text">Select Newsletter:</span></label> <input id="newsletter-integrated_menu-checkbox-2" type="checkbox" name="site_newsletters" value="2" class="checkbox" /> <label for="newsletter-integrated_menu-checkbox-2"> <span class="newsletter-title">Daily Dive</span> <span class="secondary-label">M-F</span> </label> </li> <li> <label><span class="screen-reader-text">Select Newsletter:</span></label> <input id="newsletter-integrated_menu-checkbox-41" type="checkbox" name="site_newsletters" value="41" class="checkbox" /> <label for="newsletter-integrated_menu-checkbox-41"> <span class="newsletter-title">Storage Weekly</span> <span class="secondary-label">Every Tuesday</span> </label> </li> <li> <label><span class="screen-reader-text">Select Newsletter:</span></label> <input id="newsletter-integrated_menu-checkbox-13" type="checkbox" name="site_newsletters" value="13" class="checkbox" /> <label for="newsletter-integrated_menu-checkbox-13"> <span class="newsletter-title">Load Management Weekly</span> <span class="secondary-label">Every Wednesday</span> </label> </li> <li> <label><span class="screen-reader-text">Select Newsletter:</span></label> <input id="newsletter-integrated_menu-checkbox-25" type="checkbox" name="site_newsletters" value="25" class="checkbox" /> <label for="newsletter-integrated_menu-checkbox-25"> <span class="newsletter-title">Renewable Energy Weekly</span> <span class="secondary-label">Every Thursday</span> </label> </li> <li> <label><span class="screen-reader-text">Select user consent:</span></label> <input type="checkbox" name="user_consent" id="id_user_consent-integrated_menu" value="1" class="checkbox"/> <label for="id_user_consent-integrated_menu"> <span class="signup-user-consent_box"> <span> By signing up to receive our newsletter, you agree to our <a href="https://www.techtarget.com/terms-of-use/" target="_blank">Terms of Use</a> and <a href="https://www.techtarget.com/privacy-policy/" target="_blank">Privacy Policy</a>. You can unsubscribe at anytime. </span> </span> </label> </li> </ul> <button class="button button--medium signup-button" type="submit" value="Sign up">Sign up</button> <script type="module" src="/static/js/dist/sendEmailToLytics.bundle.js?290716050225" ></script> <label class="error email_error" style="display:none;">A valid email address is required.</label> <label class="error newsletter-error" style="display:none;">Please select at least one newsletter.</label> </form> </div> </div> </section> </nav> <!-- Track signups for Facebook Conversions API --> <script type="module" src="/static/js/dist/signupValidation.bundle.js?290716050225" ></script> <script type="module" src="/static/js/dist/gtmEvents.bundle.js?290716050225" ></script> <!-- Convert straight quotes to curly --> <script type="module" src="/static/js/dist/smartQuotes.bundle.js?290716050225" ></script> <script src="//platform.twitter.com/oct.js" type="text/javascript"></script> <script type="text/javascript"> if(typeof twttr !== 'undefined' && typeof twttr.conversion !== 'undefined') { twttr.conversion.trackPid('l6gv6', { tw_sale_amount: 0, tw_order_quantity: 0 }); } else { window.console && console.log && console.log('twttr undefined; Unable to track twitter retargeting'); } </script> <noscript> <img height="1" width="1" style="display:none;" alt="" src="https://analytics.twitter.com/i/adsct?txn_id=l6gv6&p_id=Twitter&tw_sale_amount=0&tw_order_quantity=0" /> <img height="1" width="1" style="display:none;" alt="" src="//t.co/i/adsct?txn_id=l6gv6&p_id=Twitter&tw_sale_amount=0&tw_order_quantity=0" /> </noscript> <script> // Set cookie if we're on mobile app. Expire if we're not. This affects // which template is used to display the site to the user. $(document).ready(function() { // Get integer value of mobileapp param from URL and default to 0 if it doesn't exist var mobileapp = ''; // Set cookie if mobileapp is 1 or 2 or expire cookie if mobileapp == 0 if (mobileapp == '0') { document.cookie = 'mobileapp=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; } else if (mobileapp == '1' || mobileapp == '2') { document.cookie = 'mobileapp=' + mobileapp + '; path=/;'; } // There's no need to immediately load or preload print.css since it's not needed on page // load. Therefore, load it when the document is ready var stylesheet=document.createElement("link"); stylesheet.setAttribute("rel", "stylesheet"); stylesheet.setAttribute("type", "text/css"); stylesheet.setAttribute("media", "print"); if (window.location.pathname.includes('trendline')) { stylesheet.setAttribute("href", "/static/css/print_trendline.css?460416050225"); } else { stylesheet.setAttribute("href", "/static/css/print.css?460416050225"); } document.getElementsByTagName("head")[0].appendChild(stylesheet); }); </script> <!-- Sailthru Horizon --> <!-- <script type="text/javascript" src="https://ak.sail-horizon.com/horizon/v1.js"></script> --> <script src="https://ak.sail-horizon.com/spm/spm.v1.min.js"></script> <script type="text/javascript"> $(function() { // Sailthru Personalization Engine Setup var sailthru_setup = { customerId: '12ab35a80530ffa5450add9c09f5de04', domain: 'horizon.utilitydive.com', spider: false }; if (window.Sailthru) { Sailthru.init(sailthru_setup); } }); </script> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9141d4cd5e594c05',t:'MTczOTkyMTcwMi4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html>