Lesson

Build reproducible filing analytics

Extract, normalize, compare, and visualize without erasing context.

Updated Aug 8, 2026 Review due Nov 8, 2026
About this lesson

Lesson details

Estimated study time
110 min
Learning objectives (1)

A request for “5 years of margins” hides a data contract. Identify the registrant by CIK, forms and amendments, fiscal periods, concepts, units, segments, continuing/discontinued operations, restatements, and the exact numerator and denominator before writing code.

Company Facts can efficiently provide entity-wide standard-taxonomy facts. That convenience has a boundary: it does not expose every extension or dimensional fact. When a segment, product, or filer-specific disclosure matters, inspect the filing and its instance contexts. Frames are calendar-aligned and need explicit controls for 52/53-week years and non-calendar issuers.

The Python companion should use transparent data structures, named steps, and plain loops or comprehensions. Cache the supplied fictional extract, retain raw rows, normalize into a separate table, log excluded facts, and print values with commas, percentages, and periods. Do not hide selection in a chain of opaque data-frame expressions.

Visual design is part of the analysis. Start axes at a defensible baseline, show units and periods, avoid dual axes unless unavoidable, distinguish actual from estimated values, and annotate definition changes. A small table often communicates uncertainty better than a decorative chart.

End with a reproducibility block: source endpoint, extraction date, input hash, code version, filters, selected facts, exclusions, limitations, and output hash. A reviewer should be able to rebuild the number rather than trust the screenshot.