# cybermaggedon/ixbrl-reporter-jsonnet architecture

> Architecture diagram of the GitHub repository cybermaggedon/ixbrl-reporter-jsonnet, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cybermaggedon/ixbrl-reporter-jsonnet
- Repository: https://github.com/cybermaggedon/ixbrl-reporter-jsonnet
- Video tour (about a minute): https://gitdiagram.com/cybermaggedon/ixbrl-reporter-jsonnet/video

## Overview

This repository provides Jsonnet templates for constructing configuration files consumed by ixbrl-reporter. The documented workflow is to adapt a filing example, evaluate its Jsonnet configuration, and use it with the reporter to produce an iXBRL report. The graph includes the documented accounts, corporation-tax and ESEF capabilities, plus the UK VAT subsystem evident in the source tree. Source excerpts were unavailable, so internal module-to-module calls are not asserted.

Main entry points: [`lib/frs102.libsonnet`](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/frs102.libsonnet) (UK accounts), [`lib/uk-corptax.libsonnet`](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/uk-corptax.libsonnet) (UK corporation tax), [`lib/esef-en.libsonnet`](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/esef-en.libsonnet) (ESEF reports), [`lib/esef-fr.libsonnet`](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/esef-fr.libsonnet) (ESEF French)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_filings["Filing templates"]
  node_accounts["UK accounts<br/>[frs102.libsonnet]"]
  node_corptax["UK corporation tax"]
  node_esef["ESEF reports<br/>[esef-en.libsonnet]"]
  node_esef_fr["ESEF French<br/>[esef-fr.libsonnet]"]
  node_vat["UK VAT<br/>[uk-vat.libsonnet]"]
end

subgraph group_shared["Shared templates"]
  node_base["Base library<br/>[base.libsonnet]"]
  node_computations["Computations"]
  node_generic["Generic report parts"]
  node_modify["Report modification<br/>[modify.libsonnet]"]
  node_style["Report styling<br/>[style.jsonnet]"]
end

subgraph group_taxonomy["Taxonomy data"]
  node_frs_taxonomy["FRS102 taxonomy<br/>[frs102.jsonnet]"]
  node_ct_taxonomy["CT DPL taxonomy<br/>[ct-dpl.jsonnet]"]
  node_esef_taxonomy["ESEF taxonomies<br/>[esef.jsonnet]"]
  node_esef_fr_taxonomy["French ESEF taxonomy<br/>[esef-fr.jsonnet]"]
end

subgraph group_runtime["Report runtime"]
  node_jsonnet["Jsonnet"]
  node_reporter["ixbrl-reporter"]
  node_report["iXBRL report"]
end

node_preparer(("Filing preparer"))

node_preparer -->|"configures"| node_accounts
node_preparer -->|"configures"| node_corptax
node_preparer -->|"configures"| node_esef
node_preparer -->|"configures"| node_esef_fr
node_preparer -.->|"configures"| node_vat
node_accounts -->|"evaluated by"| node_jsonnet
node_corptax -->|"evaluated by"| node_jsonnet
node_esef -->|"evaluated by"| node_jsonnet
node_esef_fr -->|"evaluated by"| node_jsonnet
node_vat -.->|"evaluated by"| node_jsonnet
node_jsonnet -->|"supplies configuration"| node_reporter
node_reporter -->|"produces"| node_report

click node_accounts "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/frs102.libsonnet"
click node_corptax "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/uk-corptax.libsonnet"
click node_esef "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/esef-en.libsonnet"
click node_esef_fr "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/esef-fr.libsonnet"
click node_vat "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/uk-vat.libsonnet"
click node_base "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/base.libsonnet"
click node_computations "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/computations.libsonnet"
click node_generic "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/tree/master/lib/generic"
click node_modify "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/modify.libsonnet"
click node_style "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/style.jsonnet"
click node_frs_taxonomy "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/taxonomy/frs102.jsonnet"
click node_ct_taxonomy "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/taxonomy/ct-dpl.jsonnet"
click node_esef_taxonomy "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/taxonomy/esef.jsonnet"
click node_esef_fr_taxonomy "https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/taxonomy/esef-fr.jsonnet"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_accounts,node_corptax,node_esef,node_esef_fr,node_vat toneBlue
class node_base,node_computations,node_generic,node_modify,node_style toneAmber
class node_frs_taxonomy,node_ct_taxonomy,node_esef_taxonomy,node_esef_fr_taxonomy toneMint
class node_jsonnet,node_reporter,node_report toneRose
class node_preparer toneIndigo
```

## Components

### Filing templates

- [UK accounts](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/frs102.libsonnet): `lib/frs102.libsonnet`
- [UK corporation tax](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/uk-corptax.libsonnet): `lib/uk-corptax.libsonnet`
- [ESEF reports](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/esef-en.libsonnet): `lib/esef-en.libsonnet`
- [ESEF French](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/esef-fr.libsonnet): `lib/esef-fr.libsonnet`
- [UK VAT](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/uk-vat.libsonnet): `lib/uk-vat.libsonnet`

### Shared templates

- [Base library](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/base.libsonnet): `lib/base.libsonnet`
- [Computations](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/computations.libsonnet): `lib/computations.libsonnet`
- [Generic report parts](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/tree/master/lib/generic): `lib/generic`
- [Report modification](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/modify.libsonnet): `lib/modify.libsonnet`
- [Report styling](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/lib/style.jsonnet): `lib/style.jsonnet`

### Taxonomy data

- [FRS102 taxonomy](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/taxonomy/frs102.jsonnet): `taxonomy/frs102.jsonnet`
- [CT DPL taxonomy](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/taxonomy/ct-dpl.jsonnet): `taxonomy/ct-dpl.jsonnet`
- [ESEF taxonomies](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/taxonomy/esef.jsonnet): `taxonomy/esef.jsonnet`
- [French ESEF taxonomy](https://github.com/cybermaggedon/ixbrl-reporter-jsonnet/blob/master/taxonomy/esef-fr.jsonnet): `taxonomy/esef-fr.jsonnet`

### Report runtime

- **Jsonnet**
- **ixbrl-reporter**
- **iXBRL report**

### Other components

- **Filing preparer**

## Connections

- Filing preparer → UK accounts: configures
- Filing preparer → UK corporation tax: configures
- Filing preparer → ESEF reports: configures
- Filing preparer → ESEF French: configures
- Filing preparer → UK VAT: configures
- UK accounts → Jsonnet: evaluated by
- UK corporation tax → Jsonnet: evaluated by
- ESEF reports → Jsonnet: evaluated by
- ESEF French → Jsonnet: evaluated by
- UK VAT → Jsonnet: evaluated by
- Jsonnet → ixbrl-reporter: supplies configuration
- ixbrl-reporter → iXBRL report: produces
