Investment Penetration
Equity Penetration Analysis and Ultimate Controller Identification
Multi-level equity relationship tracing to identify ultimate beneficial owners and controllers, essential for due diligence and risk management.
Functional Overview
This example demonstrates equity penetration analysis visualization for tracing a company’s ultimate controller and beneficial owner. Through multi-level equity relationship chains, it can penetrate complex ownership structures to identify the actual controller behind them. This is crucial for anti-money laundering, due diligence, risk management, and other scenarios, helping to reveal hidden interest relationships.
Implementation of Key Features
Multi-Level Equity Relationship Tree
Use tree layout to display complete equity penetration chain:
const graphOptions: RGOptions = {
layout: {
layoutName: 'tree',
from: 'left',
treeNodeGapH: 100,
treeNodeGapV: 10,
alignItemsX: 'start',
alignParentItemsX: 'end'
},
defaultExpandHolderPosition: 'bottom',
defaultLineShape: RGLineShape.StandardOrthogonal
};
Layout clearly displays left-side shareholders and right-side investments.
Equity Ratio Display
Show shareholding ratios on connection lines:
myJsonData.lines.forEach((line) => {
line.text = `${line.data.ratio}%`;
line.text = line.text;
});
Each connection line labels equity ratio, clearly displaying control rights.
Penetration Level Identification
Use color or style to identify penetration levels:
const updateNodeStyles = async () => {
graphInstance.getNodes().forEach((node) => {
const level = Math.abs(node.lot.level || 0);
graphInstance.updateNode(node.id, {
color: getPenetrationColor(level),
className: `penetration-level-${level}`
});
});
};
Different levels use different colors, intuitively showing penetration depth.
Dynamic Penetration Calculation
Calculate cumulative shareholding ratio for each path:
const calculateCumulativeRatio = (node: RGNode): number => {
if (node.lot.level === 0) return 100;
const links = graphInstance.getLinks().filter(l => l.toNode.id === node.id);
let maxRatio = 0;
links.forEach(link => {
const parentRatio = calculateCumulativeRatio(link.fromNode);
const currentRatio = (parentRatio * link.line.data.ratio) / 100;
if (currentRatio > maxRatio) {
maxRatio = currentRatio;
}
});
return maxRatio;
};
Recursively calculate final control ratio.
Ultimate Controller Identification
Automatically identify and mark ultimate controllers:
const identifyUltimateController = () => {
const leafNodes = graphInstance.getNodes().filter(node => node.rgChildrenSize === 0);
const controllers = leafNodes.filter(node => {
const cumulativeRatio = calculateCumulativeRatio(node);
return cumulativeRatio > 50; // Over 50% considered control
});
controllers.forEach(node => {
graphInstance.updateNode(node.id, {
className: 'ultimate-controller',
data: { ...node.data, isUltimateController: true }
});
});
};
Mark final controllers with shareholding ratios exceeding threshold (e.g., 50%).
Multi-Path Display
Show scenarios where the same shareholder controls the target company through different paths:
const highlightControlPaths = (targetNodeId: string) => {
const allPaths = findAllPathsToTarget(targetNodeId);
allPaths.forEach(path => {
const pathColor = getUniqueColor();
path.forEach((nodeId, index) => {
if (index < path.length - 1) {
const line = findLine(path[index], path[index + 1]);
graphInstance.updateLine(line.id, { color: pathColor, lineWidth: 3 });
}
});
});
};
Different paths use different colors, clearly showing multiple control chains.
Related Party Identification
Identify and mark related party relationships:
const identifyRelatedParties = () => {
const nodes = graphInstance.getNodes();
nodes.forEach(node => {
const shares = findCommonShareholders(node);
if (shares.length > 1) {
graphInstance.updateNode(node.id, {
data: { ...node.data, relatedPartyCount: shares.length }
});
}
});
};
Find multiple companies controlled through the same shareholder.
Time Series Penetration
Support viewing historical equity changes:
const showHistoricalPenetration = async (date: Date) => {
const historicalData = await fetchHistoricalEquityData(date);
graphInstance.setJsonData(historicalData);
updateNodeStyles();
};
Time slider can select equity structure at different dates.
Risk Indicator Calculation
Calculate and display penetration analysis risk indicators:
const calculateRiskIndicators = (nodeId: string) => {
const depth = getPenetrationDepth(nodeId);
const complexity = getPathComplexity(nodeId);
const control = calculateCumulativeRatio(nodeId);
return {
depth,
complexity,
control,
risk: calculateRiskScore(depth, complexity, control)
};
};
More penetration levels, more complex paths, higher risk.
Creative Use Cases
Anti-Money Laundering Investigations
Identify company ultimate beneficiaries in AML investigations. Penetrate complex equity structures to find actual controllers.
KYC (Know Your Customer)
Banks and financial institutions conduct customer due diligence. Verify customer identity and actual controllers.
Supply Chain Risk Management
Penetrate supplier equity structures to identify potential risks. Avoid doing business with high-risk entities.
M&A Transaction Analysis
Analyze target company equity penetration structure before M&A. Identify all related parties and potential obstacles.
Credit Assessment
Consider actual controller when assessing enterprise credit risk. Ultimate controller’s credit status affects enterprise credit.
Tax Compliance
Tax authorities use penetration analysis to identify related transactions and tax avoidance behaviors.
Government Procurement Review
Review bidder equity penetration structures to identify bid-rigging and collusion risks.
Legal Litigation
Trace responsible parties through multi-level company structures in litigation to find actual responsible parties.
Media Investigations
Journalists investigate company背后的实际控制人和利益链. Expose potential conflicts of interest.
Competitive Analysis
Analyze competitor capital penetration structures to understand strategic layouts and control relationships.
Insurance Claims
Penetrate insured person structures in insurance claims to identify potential fraud.
Asset Recovery
Penetrate asset holding structures in asset recovery cases to find hidden assets.
Compliance Auditing
Enterprises use penetration analysis internally for audits. Identify unauthorized related transactions.
Investment Decisions
Investment institutions use penetration analysis to assess investment targets. Understand complete ownership and control structures.
Trust and Estate Planning
Visualize equity penetration in trust and estate planning to ensure wealth transfer meets expectations.