Skip to main content

xbrlkit

License: MIT

Work with XBRL filings above Arelle: fetch a filing, parse it once into a neutral typed model, and project that model into whichever portable representation you need.

EDGAR ──▶ Arelle ──▶ XbrlModel ──┬──▶ holon.jsonld   (RDF / JSON-LD)
                                 ├──▶ Tavi           (compiled model)
                                 └──▶ …

Arelle stays the parser — nobody should reimplement DTS resolution. What it does not give you is anything ergonomic to hold: ModelXbrl is a large mutable object graph tied to a controller you have to close. XbrlModel is the answer to that — stateless, single-filing, lossless, and the waist every projection hangs off.

The one architectural rule: everything goes through XbrlModel. A feature that reaches into Arelle's ModelXbrl directly is bypassing the waist, and that is the change that turns a kit into a junk drawer.

Projections

Target Status Notes
holon (.holon.jsonld) shipped RDF/JSON-LD, renders in the Holon Viewer
Tavi (.tavi.json) shipped Project Tavi compiled model, PWD-2026-09-01
OIM (xBRL-JSON / xBRL-CSV) planned Arelle already emits these; a native writer is a fidelity check on XbrlModel
property graph / Parquet planned see model.py

Tavi is a public working draft and its name is explicitly a working title, so treat that projection as tracking a moving target. --format tavi also writes a .tavi.gaps.json sidecar recording what the filing carries that the model has nowhere to put — that file is the point of the projection, not a by-product of it.

Install

As a package

pip install xbrlkit

Exposes the xbrlkit CLI (xbrlkit build …, xbrlkit fetch …, xbrlkit query …) and the library — use this to consume it from another project. Set your SEC User-Agent via the environment (see SEC User-Agent).

From source (development)

# Install the toolchain
brew install uv just

# Install dependencies and provision .env from the template
just install

just install creates .env from .env.example on first run — then set your SEC User-Agent in it.

SEC User-Agent

SEC EDGAR requires a descriptive User-Agent on every request, or it throttles you (empty responses / HTTP 429). just install already created your .env — set your details there:

# .env
SEC_GOV_USER_AGENT="Your Name your@email.com"

.env is loaded automatically by every command. Outside the just workflow, export SEC_GOV_USER_AGENT="Your Name your@email.com" or pass --user-agent.

Usage

# Build a holon.jsonld from a specific filing (-> ./output/)
xbrlkit build --cik 320193 --accno 0000320193-23-000106

# Fetch the latest filing for a ticker (-> ./output/)
xbrlkit fetch --ticker NVDA

# Query consolidated facts in a built holon (in-memory SPARQL)
xbrlkit query --in output/0000320193-23-000106.holon.jsonld --element us-gaap:Assets

From a source checkout, just wraps the same CLI as a shorthand: just build 320193 0000320193-23-000106 and just fetch NVDA.

View & explore

Built holons render in the RoboSystems Holon Viewer — a browser-based reader that renders the financial statements and lets you ask questions of the report with AI:

The viewer reads a holon entirely client-side, so a single holon.jsonld is a complete, portable, self-describing report.

License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT © 2026 RFS LLC

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xbrlkit-0.2.0.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xbrlkit-0.2.0-py3-none-any.whl (1.8 MB view details)

Uploaded Python 3

File details

Details for the file xbrlkit-0.2.0.tar.gz.

File metadata

  • Download URL: xbrlkit-0.2.0.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for xbrlkit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1423c59ad16ce720de25246add999b094648e96a1f6dccff880a3495213b44e7
MD5 dacc30457bb1accabb1b89a0479575a7
BLAKE2b-256 ea165e6e82037276fbce8656bad828a86f1039438178a3acfeb977e3f1681d9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for xbrlkit-0.2.0.tar.gz:

Publisher: publish.yml on RoboFinSystems/xbrlkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xbrlkit-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: xbrlkit-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for xbrlkit-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3dab15eb2726f237fe862bab67210240fe44e54b4700beff45cea5eba2e4238a
MD5 9101e9a650bb904a733899ea6cc3944e
BLAKE2b-256 98d965d54148a68b06d08f961530dcff8e610739833dbb5f1fdef65e796d454a

See more details on using hashes here.

Provenance

The following attestation bundles were made for xbrlkit-0.2.0-py3-none-any.whl:

Publisher: publish.yml on RoboFinSystems/xbrlkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

This release

0.2.0 This release

2 files

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