Skip to content

Support dated instrument identity and causal adjusted-history preparation #119

Closed

Description

@stefan-jansen

Static ticker lists and retrospective latest-basis prices cannot establish historical identity or causal inputs for renamed, reused or delisted assets. Add a bounded table adapter and as-of preparation, not an asset database or runtime history engine.

Public contract and ownership

assets.InstrumentRegistry.from_frame/resolve/lifetimes and adjustments.prepare_adjusted_history(as_of=...) over ordinary caller-supplied frames. Identity intervals are half-open, stable asset IDs distinct from display symbols; explicit venue/date mappings are required for ambiguous names.

Data owns preparation/acquisition facts only. Supplied tables work independently of other libraries; shared types reuse Specs. No other owner's source changes are part of this issue.

Acceptance

  • Rename while holding retains one ID; ticker reuse and two venues do not merge entities. Include listing/delisting facts and historical membership; missing data is not delisting or zero return.
  • Select source revisions available by the cutoff and adjustment events effective by it; ex-date-close factors cannot be used before that close is available.
  • Appending future actions, revised data, symbol changes or membership cannot alter earlier causal outputs. Retrospective latest-basis route remains explicit and may change by design.
  • Independent price-sensitive decision example uses known-at history and pre-entry warmup; compare intermediate keys, selected event revisions and share/volume basis.
  • Unknown availability blocks only causal operation needing it; overlapping/conflicting identity intervals fail atomically. Preserve timestamp/asset and custom FeedSpec mappings.
  • No Data ZiplineHistoryAdapter, BarData, Pipeline or broker. A native offline old-to-new history/universe recipe and installed-consumer contracts cover Data's producer side.

Run focused public API/regression tests first, then full final-revision native/source,ResourceWarning,coverage,type,docs,wheel/sdist,security and applicable hosted platform gates. Retain failing-base/passing-fix evidence for any bug; new capability tests use independent expected values. Include implementation,tests and executable migration docs in the same bounded PR. AI assistance must be disclosed and maintainer-reviewed.

Dependencies

Action input/factor contract; consumers may develop from captured valid tables independently.

Premises

Input: dated-inputs

Question Answer Kind
record One dated identity interval or observation/event revision identified by stable asset and revision. definitional
absent-record Absence means missing source coverage,not automatically zero,no-trade,holiday or delisting. definitional
ordering-spacing Use declared timestamp/session semantics and grid/window unit; preserve observed keys rather than compressing gaps. definitional
entity-identity Stable asset identity is separate from source symbol,sid and display name; explicit mappings are required. definitional
known-at Only revisions available at as_of are eligible; effective time separately determines identity/event applicability. definitional
institution Source/exchange facts and selected authoritative schedule govern; this issue does not simulate trading. definitional

Claims

Id Claim How it could be false
dated-inputs-workflow The declared public producer and conversion workflow retains the contract and fails atomically on invalid input. A real produced input loses keys,precision,source units,availability,missingness or revision identity; a reference-compatible route changes values/shapes/endpoints; or an error publishes partial output.

Closes: dated-inputs.record, dated-inputs.absent-record, dated-inputs.ordering-spacing, dated-inputs.entity-identity, dated-inputs.known-at, dated-inputs.institution, dated-inputs-workflow
Advances: none


Plan reference: accepted Data successor implementation plan, Issue 3 in milestone Successor migration - Data inputs and provenance. Harmonized ownership: Data prepares inputs; Engineer owns features,Backtest execution,Diagnostic analytics. No publication/release authorization.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions