Hi Emily,
Tried a different approach and I think I got it.
Stumbled across this post: Update page load snippet
So, I reverted my KPIs back to using templates and using this snippet with the appropriate model action:
(function(skuid) { <br>var $ = skuid.$;<br> // Register a snippet to run <br> skuid.snippet.registerSnippet('setCSS', function(changeInfo) {<br> console.log('setCSS');<br> var quoteModel = skuid.model.getModel('Quote');<br> var row = quoteModel.getFirstRow();<br> var totalFOB = row.Total_FOB_Weighted_Average__c;<br> var totalExpert = row.Total_Expert_Price_Weighted_Average__c;<br> var totalTypical = row.Total_Typical_Price_Weighted_Average__c;<br> var totalFloor = row.Total_Floor_Price_Weighted_Average__c;<br> console.log('totalFOB ' + totalFOB);<br> console.log('totalExpert ' + totalExpert);<br> console.log('totalTypical ' + totalTypical);<br> console.log('totalFloor ' + totalFloor);<br> var cssClass = null;<br> if (totalExpert === 0 && totalTypical === 0 && totalFloor === 0) {<br> cssClass = 'box-simple';<br> }<br> if (totalFOB >= totalExpert) {<br> cssClass = 'box-green';<br> } else if (totalFOB >= totalTypical) {<br> cssClass = 'box-yellow';<br> } else if (totalFOB >= totalFloor) {<br> cssClass = 'box-orange';<br> } else {<br> cssClass = 'box-red';<br> }<br> $('#totalFOB')<br> .removeClass('box-simple box-red box-orange box-yellow box-green')<br> .addClass(cssClass);<br> $('#totalMargin')<br> .removeClass('box-simple box-red box-orange box-yellow box-green')<br> .addClass(cssClass);<br> $('#totalOpportunityLeft')<br> .removeClass('box-simple box-red box-orange box-yellow box-green')<br> .addClass(cssClass);<br> });<br> // Run the snippet initially on page load<br> $('.nx-page').one('pageload', function() {<br> skuid.snippet.getSnippet('setCSS')();<br> });<br>})(skuid);