Skip to main content

jugaad-xbrl

Parse the XBRL filings that Indian listed companies publish on NSE for their quarterly financial results (the SEBI "Integrated Filing – Financials").

  • Reads the machine-readable xbrl XML, from a path, raw bytes or a file object.
  • Handles all six filing formats: Ind AS, NBFC (Ind AS), Banking, Life Insurance, General Insurance and Other than Bank.
  • Joins the facts with the SEBI taxonomy, so you get labelled statements and not just flat elements.
  • Offers cross-format fields (net_profit, eps_basic, ...) that mean the same thing for a bank, an insurer and an IT company.

Install

pip install jugaad-xbrl

Python 3.9 or newer. The only runtime dependency is PyYAML.

Usage

from jugaad_xbrl import parse

f = parse("INTEGRATED_FILING_INDAS_..._WEB.xml")   # path, bytes, or binary file object
f.format                  # "indas"
f.reporting_period        # 2026-07-01..2026-09-30

# Cross-format fields. Values are absolute rupees, EPS is rupees per share,
# and None means this format does not file that field.
c = f.canonical()
c.net_profit, c.eps_basic, c.total_assets

# Any raw taxonomy concept for the current reporting period
f.get("ProfitLossForPeriod")

# Labelled statements, with the taxonomy's tree and ordering
stmt = f.statement("100200")          # results; also by role id
for depth, item in stmt.walk():
    print("  " * depth, item.label, item.values)
stmt.rows                             # dimensional rows (segments, related-party transactions, ...)

# Everything in the file, unmodified
f.facts                               # Fact(concept, value, context, unit, decimals)

In-memory use works the same way:

import httpx
f = parse(httpx.get(url).content)

Things to know

  • Formats use different element names. For example, net profit is ProfitLossForPeriod (Ind AS, NBFC), ProfitLossForThePeriod (Banking), ProfitLossAfterTaxAndExtraordinaryItems (Life) and ProfitLossAfterTax (General). The canonical layer hides this. jugaad_xbrl/specs/canonical/*.yaml holds the mappings.
  • Standalone and consolidated are separate filings. Parse each file on its own. The format is detected from the file.
  • Units. Monetary values are always absolute rupees, whatever rounding the filer chose. Ratios are fractions (0.0111 is 1.11%).
  • Filers sometimes use the wrong field. Check the ...ExplanatoryTextBlock facts when a number looks odd. The reader keeps them.
  • Taxonomy lag. Live filings use the 2026-01-31 taxonomy, but NSE only publishes the 2025-01-31 zips. A few concepts, such as DescriptionOfOther…, are therefore unlabelled. Their facts are still returned.
  • The other_than_bank canonical mapping is unverified, as no sample filing was available.

Development

python3 -m venv .venv && .venv/bin/pip install -U pip && .venv/bin/pip install -e ".[dev]"
bash download_specs.sh                        # raw taxonomies and sample filings into ./specs (git-ignored)
.venv/bin/python tools/build_taxonomy.py      # regenerate jugaad_xbrl/specs/taxonomy/*.json
.venv/bin/python -m pytest -q tests

The taxonomy JSON is generated from NSE's native linkbase files and cross-checked in tests against the xlsx that ships in each taxonomy zip. See AGENTS.md for the code layout and nse_integrated_filing_xbrl.md for the filing format reference.

Not affiliated with NSE or SEBI.

Metadata

Release files for jugaad-xbrl 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jugaad-xbrl 0.1.0
File Size Uploaded Provenance Actions
jugaad_xbrl-0.1.0.tar.gz 167.1 kB With provenance Details for jugaad_xbrl-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for jugaad-xbrl 0.1.0
File Interpreter ABI Platform Actions
jugaad_xbrl-0.1.0-py3-none-any.whl Python 3 none any Details for jugaad_xbrl-0.1.0-py3-none-any.whl

Total release size: 338.5 kB

Release files / jugaad_xbrl-0.1.0.tar.gz

Download URL jugaad_xbrl-0.1.0.tar.gz
Size 167.1 kB
Tags Source
SHA-256 checksum
How to use checksums
4c0fd737523f425f0f804e324cda7c35fb5ffb6b1c1482599bb45ab459744ea2
BLAKE2b-256 checksum
How to use checksums
a9bedcd01a992b48630fc03dc6a11bc9530c1aa4a27dbb4915deea1990b8bcfc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / jugaad_xbrl-0.1.0-py3-none-any.whl

Download URL jugaad_xbrl-0.1.0-py3-none-any.whl
Size 171.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
015a1f583464f2fdd65a3cf109a3e1ede0c708b2263899f4c24907c4dcd830a1
BLAKE2b-256 checksum
How to use checksums
e694402852630fdc748bc946d36e5166c5b0a7e124293c5d81b697266a2cd97d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for jugaad-xbrl 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for jugaad_xbrl-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page