```html Building a Reproducible Framework for Accounting Bias Research

Gianmarco Corradini

Building a Reproducible Framework for Accounting Bias Research

Gianmarco Corradini, updated 09.08.2026

Introduction

The Accounting Bias Framework begins from a simple distinction: accounting representation is not identical to economic reality.

In theoretical form, Accounting Bias can be represented as

\[ AB_{it}=A_{it}-E_{it}, \]

where \(A_{it}\) is the accounting representation of firm \(i\) at time \(t\), while \(E_{it}\) is the corresponding underlying economic state.

This definition immediately creates an empirical problem. Accounting information is observable, but the true economic state is generally not.

The empirical objective is therefore not to claim that \(A-E\) can be observed directly from financial statements. Instead, the research identifies observable accounting structures associated with mechanisms capable of generating a divergence between accounting representation and economic conditions.

The empirical strategy can be summarized as:

\[ \text{Business Model} \rightarrow \text{Accounting Mechanism Exposure} \rightarrow \text{Observable Accounting Patterns}. \]

The complete analysis is implemented as a reproducible Python project using publicly available SEC financial-statement data.

The Empirical Research Design

The final research design uses a predetermined sample of 50 U.S. listed companies distributed across five broad industry groups.

The principal analysis period covers fiscal years 2021--2025.

The complete balanced firm-year structure is therefore:

\[ 50 \times 5 = 250 \]

potential firm-year observations.

Data from 2020 are additionally collected where a lagged value is required, for example when calculating asset growth for 2021.

The use of a predetermined sample is important. Firms were selected before the final hypothesis tests were evaluated. The composition of the sample was therefore not changed in response to statistical significance.

Data Source: SEC Company Facts

The project uses the U.S. Securities and Exchange Commission's Company Facts data, which provide structured financial-statement information reported through XBRL.

The underlying observations contain information such as:

Using XBRL makes it possible to construct the empirical dataset programmatically rather than manually copying values from annual reports or relying exclusively on commercial financial databases.

The Reproducible Pipeline

The final research workflow is divided into seven principal stages:

SEC Company Facts
        |
        v
01_download_sec_data.py
        |
        v
02_construct_panel.py
        |
        v
03_construct_abi_proxies.py
        |
        v
04_analyze_abi_structure.py
        |
        v
05_prepare_hypothesis_tests.py
        |
        v
06_run_hypothesis_tests.py
        |
        v
07_export_book_results.py

The separation between stages is deliberate.

Data acquisition is separated from variable construction. Variable construction is separated from statistical testing. Statistical testing is separated from publication output.

This reduces the possibility of changing data-processing rules merely because a later regression produces an inconvenient result.

Stage 1: Downloading SEC Data

The first script downloads the required SEC information for the fixed sample.

python 01_download_sec_data.py

The program resolves stock-market tickers to SEC Central Index Keys and retrieves Company Facts observations for the required fiscal periods.

Automated SEC requests identify the researcher through a descriptive User-Agent containing a valid contact address.

The downloader also preserves raw source data so that later transformations can be traced back to the original SEC observations.

Stage 2: Constructing the Firm-Year Panel

Raw XBRL data cannot simply be inserted into a regression.

A single economic concept may appear under multiple taxonomy elements, multiple filings, amended filings or different reporting contexts. Stock variables and flow variables also require different temporal treatment.

The second stage therefore converts filing-level facts into comparable firm-year observations.

python 02_construct_panel.py

Conceptually:

\[ \text{Raw XBRL Facts} \rightarrow \text{Concept Resolution} \rightarrow \text{Fiscal-Year Alignment} \rightarrow \text{Firm-Year Panel}. \]

Alternative XBRL Tags

One practical difficulty is that firms do not always use the same taxonomy element for economically comparable information.

The extraction procedure therefore follows a predefined hierarchy:

  1. search for the preferred XBRL concept;
  2. search predefined economically appropriate fallback concepts;
  3. apply the required period and filing filters;
  4. record the source used;
  5. leave the observation missing when no sufficiently comparable fact exists.

The fallback hierarchy is defined before hypothesis testing. It is not modified simply to increase the statistical significance of later results.

Missing Does Not Mean Zero

One of the most important rules of the project is:

\[ \boxed{\text{Missing} \neq 0} \]

If an R&D observation cannot be extracted, for example, this does not automatically imply that the company performed no research.

Missing information may instead indicate:

Missing values are therefore not mechanically replaced with zero, firm averages or industry averages.

Stage 3: Constructing Accounting Bias Proxies

The empirical variables are constructed from reported accounting facts. They are normalized to improve comparability across firms of different sizes.

The final core analysis focuses on six variables:

\[ RDINT,\quad GWINT,\quad PPEINT,\quad ACCDEPINT,\quad ACCRUALINT,\quad DTINT. \]

These represent three empirically usable Accounting Bias dimensions:

Recognition

Research and development intensity:

\[ RDINT_{it} = \frac{RD_{it}} {\overline{Assets}_{it}}. \]

Goodwill intensity:

\[ GWINT_{it} = \frac{Goodwill_{it}} {Assets_{it}}. \]

Measurement

Property, plant and equipment intensity:

\[ PPEINT_{it} = \frac{NetPPE_{it}} {Assets_{it}}. \]

Accumulated-depreciation intensity:

\[ ACCDEPINT_{it} = \frac{AccumulatedDepreciation_{it}} {GrossPPE_{it}}. \]

Timing

Accrual intensity:

\[ ACCRUALINT_{it} = \frac{|NI_{it}-CFO_{it}|} {\overline{Assets}_{it}}. \]

Deferred-tax intensity:

\[ DTINT_{it} = \frac{DeferredTaxExposure_{it}} {Assets_{it}}. \]

Exposure Is Not Bias Itself

This distinction became increasingly important as the empirical research developed.

A high value of one of these ratios does not prove that a company's financial statements are economically incorrect.

For example, high goodwill intensity indicates substantial exposure to acquisition-based recognition. High R&D intensity indicates substantial exposure to the accounting treatment of internally generated research.

The empirical vector is therefore better written as:

\[ \mathbf{X}^{AB}_{it} = [ RDINT, GWINT, PPEINT, ACCDEPINT, ACCRUALINT, DTINT ]_{it}. \]

It describes an Accounting Bias exposure profile, rather than a directly observed quantity \(A-E\).

The Estimation Dimension

Estimation remains an important theoretical dimension of Accounting Bias.

Variables related to allowances, bad-debt provisions and similar estimate-dependent items were investigated during the empirical construction process.

However, standardized XBRL coverage for these variables was substantially weaker than for the six core proxies.

The final research design therefore does not force low-coverage Estimation variables into the main hypothesis tests.

This is an important methodological principle: theoretical importance does not justify pretending that the available data are better than they actually are.

Stage 4: Structural Analysis

Before estimating outcome regressions, the research first examines the empirical structure of the proposed variables.

python 04_analyze_abi_structure.py

The structural analysis includes:

This stage changed the final interpretation of the Accounting Bias Framework substantially.

Industry Heterogeneity

The first structural question is whether Accounting Bias exposure differs systematically across industries.

A generic specification is:

\[ X_{it} = \alpha + \sum_g \gamma_g Industry_{ig} + \sum_t \delta_t Year_t + \varepsilon_{it}. \]

The joint null hypothesis is that industry membership provides no systematic information about the proxy.

In the final empirical analysis, industry heterogeneity was detected for all six core proxies:

\[ \boxed{6/6}. \]

This is consistent with the idea that exposure to accounting mechanisms is strongly connected to business model and economic structure.

Persistence

The second structural question is whether Accounting Bias exposure persists within firms.

The general persistence model is:

\[ X_{it} = \alpha + \beta X_{i,t-1} + \delta_t + \varepsilon_{it}. \]

If \(\beta\) is large and positive, firms tend to retain their relative exposure over time.

Five of the six core proxies were significantly persistent:

\[ \boxed{5/6}. \]

Recognition and Measurement variables were particularly persistent, while accrual intensity was substantially more dynamic.

Structural and Dynamic Accounting Bias Exposure

The empirical results suggest that a firm's observed exposure can be decomposed conceptually into:

\[ X^{AB}_{it} = S_i + D_{it}, \]

where \(S_i\) represents persistent firm structure and \(D_{it}\) represents time-varying exposure.

This distinction proved especially informative.

Goodwill intensity is predominantly structural. A firm's acquisition history does not disappear from one fiscal year to the next.

Accrual intensity, in contrast, displays much greater within-firm movement because the relationship between accounting earnings and cash realization can change materially from year to year.

Accounting Bias exposure is therefore multidimensional not only in accounting content, but also in time.

Principal Component Analysis

Principal Component Analysis was retained in the final framework, but its role changed.

PCA is not used to assume that Accounting Bias must be a single latent variable. It is used to test whether the empirical data support such an interpretation.

The cross-dimensional PCA uses the relatively high-coverage variables:

\[ GWINT,\quad PPEINT,\quad ACCDEPINT,\quad ACCRUALINT,\quad DTINT. \]

The complete-case sample contains 141 firm-year observations.

The first principal component explains approximately:

\[ 45.0\% \]

of standardized variance.

However, the loading structure does not resemble a universal ``more Accounting Bias / less Accounting Bias'' factor.

Instead, the first component is better interpreted as an axis of accounting and business-model structure.

PCA therefore supports a multidimensional interpretation rather than providing strong justification for a universal scalar Accounting Bias Index.

Why the Composite ABI Was Abandoned

An earlier version of the research considered standardizing the variables and constructing a composite measure such as:

\[ ABI = \frac{1}{k} \sum_{j=1}^{k} z_j. \]

The final empirical results showed why this would be difficult to interpret.

The variables do not behave like interchangeable measurements of one underlying quantity.

Recognition, Measurement and Timing have different economic meanings, different persistence properties and different within-firm dynamics.

Some theoretically meaningful relationships are negative rather than positive.

Two firms could therefore receive the same aggregate ABI while having completely different accounting structures.

The final framework consequently favors:

\[ \boxed{\text{Accounting Bias Profiles}} \]

over:

\[ \boxed{\text{Accounting Bias Rankings}}. \]

Stage 5 and Stage 6: Formal Hypothesis Testing

After the structural properties of the variables are understood, the data are prepared for formal hypothesis testing.

python 05_prepare_hypothesis_tests.py
python 06_run_hypothesis_tests.py

The general pooled specification can be written as:

\[ Y_{it} = \alpha + \beta X_{it} + \boldsymbol{\theta}'C_{it} + \boldsymbol{\gamma}'Industry_i + \boldsymbol{\delta}'Year_t + \varepsilon_{it}. \]

The control variables include firm characteristics such as size, equity ratio and asset growth.

Standard errors are clustered at the firm level because observations from the same company across years cannot reasonably be treated as independent.

Recognition Test

The Recognition model examines the relationship between research intensity and goodwill intensity:

\[ GWINT_{it} = \alpha + \beta_R RDINT_{it} + Controls + Industry + Year + \varepsilon_{it}. \]

The pooled relationship is strongly negative.

This is consistent with two different routes through which intangible productive capacity enters the accounting system:

\[ \text{Internal Development} \rightarrow \text{R\&D Expense}, \]

versus:

\[ \text{Acquisition} \rightarrow \text{Recognized Intangibles + Goodwill}. \]

The result should not be interpreted as evidence that R&D mechanically causes goodwill to decline. It primarily reflects different recognition structures across firms.

Measurement Test

The Measurement model examines the relationship between PPE intensity and accumulated-depreciation intensity:

\[ ACCDEPINT_{it} = \alpha + \beta_M PPEINT_{it} + Controls + Industry + Year + \varepsilon_{it}. \]

The relationship is strongly negative.

This is consistent with the life cycle of long-lived assets. Firms undergoing substantial new investment can simultaneously display higher PPE intensity and lower accumulated depreciation relative to gross PPE.

Timing Test

The Timing model examines whether accrual intensity and deferred-tax intensity behave as a common empirical timing mechanism:

\[ DTINT_{it} = \alpha + \beta_T ACCRUALINT_{it} + Controls + Industry + Year + \varepsilon_{it}. \]

The relationship is not statistically significant.

This null result is theoretically informative.

It suggests that:

\[ \text{Timing} = \text{Operating Timing} + \text{Tax Timing}, \]

rather than one homogeneous empirical mechanism.

Firm Fixed Effects

Pooled regressions cannot determine whether a relationship exists because different kinds of firms differ from one another or because variables actually move together within the same company.

The research therefore estimates firm-fixed-effect models:

\[ Y_{it} = \alpha_i + \beta X_{it} + Controls + Year + \varepsilon_{it}. \]

The firm-specific intercept \(\alpha_i\) absorbs persistent time-invariant firm characteristics.

The Recognition relationship disappears under firm fixed effects. This indicates that it is predominantly a between-firm structural phenomenon.

The Measurement relationship survives firm fixed effects, indicating that it contains meaningful within-firm dynamics as well as structural differences.

Timing remains statistically insignificant.

Testing Associations with Profitability

The final major empirical question is whether the Accounting Bias exposure variables are associated with reported profitability.

Return on assets is defined as:

\[ ROA_{it} = \frac{NI_{it}} {\overline{Assets}_{it}}. \]

Each core proxy is first tested separately:

\[ ROA_{it} = \alpha + \beta_j X_{j,it} + Controls + Industry + Year + \varepsilon_{it}. \]

In the final single-proxy models, two variables have statistically significant negative associations with ROA:

The other four core proxies are not statistically significant in their individual models.

This rejects a simplistic interpretation in which every form of Accounting Bias exposure must have the same relationship with reported profitability.

The Multivariate Robustness Test

A restricted robustness model places all six core proxies in the same ROA regression:

\[ \begin{aligned} ROA_{it} = \alpha &+ \beta_1 RDINT_{it} + \beta_2 GWINT_{it} + \beta_3 PPEINT_{it} \\ &+ \beta_4 ACCDEPINT_{it} + \beta_5 ACCRUALINT_{it} + \beta_6 DTINT_{it} \\ &+ Controls + Industry + Year + \varepsilon_{it}. \end{aligned} \]

Requiring all six proxies simultaneously reduces the sample to 103 firm-year observations across 23 firms.

In this restricted specification, goodwill intensity, accrual intensity and deferred-tax intensity are statistically significant.

Because the complete-case sample is smaller and not perfectly balanced across industries, this model is interpreted as a robustness test rather than as the primary specification.

What the Empirical Research Changed

One of the purposes of empirical research is to allow evidence to modify theory.

The initial framework left open the possibility that Accounting Bias might be summarized by one composite index.

The final evidence instead supports a more structured interpretation:

\[ \boxed{ \text{Accounting Bias is multidimensional, mechanism-specific and predominantly structural.} }

Recognition is primarily structural.

Measurement contains both structural and within-firm dynamic components.

Accrual-based Timing is substantially more dynamic.

Operating Timing and tax Timing do not behave as one homogeneous empirical mechanism.

The resulting framework is therefore hierarchical:

\[ \text{Accounting Bias} \rightarrow \{ Recognition,\, Measurement,\, Timing,\, Estimation \} \rightarrow \text{mechanism-specific subcomponents}. \]

Accounting Bias as a Transformation System

The empirical findings also reinforce a more general theoretical representation of accounting.

Instead of treating financial statements as a direct copy of economic reality, accounting can be represented as an operator:

\[ A=\mathcal{A}(E). \]

The operator contains several mechanisms:

\[ \mathcal{A} = \mathcal{A}_R \circ \mathcal{A}_M \circ \mathcal{A}_T \circ \mathcal{A}_S, \]

corresponding to Recognition, Measurement, Timing and Estimation.

Accounting Bias is then:

\[ AB = \mathcal{A}(E)-E. \]

The empirical variables do not observe this quantity directly. They provide information about the structure of the transformation through which accounting representations are produced.

Stage 7: Automatic Publication Output

The final script converts statistical results into publication-ready material:

python 07_export_book_results.py

The pipeline automatically generates:

The book imports the generated LaTeX tables and PDF figures directly.

The publication workflow is therefore:

\[ \text{Raw Data} \rightarrow \text{Code} \rightarrow \text{Statistical Results} \rightarrow \text{Generated Tables/Figures} \rightarrow \text{Manuscript}. \]

This reduces transcription errors and makes the empirical chapters reproducible when the underlying analysis is rerun.

Running the Complete Analysis

Once the Python environment has been configured, the complete workflow can be reproduced sequentially:

cd ~/Desktop/book_code
source .venv/bin/activate

python 01_download_sec_data.py
python 02_construct_panel.py
python 03_construct_abi_proxies.py
python 04_analyze_abi_structure.py
python 05_prepare_hypothesis_tests.py
python 06_run_hypothesis_tests.py
python 07_export_book_results.py

The exact local filenames should of course correspond to the scripts contained in the research directory.

How the Results Should Be Read

The empirical framework is intentionally not organized around a search for statistically significant coefficients.

The preferred order is:

  1. verify that the accounting concept can be extracted reliably;
  2. measure coverage and missingness;
  3. inspect the distribution of the resulting variable;
  4. determine whether variation is primarily within or between firms;
  5. test persistence;
  6. test industry dependence;
  7. study relationships within theoretical dimensions;
  8. compare pooled and firm-fixed-effect estimates;
  9. only then examine associations with economic outcomes.

A statistically insignificant result is not automatically a failed result.

For example, the weak relationship between the two Timing proxies revealed that operating accrual timing and tax-accounting timing should not automatically be treated as one empirical mechanism.

What the Research Does Not Claim

Reproducibility does not remove the limitations of the empirical design.

The sample contains 50 predetermined firms rather than the entire population of U.S. listed companies.

The principal analysis covers five fiscal years.

XBRL coverage differs substantially across accounting concepts.

Some theoretically important mechanisms, particularly those involving accounting estimates, remain difficult to measure consistently from standardized data.

The profitability regressions identify associations rather than causal effects.

Most importantly, the analysis does not observe the true economic state \(E\).

It therefore does not directly calculate:

\[ AB=A-E. \]

The empirical contribution is instead to identify and test observable structures associated with the accounting transformation.

Conclusion

The project began with an attempt to translate a theoretical concept into measurable accounting variables.

The resulting empirical research did more than provide numerical illustrations. It changed the way the framework itself should be interpreted.

The evidence does not support a simple universal Accounting Bias score. It supports a profile of mechanism-specific exposures whose behavior differs across firms, industries and time.

The complete research process can be summarized as:

\[ \boxed{ \begin{aligned} &\text{Theory} \\ &\downarrow \\ &\text{Accounting Mechanisms} \\ &\downarrow \\ &\text{SEC/XBRL Data} \\ &\downarrow \\ &\text{Firm-Year Panel} \\ &\downarrow \\ &\text{Mechanism-Specific Proxies} \\ &\downarrow \\ &\text{Structural Diagnostics} \\ &\downarrow \\ &\text{Hypothesis Tests} \\ &\downarrow \\ &\text{Theory Revision}. \end{aligned} } \]

The central methodological lesson is therefore not to begin with a regression or with a composite index.

Begin with the accounting mechanism.

Ask what economic phenomenon is being represented, whether it is recognized, how it is measured, when it enters the financial statements, how reliably it can be extracted, and whether its observed variation is structural or dynamic.

Only then ask what the statistical coefficient means.

In this sense, the objective of the Accounting Bias research program is not to produce one immutable formula. It is to construct a transparent empirical framework through which the transformation from economic activity to accounting representation can be studied, tested, criticized and extended.

```