How can I customize the font size of first and second order sub/superscripts?

I figured out that enclosing the subscript within a box gives sufficient control for my needs, for example via the following function:

#let SUB(body, size: 100%) = context box[
  #set text(size: size*0.8em)
  #set par(leading: par.leading*50%)
  $body$
]

// Usage:
$ X_SUB(bold(y)\ bold(z)) $

Of course, the specific formatting instructions are varied according to purpose. Thanks for your help!