Shareholding Pattern Guide (Regulation 31)#

Regulation 31 of SEBI (LODR) requires quarterly submission of Shareholding Patterns (SHP) by listed entities.

Model Overview#

The ShareholdingPatternModel adapter parses the filing and structures the breakdown into high-level summary figures and individual shareholder categories.

Example Usage#

from nse_xbrl_parser import parse_file, ShareholdingPatternModel

instance = await parse_file("TCS_SHP.xml")
shp = ShareholdingPatternModel.from_instance(instance)

print("Company:", shp.company_name)
print("Quarter Ended:", shp.quarter_ended)
print(f"Promoter Holding: {shp.promoter_holding_percentage:.2f}%")
print(f"Public Holding: {shp.public_holding_percentage:.2f}%")
print(f"Promoter Pledged: {shp.promoter_shares_pledged_percentage:.2f}%")

Extracting Granular Categories#

You can iterate through individual category holdings:

for category in shp.categories:
    print(category.category_name)
    print("  Shares:", category.total_shares)
    print("  Percentage:", category.shareholding_percentage)