Forum Discussion
Use Network Graph by Powerviz to create entity/shareholder hierarchy with ownership percentage
- 11 months ago
Hi celine_84
Since Network Graph by Powerviz is an external visual and not a native Microsoft visual, the community here cannot fully confirm compatibility. The best approach is to check directly with the vendor’s support and documentation.
You can reach it or from marketplace :
or by the link:
https://powerviz.ai/contact-usIf this post helps, then please consider Accepting it as the solution to help the other members find it more quickly
- 10 months ago
Hi celine_84 , Thank you for reaching out to the Microsoft Community Forum.
The issue you’re seeing happens because the visual treats each node code as a single unique point. When you add paths, entities like 020163 still appear only once, so their children won’t connect under every branch they belong to. You need to clone node instances for each distinct ownership path while keeping the original code as a label.
In practice, when you unfold ownership paths in Power Query or your database, generate a unique ID per node per path. Use these unique IDs as the node keys in the Network Graph and use the original codes only as labels. This allows the same entity to appear in multiple branches, preserving every ownership route correctly.
You can then filter by the root shareholder to show only the edges and node instances from paths starting with that shareholder. This avoids the split effect you see now, because each ownership path is visually distinct but still labelled with the true entity codes.
Hi v-hashadapu, thank you for your explanations on the differences between hierarchies and network graphs. However, I don't quite understand how to use child node cloning in my case to filter a shareholder and display all of their ownership layers. The tests I have performed so far have not been successful.
Hi celine_84 , Thank you for reaching out to the Microsoft Community Forum.
To make a shareholder’s full ownership tree inside Power BI you must precompute paths (clone child nodes). Start from your direct Edges table (Source, Target, Ownership) and run a Power Query routine that expands outward from a chosen start node: find its direct targets, then targets-of-targets, etc., up to a maxDepth. Each discovered edge becomes a row annotated with a PathID and Level so the same entity can appear multiple times (once per distinct path). Loading that table into the model gives you an explicit everything owned by X dataset you can filter and report on.
Make sure to add two protections, limit maxDepth (3–5 for interactivity) so the table doesn’t explode and prevent cycles by rejecting any next node already present in the same PathID. Without cycle detection a loop in ownership will create runaway duplicates and break tests. Create PathID by concatenating the parent path with a small suffix so you can trace which route produced each cloned node.
Wire it as a parameterized function and expose startNode via a Power Query parameter or a disconnected slicer table that a wrapper query reads. Calling the function for a given shareholder returns the unfolded edges for that shareholder; feed that to the Network Graph (Source -> Target) or any table/visual and it will show all direct and indirect holdings.
If you only need interactive exploration and not a precomputed full tree, skip cloning. Keep a simple Source -> Target table and use the network visual’s expand-on-click. Cloning is only necessary when you must filter or report all entities owned (directly+indirectly) by X inside Power BI.