Replication Package README Template (DCAS, AEA)
Data and code package README: data availability per source, dataset list, software and runtime, directory tree, run steps, program-to-exhibit map, citations, licences, DCAS matrix
使い方: Use it for the data and code deposit of an accepted empirical economics or finance paper. Fill the source-by-source data access table and the program-to-exhibit map first, and keep them current during the project. The main pitfall is silent omissions: licensed data, manual steps or unpinned package versions that stop a data editor reproducing the results.
プレビュー
Replication Package README: [Paper title]
README for the data and code package that accompanies an accepted empirical paper in economics or finance. It is built on the Data and Code Availability Standard (DCAS) version 1.0 (2022-12-15; M. Koren, M. Connolly, J. Lull and L. Vilhuber; Zenodo record licensed CC BY 4.0) and covers the elements the American Economic Association Data and Code Availability Policy (February 2026 version) requires in a README: data availability statements, package contents, computational requirements, run instructions, the mapping from programs to exhibits, data citations and declared omissions. Notes for the Journal of Finance and the Journal of Financial Economics were checked on their official pages in October 2026. Replace every
[bracketed]value and every row marked Example. This is a document format, not legal advice on data licences or data protection.
Document control
| Field | Value |
|---|---|
| Package ID | [RP-2026-001] |
| Paper title | [Title as accepted] |
| Authors | [Author A, Author B] |
| Journal and manuscript number | [Example: Journal of Finance, manuscript JF-YYYY-NNNN] |
| Repository and DOI | [Example: openICPSR project number, Mendeley Data DOI, Zenodo DOI, or "assigned on publication"] |
| Standard followed | DCAS v1.0; [journal policy name and version] |
| Version | [1.0] |
| Status | [Draft / Submitted to data editor / Revisions requested / Accepted / Published] |
| Owner | [@corresponding-author] |
| Approvers / reviewers | [@co-authors], [@research-assistant who ran the clean test] |
| Last updated | YYYY-MM-DD |
| Classification | [Public on publication / Restricted parts listed in section 2.4] |
Approvals
| Role | Name | Decision | Date |
|---|---|---|---|
| Corresponding author | [@name] | [Package complete] | YYYY-MM-DD |
| Clean-machine tester | [@name] | [Reproduced all exhibits / Issues listed] | YYYY-MM-DD |
| Data editor | [Journal data editor] | [Accepted / Revisions requested] | YYYY-MM-DD |
Revision history
| Version | Date | Author | Change summary |
|---|---|---|---|
| 0.1 | YYYY-MM-DD | [@author] | First draft during the project |
| 1.0 | YYYY-MM-DD | [@author] | Example: Submitted to the data editor at conditional acceptance |
| 1.1 | YYYY-MM-DD | [@author] | Example: Added package versions and runtime after data editor report |
Contents
- Overview
- Data availability and provenance statements
- Dataset list
- Computational requirements
- Code and directory structure
- Run instructions
- Program-to-exhibit mapping
- Data citations
- Licences for code and data
- Omissions, contact and acknowledgements
- Compliance matrix (DCAS v1.0 and journal policy)
- Pre-submission checklist
- Glossary and references
- Standard and licence note
1. Overview
[Summarise the package in four to six sentences. Example: The code in this package constructs the analysis data from four sources (CRSP, Compustat, I/B/E/S and a hand-collected file of broker closures) and produces all tables and figures in the paper and the Internet Appendix. The code is written in Python 3.12 and Stata 18. Three data sources are licensed and must be obtained by the replicator through a WRDS subscription; the hand-collected file is included. The master script runs in about 4 hours 10 minutes on a 2024 laptop with 16 GB of memory. The package also contains a pseudo dataset that lets the code run end to end without licensed data.]
| Summary item | Value |
|---|---|
| Exhibits reproduced | [Example: Tables 1 to 7, Figure 1, Internet Appendix Tables IA.1 to IA.8] |
| Exhibits not reproduced | [Example: None] |
| Main software | [Example: Python 3.12, Stata 18] |
| Total runtime | [Example: about 4 hours 10 minutes] |
| Data the replicator must obtain | [Example: DS-001, DS-002, DS-003 via WRDS] |
| Data included | [Example: DS-004 and the pseudo dataset] |
2. Data availability and provenance statements
2.1 Rights to use and share the data
- The authors confirm that they obtained every dataset lawfully and were permitted to use it for this research.
- The authors hold written permission, kept on file, to publish each dataset that is placed in this package.
2.2 Availability at a glance
- Every dataset can be obtained by any member of the public.
- At least one dataset is licensed or restricted (list it in section 2.4 and section 10.1).
- None of the data can be published; only code and pseudo data are deposited.
2.3 Source-by-source access
| Dataset ID | Source and provider | Access method | Cost and time to access | Included in package? | Redistribution allowed? |
|---|---|---|---|---|---|
| DS-001 (Example) | CRSP daily and monthly stock files, via WRDS | Institutional subscription; query parameters in code/01_download_crsp.py | Subscription fee; access is immediate for subscribers | No | No |
| DS-002 (Example) | Compustat North America annual fundamentals, via WRDS | Institutional subscription; query in code/02_download_compustat.py | Subscription fee | No | No |
| DS-003 (Example) | I/B/E/S detail history, via WRDS | Institutional subscription; query in code/03_download_ibes.py | Subscription fee | No | No |
| DS-004 (Example) | Broker closures and mergers, hand-collected by the authors from press releases and regulatory filings | File data/raw/broker_events.csv | Free | Yes | Yes, under CC BY 4.0 |
| DS-900 (Example) | Pseudo dataset generated by code/00_make_pseudo.py | Included | Free | Yes | Yes |
| [DS-005] | [Source] | [Access] | [Cost and time] | [Yes / No] | [Yes / No] |
For each licensed dataset write a short paragraph a replicator can act on: the product names, the exact tables or files, the date range, the date you downloaded the data and the query you used. Record the download date because vendors revise historical data.
Example: Data on stock returns come from the CRSP daily stock file
(DS-001), accessed through WRDS on YYYY-MM-DD. The data are licensed and
cannot be redistributed. Researchers with a WRDS subscription can run
code/01_download_crsp.py with their own credentials to recreate the
extract; the script lists every variable and filter.
2.4 Restricted, confidential and personal data
[If any data are confidential, describe who controls access, the application process, the expected time to approval, and whether a data editor or third-party replicator can be given access to verify results. State how long you will preserve the data and code, and where. Never place confidential or personal data in the deposit, including in log files or intermediate outputs.]
Journals handle restricted data differently: the Journal of Finance and the Journal of Financial Economics ask for pseudo data that let the code run when real data cannot be shared, and the AEA asks authors to explain access in the data availability statement and not to upload non-public data to the draft deposit. If you want to keep hand-collected data confidential for a period, tell the journal at first submission: the Journal of Finance asks for notice at initial submission, and the Journal of Financial Economics allows hand-collected data or code to be held back for up to two years if the editor is told at submission (the data still go to the editorial office). Check the current policy of your journal.
3. Dataset list
| File | Dataset ID | Description | Provided? | Created by |
|---|---|---|---|---|
data/raw/crsp_daily.parquet (Example) | DS-001 | CRSP daily returns extract | No, replicator downloads | code/01_download_crsp.py |
data/raw/compustat_annual.parquet (Example) | DS-002 | Compustat annual fundamentals | No, replicator downloads | code/02_download_compustat.py |
data/raw/ibes_detail.parquet (Example) | DS-003 | I/B/E/S estimates with analyst and broker codes | No, replicator downloads | code/03_download_ibes.py |
data/raw/broker_events.csv (Example) | DS-004 | Broker closure and merger dates with sources | Yes | Authors |
data/pseudo/ (Example) | DS-900 | Pseudo versions of DS-001 to DS-003 with the same columns | Yes | code/00_make_pseudo.py |
data/analysis/panel.parquet (Example) | Derived | Firm-year analysis panel | No, created by code | code/10_build_panel.py |
| [File] | [ID] | [Description] | [Yes / No] | [Program] |
Describe variables and codebooks for every included dataset in
docs/codebook.pdf or in a metadata file next to the data, with units,
missing value codes and the meaning of identifiers.
4. Computational requirements
4.1 Software
| Software | Version | Packages and versions | How installed |
|---|---|---|---|
| Python (Example) | 3.12.4 | pandas 2.2.2, numpy 1.26.4, statsmodels 0.14.2, linearmodels 6.0, pyarrow 16.1.0 | requirements.txt, installed by setup.sh |
| Stata (Example) | 18 MP | reghdfe, ftools, estout (versions in code/stata_packages.txt) | Installed into code/ado/ by code/00_setup.do |
| [Software] | [Version] | [Packages] | [Method] |
Pin every package version in a lock file (requirements.txt,
renv.lock, environment.yml) or bundle the packages in the deposit. If
you provide a container, give the image name and digest.
4.2 Randomness
[State every random process (bootstrap, simulation, matching tie-breaks,
train and test splits) and where the seed is set. Example: The seed is
set to 20261025 in code/config.py; all scripts import it.]
4.3 Hardware and runtime
| Item | Value |
|---|---|
| Hardware used (Example) | Laptop, 8-core CPU, 16 GB memory, macOS 15 |
| Operating systems tested (Example) | macOS 15 and Ubuntu 24.04 |
| Disk space needed (Example) | 22 GB for raw and intermediate data |
| Total runtime (Example) | About 4 hours 10 minutes |
| Step | Script | Runtime (Example) |
|---|---|---|
| Download licensed data | 01 to 03 | 1 hour 15 minutes |
| Build analysis panel | 10_build_panel.py | 40 minutes |
| Main regressions and tables | 20_main.do | 25 minutes |
| Robustness and Internet Appendix | 30_robustness.do | 1 hour 30 minutes |
| Figures | 40_figures.py | 20 minutes |
| Total | 4 hours 10 minutes |
Check the total: 75 + 40 + 25 + 90 + 20 = 250 minutes, which is 4 hours 10 minutes.
5. Code and directory structure
replication-package/
README.pdf # this document, exported
LICENSE.txt # code and data licences (section 9)
run_all.sh # master script: runs every step in order
code/
config.py # root path, seed, sample period
00_setup.do # installs Stata packages into code/ado
00_make_pseudo.py # creates the pseudo dataset
01_download_crsp.py # licensed data download (WRDS credentials)
02_download_compustat.py
03_download_ibes.py
10_build_panel.py # cleaning, merging, sample filters
20_main.do # Tables 2 to 5, Figure 1 estimates, text numbers
30_robustness.do # Tables 6 and 7, IA.1 to IA.8
40_figures.py # Figure 1
data/
raw/ # inputs (licensed files not included)
pseudo/ # pseudo versions of licensed inputs
analysis/ # created by code
output/
tables/ # .tex and .csv tables
figures/ # .pdf figures
logs/ # one log per script
docs/
codebook.pdf
[Describe any program that is not obvious from its name. State that programs that transform raw data into analysis data are included, as well as programs that produce the exhibits; data editors check both.]
6. Run instructions
- Obtain access to the licensed data listed in section 2.3 and place
your WRDS user name in
code/config.py(the password is requested at run time and never stored). - Edit the one root path in
code/config.py. - Install the software in section 4.1: run
setup.shfor Python andcode/00_setup.dofor Stata. - Run
run_all.shfrom the package root. It runs every script in section 5 in order and writes a log for each tooutput/logs/. - To test the code without licensed data, run
run_all.sh --pseudo. Results will differ from the paper but every script should complete. - Compare
output/tables/andoutput/figures/with the exhibits listed in section 7.
[State any manual step (for example a figure edited by hand, or a table assembled from two outputs) and why it cannot be automated.]
7. Program-to-exhibit mapping
| Exhibit | Program | Line or section | Output file | Note |
|---|---|---|---|---|
| Table 1 (Example) | 10_build_panel.py | Attrition log at end | output/tables/table1_attrition.tex | Sample attrition |
| Table 2 (Example) | 20_main.do | Section 1 | output/tables/table2_desc.tex | Descriptive statistics |
| Table 3 (Example) | 20_main.do | Section 2 | output/tables/table3_baseline.tex | Baseline regression |
| Table 4 (Example) | 20_main.do | Section 3 | output/tables/table4_hetero.tex | Heterogeneity |
| Table 5 (Example) | 20_main.do | Section 4 | output/tables/table5_mechanism.tex | Mechanism |
| Table 6 (Example) | 30_robustness.do | Section 1 | output/tables/table6_staggered.tex | Staggered estimator |
| Table 7 (Example) | 30_robustness.do | Section 2 | output/tables/table7_placebo.tex | Placebo timing |
| Figure 1 (Example) | 40_figures.py | plot_event_time() | output/figures/figure1.pdf | Event-time coefficients |
| In-text number, section 7.1 (Example) | 20_main.do | Section 2, displayed in log | output/logs/20_main.log | Mean investment rate 0.0800 |
| Tables IA.1 to IA.8 (Example) | 30_robustness.do | Sections 3 to 10 | output/tables/ia*.tex | Internet Appendix |
| [Exhibit] | [Program] | [Location] | [File] | [Note] |
8. Data citations
[List each dataset as a formal reference: provider, title, version or download date, distributor and persistent identifier or URL. Example: Center for Research in Security Prices. CRSP Daily Stock File. Accessed via Wharton Research Data Services on YYYY-MM-DD.]
[Cite the hand-collected dataset with its own DOI once the deposit is published, so that others can cite it separately from the paper.]
Cite software that the analysis depends on, with versions, where your journal encourages it.
9. Licences for code and data
| Component | Licence | Note |
|---|---|---|
| Code (Example) | MIT | Authors' code in code/ |
| Hand-collected data DS-004 (Example) | CC BY 4.0 | Attribution to the authors and the paper |
| Pseudo data DS-900 (Example) | CC0 1.0 | Fictional values only |
| Licensed data DS-001 to DS-003 (Example) | Not redistributed | Vendor terms apply |
| Third-party code (Example) | [Licence of each bundled package] | Permission recorded in LICENSE.txt |
Some repositories apply a default licence (the AEA's repository does, and Mendeley Data lets authors choose). Record the licence that actually applies to the published deposit.
10. Omissions, contact and acknowledgements
10.1 Omissions
| Omitted item | Reason | How a replicator can still verify |
|---|---|---|
| Licensed data DS-001 to DS-003 (Example) | Vendor licence prohibits redistribution | Download scripts and pseudo data included |
| [Item] | [Reason: licence, confidentiality, size, legal limit] | [Route to verify] |
10.2 Contact
[Name and email of the person who maintains the package. State that the authors are not obliged to provide support but will correct errors that are reported.]
10.3 Acknowledgements
[Thank research assistants who tested the package and any data provider that granted permission to share.]
11. Compliance matrix (DCAS v1.0 and journal policy)
| DCAS rule | Name | Our short summary | Where addressed | Status |
|---|---|---|---|---|
| 1 | Data Availability Statement | Say for every dataset how it can be accessed | Section 2 | [Met / Partly / Not applicable] |
| 2 | Raw data | Share or describe the original source data | Sections 2.3 and 3 | [Status] |
| 3 | Analysis data | Share or describe the data used for the analysis | Section 3 | [Status] |
| 4 | Format | Data in a format others can read | Section 3 | [Status] |
| 5 | Metadata | Describe variables and allowed values | Section 3, codebook | [Status] |
| 6 | Citation | Cite all data used | Section 8 | [Status] |
| 7 | Data transformation | Provide code from raw to analysis data | Sections 5 and 6 | [Status] |
| 8 | Analysis | Provide code from analysis data to results | Sections 5 and 7 | [Status] |
| 9 | Format | Code in source form that others can run | Section 5 | [Status] |
| 10 | Instruments | Provide survey or experimental instruments if used | [Section or "not applicable"] | [Status] |
| 11 | Ethics | Document ethics approval where relevant | [Section or "not applicable"] | [Status] |
| 12 | Pre-registration | Cite any pre-registration | [Section or "not applicable"] | [Status] |
| 13 | Documentation | Provide a README covering the package | This document | [Status] |
| 14 | Location | Deposit in a trusted repository | Document control, section 9 | [Status] |
| 15 | License | Licence the code and data | Section 9 | [Status] |
| 16 | Omissions | Declare anything not provided and why | Section 10.1 | [Status] |
Journal-specific notes, summarised in our own words from the official pages in October 2026 (check the current versions before deposit):
| Journal or body | What it asks for | README sections |
|---|---|---|
| American Economic Association (policy, February 2026) | README as a PDF in the top-level directory; data availability statement; package contents; software, hardware and runtime; run instructions; program-to-exhibit mapping; data citations not in the paper; declared omissions. Deposit in the AEA Data and Code Repository is strongly encouraged; deposits are uploaded unzipped. Endorses DCAS v1.0 | 1 to 10 |
| Journal of Finance (Data and Code Sharing Policy, 1 April 2024) | Disclosure plan at initial submission; code, computation details, log files and permitted data generally within 30 days of conditional acceptance; pseudo data where real data cannot be provided; operating system, packages, licence statement, random seeds and run order | 2.4, 4, 6, 7 |
| Journal of Financial Economics (data and code sharing policy) | Data, programs and instructions for accepted empirical, simulation or experimental papers; deposit in Mendeley Data or a domain repository; pseudo dataset where data are proprietary; hand-collected data or code may be held back for up to two years if the editor is told at submission | 2, 3, 4, 6 |
| [Other journal] | [Requirement] | [Sections] |
12. Pre-submission checklist
- A person outside the author team ran
run_all.shon a clean machine and reproduced every exhibit. - Every exhibit and every number quoted in the text appears in section 7.
- Every dataset has a row in sections 2.3 and 3 and a citation in section 8.
- All package versions are pinned; the random seed is set once and documented.
- No absolute paths outside
code/config.py. - No credentials, personal data or licensed data in the deposit, including logs.
- Pseudo data run end to end where licensed data are omitted.
- Licences stated for code and shareable data.
- Omissions declared with reasons.
- README exported to PDF and placed in the top-level directory, if the journal asks for it.
- Deposit uploaded unzipped, if the repository requires it.
- General reproducibility checks done with the Reproducibility Checklist (
science/reproducibility-checklist).
How to run the clean-machine test: copy the package exactly as it will be deposited to a computer or container that has never held the project, with only the software listed in section 4 installed. Give the tester the README and nothing else; do not answer questions by message, but note every question they ask, because each one marks a gap in the README. Have them run the master script, then compare every output with the paper using the program-to-exhibit map in section 7, digit by digit for tables and visually for figures. Record the date, the machine and any differences, and fix the README or the code before deposit. Common failures are a package installed globally on the author's machine but missing from the setup script, a path that only exists on the author's computer, a script that depends on a file created interactively, and outputs that differ in the last digit because a seed was set in one script but not in another.
13. Glossary and references
13.1 Glossary
| Term | Meaning |
|---|---|
| Replication package | The deposit of data, code and documentation that reproduces a paper's results |
| Data editor | Journal staff who check that a package is complete and reproduces the results |
| Data availability statement | A statement, per dataset, of how a reader can obtain the data |
| Pseudo data | Fictional data with the same structure as restricted data, so that code can be tested |
| Licensed data | Data obtained under a commercial or institutional licence that usually forbids redistribution |
| Master script | One script that runs all programs in the correct order |
| Program-to-exhibit mapping | A table linking each table, figure and in-text number to the code that creates it |
| Trusted repository | A repository with persistent identifiers and long-term preservation |
13.2 References
- Koren, Miklós; Connolly, Marie; Lull, Joan; Vilhuber, Lars (2022). Data and Code Availability Standard (DCAS), version 1.0, 2022-12-15, DOI 10.5281/zenodo.7436134, datacodestandard.org (Zenodo record licensed CC BY 4.0; GitHub repository licensed CC0 1.0).
- American Economic Association, Data and Code Availability Policy, February 2026 version, aeaweb.org.
- American Finance Association, Journal of Finance, Data and Code Sharing Policy, 1 April 2024, afajof.org.
- Journal of Financial Economics, data and code sharing policy, jfinec.com.
- See also: the Social Science Data Editors' template README (GitHub, social-science-data-editors), which several journals recommend. It is licensed CC BY-NC 4.0, so this template does not reproduce or adapt its text; consult it directly.
Related templates: Empirical Finance Paper
(academic/empirical-finance-paper), Event Study (academic/event-study),
Pre-Analysis Plan (academic/pre-analysis-plan), Data Management Plan
(science/data-management-plan) for planning data handling at the start
of a project, and Reproducibility Checklist
(science/reproducibility-checklist).
14. Standard and licence note
Based on the Data and Code Availability Standard (DCAS) version 1.0 (2022-12-15) by M. Koren, M. Connolly, J. Lull and L. Vilhuber, licensed CC BY 4.0 (Zenodo, DOI 10.5281/zenodo.7436134), whose 16 rules are listed by number and name in section 11 (the rule summaries are ours), and on the README elements listed in the American Economic Association Data and Code Availability Policy (February 2026). Journal of Finance and Journal of Financial Economics requirements are summarised in original words from their official policy pages as checked in October 2026. The Social Science Data Editors' template README (CC BY-NC 4.0) was not adapted. All text and the fictional example package are original; check the current version of the standard and of your journal's policy before deposit. Template licence: MIT.
関連テンプレート
Annotated Bibliography Template
Sources + evaluation + use per entry
学術Conference Abstract Template
Structured conference abstract: title, authors and affiliations, background, methods, results, conclusions, word-limit guide
学術Dissertation Proposal Template
Proposal: rationale, research questions, literature summary, conceptual framework diagram, methods, analysis, ethics, timeline, budget