Quick Summary

dartlab API stability tiers and change policy

API Stability Policy

dartlab is currently stable for DART core. This document defines API stability tiers and compatibility policies for changes.

Tier Classification

Tier 1: Stable

Changes include a deprecation period with a migration guide.

APIDescription
dartlab.Company(code)Company object creation facade
Company.sectionsCanonical company map (topic × period Polars DataFrame)
Company.show()Topic payload query (source-aware)
Company.trace()Source provenance query
Company.diff()Cross-period text change detection
Company.topicsAvailable topic list
Company.docsDocs source namespace
Company.financeFinancial statement time-series and statement namespace
Company.reportStructured disclosure namespace (28 API types)
dartlab.search()Company search
dartlab.listing()Full listed company directory
Company.IS/BS/CFAuthoritative statement shortcuts
Company.CISComprehensive income statement shortcut
Company.indexCanonical topic × period board DataFrame
Company.filings()Filing document list
Company.profileMerged canonical company namespace
dartlab CLI entrypointPublic CLI command entry point
dartlab.Company("AAPL")EDGAR Company facade (US stocks)
engines.edgar.docsEDGAR 10-K/10-Q/20-F sections horizontalization
engines.edgar.docs.retrievalBlocksEDGAR block-level retrieval for LLM
engines.edgar.docs.contextSlicesEDGAR context slicing for LLM windows
engines.edgar.financeSEC XBRL financial statements (BS/IS/CF)
engines.edgar.profileEDGAR docs + finance merge layer
dartlab.valuation()Multi-method valuation (DCF, DDM, relative) — KRW/USD auto-detect
dartlab.forecast()Revenue forecast (time-series, consensus, macro, ROIC) — KRW/USD auto-detect
dartlab.simulation()Scenario simulation with US/KR macro presets

Tier 2: Beta

May change after a warning. Recorded in CHANGELOG.

APIDescription
engines.edgar.finance.SCEStatement of Changes in Equity (BS delta + CF)
engines.edgar.finance.explore()XBRL Fact Explorer (tag-level history)
engines.edgar.finance.listTags()XBRL tag inventory
engines.edgar.docs.notes()XBRL TextBlock note extraction
engines.edgar.docs.freq()Topic × period distribution matrix
engines.edgar.docs.coverage()Topic coverage summary
Company.insightsInsight grading (7 areas)
Company.insights.distressDistress prediction scorecard (4-axis, credit grade, cash runway)
Company.rankMarket size ranking
Company.docs.retrievalBlocksOriginal block retrieval
Company.docs.contextSlicesLLM/context slice view
Company.ask()LLM-based analysis
dartlab subcommands/optionsask, status, setup, ai, excel command UX
Server API /api/*Web server endpoints
engines.ai.*AI/LLM engines
Company.SCEStatement of changes in equity (DART)
Company.sceMatrixSCE matrix view (DART)
Company.timeseriesQuarterly standalone time-series
Company.annualAnnual time-series
Company.ratiosFinancial ratio calculation
Company.ratioSeriesRatio time-series
Company.network()Affiliate network graph
Company.governance()Corporate governance data
Company.workforce()Workforce data
Company.capital()Capital structure
Company.debt()Debt details
Company.table()Inline table extraction
dartlab.chartChart tool module
dartlab.tableTable tool module
dartlab.textText tool module
MCP serverMCP protocol server (60 tools, stdio)
dartlab mcpMCP CLI command

Tier 3: Experimental

Breaking changes are allowed. Not recommended for production use.

APIDescription
export.*Excel export
engines.ai.tools.*LLM tool calling

Tier 4: Alpha

Early-stage features. Functional but incomplete — expect rough edges and missing structure.

FeatureDescription
Desktop App (Windows .exe)Standalone desktop application — functional but incomplete
Sections ViewerHorizontalized disclosure viewer — core concept works, but structural framework not yet established

Deprecation Policy

TierNoticeRemoval
Tier 12 minor versions aheadDeprecated warning → removed in next minor
Tier 21 minor version aheadChanged after CHANGELOG entry
Tier 3ImmediateCHANGELOG entry only
Tier 4NoneMay change or disappear without notice

Deprecation warning example:

import warnings
warnings.warn(
    "Company.oldMethod() will be removed in v0.5.0. "
    "Use Company.newMethod() instead.",
    DeprecationWarning,
    stacklevel=2,
)

Stability Criteria

DART core stable criteria:

  • CI test coverage 80%+ (core engines)
  • API Tier 1 tests 100% passing
  • sections raw residual 0 maintained (representative company set)
  • BS identity check 95%+ passing
  • No Tier 1 breaking changes for 3 months
  • Stable PyPI download growth trend
  • External user feedback converged (2+ cases)

Version Policy

  • semver compliant: major = breaking, minor = feature, patch = bugfix
  • DART core stable scope prioritizes compatibility within minor versions
  • EDGAR and some AI features may change faster per their tier policy
  • Company.profile is a merge layer on top of docs spine, used internally. c.sections and c.show() are the official consumption paths

CLI Compatibility Rules

  • Top-level dartlab entrypoint is treated as Tier 1.
  • Public subcommand and major option changes require at least 1 minor version of deprecated warning.
  • Exit codes are treated as contracts: 0 success, 1 runtime error, 2 usage error, 130 user interrupt.
  • Deprecated aliases may be hidden from help but must remain executable until removal.

EDGAR Topic Naming Convention

EDGAR topics use {formType}::{itemId} format:

  • 10-K::item1Business — Business description
  • 10-K::item1ARiskFactors — Risk factors
  • 10-K::item7Mdna — Management Discussion & Analysis

Short aliases also work: business, risk, mdna, governance

DART / EDGAR Namespace Differences

EDGAR now has accessor separation (_DocsAccessor, _FinanceAccessor, _ProfileAccessor), retrievalBlocks, contextSlices, and server API support — matching the DART architecture for core functionality.

DART docs namespace includes additional sections analysis methods (coverage, freq, semanticRegistry, structureRegistry, etc.) not yet available for EDGAR. These are Tier 2 (Beta).

DART has a report namespace (28 structured disclosure API types) that does not exist in EDGAR — this reflects the structural difference between DART and SEC filing systems.