Am I overcomplicating my Content Type?

and have a relation on each variant, so then you could calculate intersections