How do I render custom picklist values?

Thanks, that helps me confirm what the problem is. Change value = arguments[1] to be value = skuid.utils.decodeHTML(arguments[1]), and that should resolve (1). Here’s the detailed explanation of why this is necessary: XSS vulnerability prevention. Whenever you do a Custom Field Renderer on a Text / Textarea / Picklist field, Skuid preemptively HTML encodes the current value stored for a particular field / row, so that, if you, the author of the Custom Field Renderer, happen to accidentally display this text to the screen without first properly encoding it, if necessary, then you won’t inadvertently introduce an XSS vulnerability into your page. So, from the theoretical to your specific scenario: the reason that “Reviewed & Approved” and “Reviewed & Needs Changes” aren’t working is that they contain a character, the &, which has to be HTML encoded. So the value that you are getting handed in arguments[1] is actually Reviewed & Approved. So by using skuid.utils.decodeHTML(), you’re converting this back into the actual value. Then, because you’re leveraging the skuid.ui.fieldRenderers to actually do your output (as opposed to hand-coding your own picklist), the XSS vulnerability prevention is taken care of. So the lesson to learn here is this: Whenever doing custom Field Renderers for Text/Textarea/Picklist fields, always decode the value passed in via arguments[1], like so:

var field = arguments[0], value = skuid.utils.decodeHTML(arguments[1]);