Hopefully understanding what the purpose of the viewmodel is will help you understand how you should implement it. Basically, narrow it down to what data is needed to be able to render the view, in this case, we need which holdings a user has, and the value of each of those holdings. So actually, in theory you could actually just use one viewmodel for this entire screen and it not be a violation of any design principles (at least I’m not aware of any violations in doing that), or, you can make use of recylerview similar and then each item would have its own copy of a viewmodel with the data it specifically needs (type of holding, and value) and that would also not be a violation of design principles and allow you to reuse the individual components (compose style)