{"id":1566,"date":"2024-01-23T14:05:13","date_gmt":"2024-01-23T22:05:13","guid":{"rendered":"https:\/\/arelle.org\/arelle\/?page_id=1566"},"modified":"2025-04-23T13:30:49","modified_gmt":"2025-04-23T20:30:49","slug":"edgar-renderer-technical-operation","status":"publish","type":"page","link":"https:\/\/arelle.org\/arelle\/pub\/edgar-renderer-installation\/edgar-renderer-technical-operation\/","title":{"rendered":"Edgar Renderer Technical Operation"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">EDGAR<sup>\u00ae<\/sup> Renderer Technical Operation<\/h1>\n\n\n\n<p>Several alternative installation strategies can be followed:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Install a pre-built application. &nbsp;(<a href=\"\/pub\/edgar-renderer-installation\/\">See Quick Start<\/a>)<\/li>\n\n\n\n<li>Install from sources on GitHub.<\/li>\n<\/ol>\n\n\n\n<p>Once installed there are three strategies for using the EDGAR renderer:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Interactively from its GUI. (<a href=\"\/pub\/edgar-renderer-installation\/\">See Quick Start<\/a>)<\/li>\n\n\n\n<li>Technical Operation\n<ol class=\"wp-block-list\">\n<li>From command line.\u00a0(Can be integrated to your preparation environment.)<\/li>\n\n\n\n<li>As a web service. (Can use built-in web service.)<\/li>\n\n\n\n<li>Polled operation as a daemon service.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Installing<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Pre-built application<\/h3>\n\n\n\n<p>(<a href=\"\/pub\/edgar-renderer-installation\/\">See Quick start<\/a>)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">From GitHub sources<\/h3>\n\n\n\n<p>Please install the following components on your platform:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Python 3.13 from python.org or other<\/li>\n\n\n\n<li>Python libraries for: lxml, numpy, isodate, regex, openpyxl, pyparsing, Pillow, pywin32 (Windows only), dateutil, holidays, and matplotlib. (You may use pip, easy_install, or Windows binaries on http:\/\/www.lfd.uci.edu\/~gohlke\/pythonlibs\/) &nbsp;Plugins may also require graphviz, pg8000, pycountry and others (per authors of plugins).<\/li>\n\n\n\n<li>Arelle\u00ae <a href=\"https:\/\/github.com\/Arelle\/Arelle\">Source code on GitHub (master branch suggested)<\/a><\/li>\n\n\n\n<li>EDGAR Renderer <a href=\"https:\/\/github.com\/Arelle\/EdgarRenderer\/\">Source code on GitHub<\/a>. Suggested installation location is under Arelle&#8217;s plugin directory &#8211; {installed Arelle location}\/arelle\/plugin\/EdgarRenderer<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">User Operation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Interactively from its GUI<\/h3>\n\n\n\n<p>(<a href=\"http:\/\/arelle.org\/documentation\/edgar-renderer-installation\/\">See Quick start<\/a>)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Command line operation<\/h3>\n\n\n\n<p>Try &#8220;about&#8221; to see if it loads correctly.<\/p>\n\n\n\n<p>Windows pre-built app:<br><code>arelleCmdLine -a<\/code><\/p>\n\n\n\n<p>Mac app: <code>Arelle.app\/Contents\/MacOS\/arelleCmdLine -a<\/code><\/p>\n\n\n\n<p>Windows from GitHub sources<br><code>python arelleCmdLine.py -a<\/code><\/p>\n\n\n\n<p>MacOS from GitHub sources<br><code>python arelleCmdLine.py -a<\/code><\/p>\n\n\n\n<p>Try help (showing flags only)<br><code>{arelle} -h<\/code><\/p>\n\n\n\n<p>Load inline XBRL \/somewhere\/myTest.htm, validate, and put output rendering output results to \/somewhere\/out, also copying source document to output for ixviewer:<\/p>\n\n\n\n<p><code>{arelle} -f \/somewhere\/myTest.htm --plugins EdgarRenderer --disclosureSystem efm-pragmatic --validate -r \/somewhere\/out<\/code><\/p>\n\n\n\n<p>The <code>-r<\/code> out directory is cleared by the on each run to assure no remaining files from a prior run may be intermixed. Please don&#8217;t point the <code>-r<\/code> out directory to a shared location.<\/p>\n\n\n\n<p>The <code>-f<\/code> parameter may be a zip file, in which case all the instances detected in the root directory of the zip are processed.<\/p>\n\n\n\n<p>The file <code>-f<\/code> parameter may be a JSON structure (as used in EDGAR itself) to pass in more information about the filing (see validate\/EFM\/<strong>init<\/strong>.py) such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>for a single instance filing, such as an SDR K form (without \\n&#8217;s pretty printed below): <code>-f '[{\"file\": \"\/Users\/joe\/...\/gpc_gd1-20130930.htm\", \"cik\": \"0000350001\", \"cikNameList\": {\"0001306276\":\"BIGS FUND TRUST CO\"}, \"submissionType\":\"SDR-A\", \"exhibitType\":\"EX-99.K SDR.INS\", \"accessionNumber\":\"0001125840-15-000159\"}]'<\/code><\/li>\n\n\n\n<li>for multiple instances (SDR-L&#8217;s), add more of the <code>{\"file\": ...}<\/code> entries.<\/li>\n\n\n\n<li>for inline XBRL document sets (IXDSes) of possibly multiple documents per IXDS entry <code>--file '[{\"ixds\":[{\"file\":file1,\"documentType\":\"6-K\"},{\"file\":file2,\"documentType\":\"EX-99.1\"}...],\"cik\":\"0000350001\",\"submissionType\":\"6-K\",...}]'<\/code> DocumentType may be specified per file and the rest of the parameters per ixds.<\/li>\n\n\n\n<li>for Windows called from Java, the JSON must be quoted as thus: <code>-f \"[{\\\"file\\\":\\\"z:\\\\Documents\\\\...\\\\gpc_gd1-20130930.htm\\\", \\\"cik\\\": \\\"0000350001\\\", \\\"cikNameList\\\": {\\\"0000350001\\\":\\\"BIG FUND TRUST CO\\\"}, \\\"submissionType\\\":\\\"SDR-A\\\", \\\"exhibitType\\\":\\\"EX-99.K SDR.INS\\\"}]\"<\/code><\/li>\n<\/ul>\n\n\n\n<p>The file parameter JSON structure may pass in EDGAR Link Online (ELO) parameters to perform the same validation as EDGAR does with submission parameters:<br><code>[ {# current fields in JSON structure from Arelle Wrapper, per instance \"file\": \"file path to instance or html\", \"cik\": \"1234567890\", \"cikNameList\": { \"cik1\": \"name1\", \"cik2\":\"name2\", \"cik3\":\"name3\"...}, \"submissionType\" : \"SDR-A\", \"exhibitType\": \"EX-99.K\", \"itemsList\": [] # array of items, e.g. [\"5.03\"] (either array of strings blank-separated items in string) \"accessionNumber\":\"0001125840-15-000159\" , # new fields \"periodOfReport\": \"mm-dd-yyyy\", \"entityRegistration.fyEnd\": \"mm\/dd\", # the FY End value from entity (CIK) registration \"entity.repFileNum\": file number from entity (CIK) registration \"submissionHeader.fyEnd\": \"mm\/dd\", # the FY End value from submission header \"voluntaryFilerFlag\": true\/false, # JSON Boolean, string Yes\/No, yes\/no, Y\/N, y\/n or absent \"wellKnownSeasonedIssuerFlag\": true\/false, # JSON Boolean, string Yes\/No, yes\/no, Y\/N, y\/n or absent \"shellCompanyFlag\": true\/false, true\/false, # JSON Boolean, string Yes\/No, yes\/no, Y\/N, y\/n or absent \"acceleratedFilerStatus\": true\/false, # JSON Boolean, string Yes\/No, yes\/no, Y\/N, y\/n or absent \"smallBusinessFlag\": true\/false, # JSON Boolean, string Yes\/No, yes\/no, Y\/N, y\/n or absent \"emergingGrowthCompanyFlag\": true\/false, # JSON Boolean, string Yes\/No, yes\/no, Y\/N, y\/n or absent \"exTransitionPeriodFlag\": true\/false, # JSON Boolean, string Yes\/No, yes\/no, Y\/N, y\/n or absent # filer - use \"cik\" above \"invCompanyType\": \"N-1A\" # from table of investment company types \"rptIncludeAllSeriesFlag\": true\/false, # JSON Boolean, string Yes\/No, yes\/no, Y\/N, y\/n or absent \"rptSeriesClassInfo.seriesIds\": [\"S0000990666\", ...] # list of EDGAR seriesId values \"newClass2.seriesIds\": [] # \/\/seriesId xpath result on submission headers # CEF forms \"eligibleFundFlag\": true\/false, # JSON Boolean, string Yes\/No, yes\/no, Y\/N, y\/n or absent \"pursuantGeneralInstructionFlag\": true\/false, # JSON Boolean, string Yes\/No, yes\/no, Y\/N, y\/n or absent \"filerNewRegistrantFlag\": true\/false, # JSON Boolean, string Yes\/No, yes\/no, Y\/N, y\/n or absent # Test\/debug fields datetimeForTesting: xml-syntax datetime to override clock time for test\/debug purposes }, {\"file\": \"file 2\"... ]<\/code><br>Note that JSON Boolean objects (true\/false) do not have quotation marks.<\/p>\n\n\n\n<p>Further details of instructions are in the comments to plugin\/EdgarRenderer\/__init__.py and plugin\/validate\/EFM\/__init__.py<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Web service operation<\/h3>\n\n\n\n<p>You may use the built-in web server or install to Apache\/CGI or IIS\/CGI (see documentation &#8211; API Web Services)<\/p>\n\n\n\n<p>To start the built-in web server:<br>Windows pre-built app:<br><code>arelleCmdLine --webserver locahost:8080<\/code><\/p>\n\n\n\n<p>Mac app: <code>Arelle.app\/Contents\/MacOS\/arelleCmdLine --webserver locahost:8080<\/code><\/p>\n\n\n\n<p>To test that it is operating, from browser: http:\/\/localhost:8080\/about. For help: http:\/\/localhost:8080\/help.<\/p>\n\n\n\n<p>To run a validation on a zip file containing the instance document and link bases:<br><code>curl -X POST \"-HContent-type: application\/zip\" -T myInstanceAndLinkbases.zip -o edgarRendererResultsOutput.zip \"http:\/\/localhost:8080\/rest\/xbrl\/validation?efm-pragmatic&amp;amp;media=zip&amp;amp;plugins=EdgarRenderer&amp;amp;logFile=log.xml\"<\/code><br>The log file of messages and errors will be in the zip as &#8220;log.xml&#8221; in xml format (or .txt or .json, as you wish).<\/p>\n\n\n\n<p>The input file (posted by web service request) may be a zip file, in which case all the instances detected in the zip file&#8217;s root directory are processed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Redline markups in inline XBRL documents<\/h3>\n\n\n\n<p>When viewing FilingSummary.htm in a browser, add the parameter ?redline=true to enable viewing redline markups on filings before submission to SEC. (These are a private communication from filer to SEC which are not disseminated to the public.)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Polled operation as a daemon service<\/h3>\n\n\n\n<p>See directory plugin\/EdgarRenderer\/svc_template. Batch scripts BuilderService.bat and .sh start a polling application, which looks for input zip files in a subdirectory Filings, processes each instance detected in the zip file root directory, puts results in Reports, archives input in Archive, and errors to Errors.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Contact and Support<\/h2>\n\n\n\n<p>End user support is by e-mail direct to SEC at:\u00a0<a href=\"mailto:StructuredData@sec.gov\">StructuredData@sec.gov<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>EDGAR\u00ae Renderer Technical Operation Several alternative installation strategies can be followed: Once installed there are three strategies for using the EDGAR renderer: Installing Pre-built application (See Quick start) From GitHub sources Please install the following components on your platform: User Operation Interactively from its GUI (See Quick start) Command line operation Try &#8220;about&#8221; to see [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":1561,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1566","page","type-page","status-publish","hentry"],"jetpack_shortlink":"https:\/\/wp.me\/P1cfuV-pg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/arelle.org\/arelle\/wp-json\/wp\/v2\/pages\/1566","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arelle.org\/arelle\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/arelle.org\/arelle\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/arelle.org\/arelle\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/arelle.org\/arelle\/wp-json\/wp\/v2\/comments?post=1566"}],"version-history":[{"count":2,"href":"https:\/\/arelle.org\/arelle\/wp-json\/wp\/v2\/pages\/1566\/revisions"}],"predecessor-version":[{"id":1601,"href":"https:\/\/arelle.org\/arelle\/wp-json\/wp\/v2\/pages\/1566\/revisions\/1601"}],"up":[{"embeddable":true,"href":"https:\/\/arelle.org\/arelle\/wp-json\/wp\/v2\/pages\/1561"}],"wp:attachment":[{"href":"https:\/\/arelle.org\/arelle\/wp-json\/wp\/v2\/media?parent=1566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}