Сложность этой svg заключается в генерации остатка серых прямоугольников. Мне красиво, но пока не оптимально скорее всего.

1000. SVG KPI Sales = VAR __Measure = INT([% Выполнения]*100) VAR __Color = SWITCH( TRUE(), __Measure<=50, "#FF6B6B", __Measure<=70, "#FFB000", "#00B097" ) VAR __FirstSVG = "data:image/svg+xml," VAR __10 = "" VAR __20 = "" VAR __30 = "" VAR __40 = "" VAR __50 = "" VAR __60 = "" VAR __70 = "" VAR __80 = "" VAR __90 = "" VAR __100 = "" VAR _10 = "" VAR _20 = "" VAR _30 = "" VAR _40 = "" VAR _50 = "" VAR _60 = "" VAR _70 = "" VAR _80 = "" VAR _90 = "" VAR _100 = "" VAR _Text = "" & __Measure &"%" & "" VAR __EndSVG = "" VAR __SwitchPart= SWITCH( TRUE(), __Measure<10, _10&_20&_30&_40&_50&_60&_70&_80&_90&_100, __Measure<20, __10&_20&_30&_40&_50&_60&_70&_80&_90&_100, __Measure<30, __10&__20&_30&_40&_50&_60&_70&_80&_90&_100, __Measure<40, __10&__20&__30&_40&_50&_60&_70&_80&_90&_100, __Measure<50, __10&__20&__30&__40&_50&_60&_70&_80&_90&_100, __Measure<60, __10&__20&__30&__40&__50&_60&_70&_80&_90&_100, __Measure<70, __10&__20&__30&__40&__50&__60&_70&_80&_90&_100, __Measure<80, __10&__20&__30&__40&__50&__60&__70&_80&_90&_100, __Measure<90, __10&__20&__30&__40&__50&__60&__70&__80&_90&_100, __Measure<100, __10&__20&__30&__40&__50&__60&__70&__80&__90&_100, __10&__20&__30&__40&__50&__60&__70&__80&__90&__100 ) RETURN __FirstSVG & __SwitchPart &_Text& __EndSVG P. S. : Наверное, это как-то можно запихнуть в REPT(), но я не могу сморщить мозг так, чтобы избежать цикла.
https://content.desigram.ru/static/b0b9f473-ec7c-4907-9698-8a2fa3ed4c08.jpg