A master item should be able to be called in an expression, the same way a variable is called. Layering these would allow for much cleaner and easier to read scripting. for example, a function like M() with the parameter as the item name.
Some Sales KPI : (Sum({<field1={'list of values'}>}Revenue) - Sum({<field2={'several numbers'}>}Costs)) + Sum({<field3{'just one value'}>}VendorRebates)
Some Other KPI: Sum({<field4={'list of values indicating that a customer bought something'}>}Customers)
average Sales KPI for Customers that Bought Something could be: M("Some Sales KPI") / M("Some Other KPI")
I would even go a step further. If Masteritems become more variable-like, it would be amazing to be allowed to use (optional) parameters with them. So you can have a master item (e.g. Sales per Year) where you can add a parameter (2017,2018, etc) - That would help a lot and would go along quite nice with this idea.
Agree - we have a lot of duplication (i.e., create the same measure as both a variable and a MI) because I need the master item for coloring, labeling, etc, but need the variable because the measure is embedded in other measures. A merging of these functionalities would go a long way to keeping apps clean and consistent.
Thank you for your feedback. This idea has been proposed a previously. The other idea is currently marked as being on the roadmap. Please show your support for the previous idea by liking and commenting there.