The fact that you are adding a new field and switching on things to figure out which logic to use is resulting in the handling of the smbg case being interspersed with the handling of the cbg case.

Given time constraints, it might not be the best idea to change it right now, but this would probably benefit from employing a "handler" type "pattern".

That is, you have an object that knows how to render smbg and an object that knows how to render cbg.  You then add a method to each of them, say `boolean canHandle(data)`.  This method returns true if the data provided meets the requirements (high enough percentage of CBG values, for example) or false otherwise.

You have an external loop that runs through them, asking if they can handle the data and once one can, it uses that guy to "handle" the data (i.e. do the rendering).  The benefits are that each handler can make the assumption that it only has to know about it's own world.  You can add/change handlers pretty easily and you can have the "no data" failover just be another handler that handles everything.