# Compare two annual 10-K periods with ChatGPT and check every figure

> Use ChatGPT to compare two actual annual 10-K periods, then reconcile filings, verify every calculation and source, and accept or hold an analyst memo.

By BIGCHANGE.AI Editorial

Published: 2026-10-22T07:10:41.607Z
Updated: 2026-10-22T07:10:41.607Z
Canonical: https://bigchange.ai/blog/chatgpt-two-period-10k-filing-comparison-guide

![Conceptual charcoal illustration of two open, unbranded annual filing volumes beside a blank source-check table with orange check marks.](https://bigchange.ai/api/media/file/two-annual-filings-checked-comparison-hero-v2.png)
AI-generated conceptual illustration by BIG CHANGE.

A useful two-year filing comparison has to survive a question that ChatGPT cannot answer for you: which figures in the issuer's actual SEC filings still control? This guide is for a financial analyst or reporting owner with permission to use the filings and an approved ChatGPT workspace. The result is a source-linked memo comparing two annual periods, with every figure and explanation checked by a person before anyone relies on it.

## The big change

- **What changed:** ChatGPT's file analysis can help organize a small, structured filing table, show calculations and draft a memo from supplied evidence.
- **Why it matters:** Row IDs and filing locators make the proposed comparison auditable instead of leaving numbers inside a plausible paragraph.
- **What to watch:** Amended filings, non-reliance notices and changed prior-year presentations can overturn a neat calculation. An analyst must resolve them before accepting the memo.

## 1. Choose the issuer and check its filing history

Choose one actual U.S. public company with two consecutive annual periods that report comparable revenue, operating income and consolidated net income. You need its ten-digit CIK, the original Form 10-K accession for each year, filing dates, fiscal start and end dates, currency and accounting basis. If the required lines or a comparable annual basis are missing, choose another issuer for this recipe.

Start at the SEC's [Search Filings page](https://www.sec.gov/search-filings): enter the company name, ticker or CIK in Company Search, confirm the issuer's CIK, and open its filing list. Narrow the list by form and date to find the two original 10-Ks, their 10-K/A amendments and later 8-Ks. Open each relevant filing and record its accession number, filing date and document URL. The SEC's [EDGAR search guide](https://www.sec.gov/search-filings/edgar-search-assistance/how-do-i-use-edgar) explains company, CIK, form and date searches. **Before selecting any figures**, check that same-CIK history for relevant amendments and Form 8-K Item 4.02 non-reliance disclosures. Record the UTC time through which you checked and each relevant accession. Read what an amendment actually changes; an amended cover page does not by itself replace the financial statements. [Item 4.02 of Form 8-K](https://www.sec.gov/files/form8-k.pdf) addresses previously issued statements or audit work that should no longer be relied upon. If it affects either selected period and an authoritative replacement or comparable basis remains unresolved, mark the work **HOLD**.

## 2. Build the checked source files

Use the controlling Item 8 financial statements and notes in the original or relevant amended filings. Transcribe each annual period's three lines into a private `filing-facts.csv`, one row per metric and period, with stable `row_id` values. Keep the issuer's line label, sign and reported scale. `metric_key` is `revenue`, `operating_income` or `net_income` only after you have matched the underlying definitions. Consolidated net income is not interchangeable with net income attributable to the parent, and a non-GAAP figure or earnings release is not an unmarked substitute for the filed statement.

You can fill these 17 columns in a spreadsheet, export a UTF-8 CSV, then reopen the exported file and verify every field against the sheet and filing. In particular, check quoted labels containing commas and negative values after export. Start with this exact header; it deliberately contains no sample issuer or values:

```text
row_id,issuer,cik,fiscal_period_start,fiscal_period_end,metric_key,issuer_line_label,reported_value,unit,scale,gaap_basis,form,accession,filing_date,section_locator,source_url,checked_by
```

The latest 10-K may show the earlier year in its comparative column. Compare those prior-year amounts with the earlier original or amended 10-K. If a figure, definition, consolidation scope or presentation changed, add a separately identified comparative row and document the difference. A qualified analyst must choose and justify one comparable series; never count the original and revised row as two periods. Check all six selected numeric rows against their accession-specific statement or note, including fiscal duration, units, scale, negative signs and any continuing or discontinued-operations distinction.

Make a second private file, `filing-context.txt`, from actual Item 7 management discussion and relevant notes. Give each bounded passage an `evidence_id`, accession, form, section, paragraph or table locator, source URL, fiscal period and a label for management interpretation. Include a register showing the amendment and Item 4.02 check time in UTC, each relevant accession, affected periods, stated scope, reliance status and analyst disposition. Record an explicit `none found` result if the check found none. Numerical CSV rows alone cannot establish why a metric moved. The SEC's [guide to a 10-K](https://www.sec.gov/answers/reada10k.htm) explains the different roles of Item 7 and Item 8.

Set the memo's audience and display-rounding rule now. Have the responsible analyst approve the two input files and the upload scope. Public filings can be combined with private analysis notes, so check workspace permission, sharing and retention settings before attaching either file.

## 3. Inspect the inputs in ChatGPT

On an authorized ChatGPT web account where file attachment and Data Analysis are available, start a private conversation. Attach the approved `filing-facts.csv` and `filing-context.txt` using the attachment control available in that account. Confirm that both exact filenames appear before sending. Replace every named placeholder below with your checked CIK, accessions, fiscal periods and UTC check time.

```prompt
Using only the attached filing-facts.csv and filing-context.txt, inventory every row_id and evidence_id for CIK {CIK}, current accession {CURRENT_ACCESSION} ({CURRENT_PERIOD}) and prior accession {PRIOR_ACCESSION} ({PRIOR_PERIOD}). Check headers, annual durations, metric identities, GAAP basis, units/scales, signs, source locators, amendment/non-reliance register as of {AS_OF_UTC}, and any conflicting comparative prior-year row. Return a table of missing, inconsistent or unresolved inputs with their IDs. Do not calculate or draft the memo yet. Do not add facts from memory or imply that source URLs were opened by Python.
```

Compare the inventory with both local files. Correct an exception in the source files, have the analyst check it and attach the revised files. State which exact file versions now control in the conversation. ChatGPT's [Data Analysis documentation](https://help.openai.com/en/articles/8437071-data-analysis-with-chatgpt) says its Python environment cannot fetch EDGAR URLs; a citation or locator it proposes still needs a human to open it.

## 4. Calculate, then recalculate independently

Once the input inventory passes, send this in the same conversation. Replace `{ROUNDING_RULE}` with the pre-agreed display rule.

```prompt
Use only the approved rows in filing-facts.csv for {CURRENT_PERIOD} and {PRIOR_PERIOD}. If any controlling-statement or non-reliance issue remains, stop the affected metric. Show row IDs and same-unit unrounded values. For revenue, operating income and net income, compute current minus prior. Show a percentage change only when the prior value is positive and that percentage is meaningful; otherwise label it not meaningful. Compute each period operating margin as operating income divided by revenue times 100 only for valid comparable nonzero revenue, then current minus prior margin in percentage points. Apply {ROUNDING_RULE} only to display. Show calculation method and any Python code/output, plus exceptions. Do not draft an investment recommendation.
```

Inspect the generated method, code and output. For each of the three metrics, verify `current − prior` in the same unit. A percentage change is `((current − prior) / prior) × 100` only when the prior base is positive and the result is meaningful. For valid comparable nonzero revenue, operating margin is `(operating income / revenue) × 100` in each period; the new margin minus the old one is a **percentage-point** change. Keep unrounded math separate from display rounding.

Reconcile every output row ID to the approved CSV and controlling filing. Independently compute **every** displayed difference, eligible percentage, both margins and their movement with a calculator or workbook. Check every proposed filing and context locator by opening it yourself. A wrong year, sign or scale can produce convincing prose around a false result.

## 5. Draft and accept the memo

Only after the sources and arithmetic pass, replace `{AUDIENCE}` and the other placeholders and send the third prompt in the same conversation:

```prompt
For {AUDIENCE}, draft a short two-period analyst memo using only reconciled filing-facts.csv rows and checked filing-context.txt passages. Include source row IDs beside every figure, accession and Item 8/notes locators, current/prior values, same-unit differences, valid percentage changes or not-meaningful labels, both operating margins and percentage-point movement. Explain a driver only when a specific verified Item 7 or note evidence_id supports it, with management attribution where appropriate; otherwise say context is unavailable. List amendments, Item 4.02 reliance disposition, remaining exceptions and analysis as-of {AS_OF_UTC}. No forecast, valuation, advice or invented citation. Mark the draft PENDING HUMAN REVIEW.
```

Check each explanation against its actual Item 7 or note passage. Attribute management's interpretation to management. If the passage does not support the proposed driver, remove the explanation and mark context unavailable. Resolve any material missing row or context needed for the stated memo purpose before acceptance.

Copy or download the checked table and proposed memo into reader-owned files with versioned names. **Reopen the saved versions** and compare every figure, sentence, locator and footnote with the controlling filings. Search the same-CIK filing history again for relevant 10-K/A and Item 4.02 filings at final sign-off, record a new UTC as-of time and resolve anything newly filed. The named analyst records the accepted or held version, date, source-file versions and remaining exceptions. Share only a reopened, accepted memo with authorized recipients.

## If a check fails

Read a new 10-K/A for its actual scope and revise only affected facts or evidence. An Item 4.02 notice that puts a selected period in doubt keeps the comparison on HOLD until the replacement statements and comparable basis are established. If a scanned or complex PDF loses a value, use the original filing HTML or a controlled manual extract. Correct missing signs, periods, units or passages in the approved local files, then reattach the revised versions and rerun the affected steps. If an upload or output status is uncertain, inspect the existing conversation and account allowance before trying again.

OpenAI documents [file uploads and account-dependent limits](https://help.openai.com/en/articles/8555545-uploading-files-and-audio-to-chatgpt). Access varies by plan, selected model, region and workspace settings. Check the existing account's upload allowance and usage limits, and agree on any subscription or usage budget before starting; this web workflow assumes no particular plan or price. Confirm its data controls as well. Text extraction and generated calculations can fail even when a file uploads. This procedure is based on official documentation. BIG CHANGE has not selected an issuer, uploaded filings, run this analysis or accepted a memo.

## Sources & further reading

- [OpenAI, Data analysis with ChatGPT](https://help.openai.com/en/articles/8437071-data-analysis-with-chatgpt), checked 22 October 2026. Describes structured files, Python calculations, code review and extraction limits. It does not validate an issuer's filing or the reader's output.
- [OpenAI, Uploading files and audio to ChatGPT](https://help.openai.com/en/articles/8555545-uploading-files-and-audio-to-chatgpt), checked 22 October 2026. Describes web attachments and account-dependent availability; the reader must check their own workspace.
- [SEC, EDGAR Application Programming Interfaces](https://www.sec.gov/search-filings/edgar-application-programming-interfaces), checked 22 October 2026. Explains same-CIK submissions history and optional standardized XBRL facts. Original accession-specific filings control this recipe; company facts may omit custom or non-entity-wide facts, and calendar frames can differ from fiscal periods.
- [SEC, Search Filings](https://www.sec.gov/search-filings) and [How Do I Use EDGAR?](https://www.sec.gov/search-filings/edgar-search-assistance/how-do-i-use-edgar), checked 22 October 2026. Provide the public company search and explain narrowing by CIK, form and date. The actual issuer's accession documents must still be opened.
- [SEC, How to Read a 10-K](https://www.sec.gov/answers/reada10k.htm), checked 22 October 2026. Explains Item 7 discussion and Item 8 statements and notes. This older general guide does not establish any selected issuer's current figures; SEC receipt does not certify their accuracy.
- [SEC, Form 8-K, Item 4.02](https://www.sec.gov/files/form8-k.pdf), checked 22 October 2026. Defines the non-reliance disclosure to look for in the issuer's actual filing history.
- For the later step of transferring already checked workbook figures into a document, see BIG CHANGE's [workbook-to-memo figure check](https://bigchange.ai/blog/claude-excel-word-memo-figure-check). This guide starts earlier, with the original filings and their comparable financial lines.

## Sources

- [OpenAI Data analysis with ChatGPT](https://help.openai.com/en/articles/8437071-data-analysis-with-chatgpt) — Structured inputs, Python calculations, code review and no external Python requests; no tested issuer run.
- [OpenAI Uploading files and audio to ChatGPT](https://help.openai.com/en/articles/8555545-uploading-files-and-audio-to-chatgpt) — Attachment route and account-dependent availability.
- [SEC EDGAR Application Programming Interfaces](https://www.sec.gov/search-filings/edgar-application-programming-interfaces) — Same-CIK submissions and optional standardized XBRL second check.
- [SEC How to Read a 10-K](https://www.sec.gov/answers/reada10k.htm) — Item 7 and Item 8 roles; older general guide does not provide issuer facts.
- [SEC Form 8-K Item 4.02](https://www.sec.gov/files/form8-k.pdf) — Non-reliance disclosure requirements.
- [SEC Search Filings](https://www.sec.gov/search-filings) — Public Company Search entry point by name, ticker or CIK.
- [SEC How Do I Use EDGAR?](https://www.sec.gov/search-filings/edgar-search-assistance/how-do-i-use-edgar) — Official company, CIK, form and date search guidance.
