Skip to content

TenK.business returns None when filing uses combined "Items 1 and 2" heading #710

Description

@FlorinAndrei

Issue Type

  • Data Quality Issue (incorrect financial values, missing data)
  • XBRL Parsing Issue (statement rendering, concept mapping)
  • Filing Access Issue (download failures, attachment problems)
  • Performance Issue (slow operations, memory problems)
  • Compatibility Issue (platform/dependency conflicts)
  • Documentation Issue (unclear instructions, missing examples)

Environment

EdgarTools Version: 5.23.3
Python Version: 3.13.12
Operating System: Ubuntu 24.04

Bug Description

What you expected to happen:
I expected to extract Item 1 from the 10-K of VNOM.

What actually happened:

The issue: when a 10-K uses a combined heading like "Items 1 and 2. Business and Properties" (instead of separate Item 1 and Item 2 sections), TenK.business returns None. The new parser correctly identifies the section as part_i_items_1_and_2._business_and_properties, but the business property (which maps to self['Item 1']) doesn't resolve it. The legacy fallback also fails.

Concrete example: VNOM (Viper Energy), accession 0002074176-26-000010. The 10-K has "ITEMS 1 and 2. BUSINESS AND PROPERTIES" at the Part I level. filing.obj().sections shows part_i_items_1_and_2._business_and_properties with content, but filing.obj().business returns None.

Error message (if any):

2026-03-16 06:50:34,824 INFO httpxthrottlecache.ratelimiter: Making HTTP Request <Request('GET', 'https://www.sec.gov/Archives/edgar/data/2074176/000207417626000010/vnom-20251231.htm')>
2026-03-16 06:50:34,841 INFO httpx: HTTP Request: GET https://www.sec.gov/Archives/edgar/data/2074176/000207417626000010/vnom-20251231.htm "HTTP/1.1 200 OK"
2026-03-16 06:50:36,469 INFO edgar.documents.extractors.toc_section_detector: TOC detection found 28 sections
2026-03-16 06:50:36,470 INFO edgar.documents.extractors.hybrid_section_detector: TOC detection successful: 28 sections found
2026-03-16 06:50:36,470 WARNING edgar.core: TenK falling back to legacy parser for 'Item 1' (filing: 0002074176-26-000010). New parser sections available: ['part_ii_item_9', 'part_ii_item_9a', 'part_iii_item_10', 'part_iii_item_11', 'part_iii_item_12', 'part_iii_item_13', 'part_ii_item_9b', 'part_ii_item_9c', 'part_iv_item_15', 'part_iv_item_16', 'part_i_items_1_and_2._business_and_properties', 'part_iv_items_1_and_2._business_and_properties', 'part_i_item_1a', 'part_ii_item_1a', 'part_iv_item_1a', 'part_i_item_1b', 'part_i_item_1c', 'part_iv_item_1c', 'part_i_item_3', 'part_ii_item_5', 'part_iv_item_5', 'part_ii_item_6', 'part_ii_item_7', 'part_iv_item_7', 'part_ii_item_7a', 'part_iv_item_7a', 'part_ii_item_8', 'part_iv_item_8']. This fallback will be removed in v6.0.

Reproduction

Company/Ticker: VNOM
Time Period: most recent
Relevant Forms: 10-K

Minimal code to reproduce:

from edgar import Company, set_identity

set_identity("Your Name your.email@example.com")
company = Company("VNOM")
filing = company.latest("10-K")
tenk = filing.obj()
print(tenk.business)  # None
print([s for s in str(tenk.sections) if 'items_1' in str(s)])  # part_i_items_1_and_2._business_and_properties exists

Additional Context

Add any other context about the problem here. Screenshots, related issues, etc.


This issue will be handled using EdgarTools' systematic issue resolution workflow. A reproduction test will be created to verify the fix.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions