Skip to content

FERC Renderer and Validation - XULE reference implementation (2023 taxonomies)

Compare
Choose a tag to compare
@davidtauriello davidtauriello released this 15 Sep 19:21
· 4 commits to master since this release

This release is for filings using the 2023 FERC Taxonomies only.

These resources work with the FERC Render and Validate plugins and the latest version of the open source Arelle processor to

  1. render forms
  2. validate instances

The Xule engine and FERC plugins are no longer maintained in this repository - these materials can be downloaded from the XBRL US XULE repository. The FERC plugins require Python 3.9 or later and is not compatible with earlier versions of Python.

This release includes sample instances to test the renderer. The xule .zips, sample instances and source files in this release are under the 'Assets' link below.

Rendering a Filing

A file is rendered as a FERC form by providing the FERC renderer with the XBRL Instance document and a template set. The renderer takes the instance and the template set and generates an inline XBRL file formatted as a traditional FERC form. This document is not filed with the FERC but is used as a tool by filers and users to make the filing human readable. This file can be used for reviewing the actual filing in a familiar format.

The FERC publishes different template sets for each form, including different template sets for annual and quarterly filings. Depending on the form and form period being reported a different template set should be used.

In addition the FERC publishes separate template sets for individual schedules. This means a single schedule can be rendered for review rather than rendering the entire form.

The latest templates for rendering are posted in this repository and linked under 'Assets' below for this release. The templates can also be used from this repository with the Arelle command below as the ferc-render-template-set parameter:

Command line instructions to render the filing

The command to generate a rendered filing is as follows (exclude the {location} text - this is illustrative of which file is referenced):
python3 Arelle-master/arellecmdline.py --plugin FERC/render --ferc-render-render --ferc-render-template-set {location of template}http://github.com/xbrlus/ferc-renderer/raw/v3.0/RenderingTemplates_Form_1.zip --packages {location of taxonomy as .zip}/TaxonomyFile_Form1_v2022-01-01.zip -f {location of instance}http://github.com/xbrlus/ferc-renderer/raw/v3.0/Sample_Form_1.xbrl' --ferc-render-inline {location of output}/Form_1_Rendered.html --noCertificateCheck --ferc-render-debug

NOTE: use the --packages switch in the command to load the taxonomy from a location on the computer's hard drive. The latest taxonomy .zip files can be downloaded from https://ecollection.ferc.gov/taxonomyHistory

The command above will refer to an external CSS file in the template. To include the css file in the rendered file the following options are used:

--ferc-render-css-file = FERC_RENDER_CSS_FILE

                Identify the CSS file that sould be used. This will
                overwrite the name of the CSS file that is included in
                the template set.

--ferc-render-inline-css

                Indicates that the CSS should be inlined in the
                generated HTML file. This option must be used with
                --ferc-render-css-file.

These two options should be used by default. To include FERC rendering CSS styles from the template in the head your rendered HTML, use --ferc-render-css-file = form-template.css along with the --ferc-render-inline-css command. Excluding the --ferc-render-inline-css will generate a separate CSS file linked within the HTML. All FERC rendering templates use form-template.css as the default name for CSS files.

Command line instructions to render the HTML without an instance and with the default CSS file included in the HTML file

.\arellecmdline.exe --plugin FERC/render --ferc-render-render --ferc-render-template-set https://github.com/xbrlus/ferc-renderer/raw/v3.0/RenderingTemplates_Form_1.zip -f https://ecollection.ferc.gov/taxonomy/form1/2023-04-01/form/form1/form-1_2023-04-01.xsd --ferc-render-css-file {Location of CSS - this is in Arelle's FERC plugin folder}plugin/FERC/form-template.css --ferc-render-inline-css --ferc-render-inline {Location of output}`/inline.html --noCertificateCheck --ferc-render-debug

Command line instructions to validate a Filing

FERC forms are validated during the submission process with a series of checks. The latest validations can also be downloaded from the repository's `ValidationRulesets' directory or as a .zip linked under 'Assets' below for this release and invoked as .zip files using Arelle and the xule processor version 3.0.23604 or later. The command to validate a filing is as follows (exclude the {location} text - this is illustrative of which file is referenced):

.\arellecmdline.exe --plugins xule --xule-rule-set {location of form ruleset}/Form1.zip -f {location of instance}/sampleF1.xbrl -v --xule-time .005 --xule-debug --noCertificateCheck --logFile {location of output}/log.xml

Like the rendering templates, the validation ruleset.zip files can be invoked from the repository by using the raw location in GitHub in the URL:

.\arellecmdline.exe --plugins xule --xule-rule-set {location of validation .zip}http://github.com/xbrlus/ferc-renderer/raw/v3.0/ValidationRuleset_Form1.zip -f {location of instance}/sampleF1.xbrl -v --xule-time .005 --xule-debug --noCertificateCheck --logFile {location of output}/log.xml

The .zip files below include rendering and validation ruleset .zip files as well as the 2023 eForms taxonomies