Skip to content

mostlyright.weather.earnings.provenance

Earnings provenance + retention contract (Phase 27, 27-08).

The served earnings feed is a RESELLABLE data product, so it must self-document what it is (text / derived facts only) and where every fact came from. This module is the auditable provenance stamp + the retention-window contract that makes the feed defensible under the D-27.9 legal posture.

Provenance fields (per row / per fact). Every served fact carries:

  • source — the SHARED source identity ("earnings_call"): the live STT path and the hosted feed transcribe the SAME upstream public call audio, so they reconcile (D-27.2 / D-27.6 — the satellite noaa_goes precedent).
  • delivery — the informational delivery-channel lineage (live / hosted); NOT source identity.
  • as_of_time — the point-in-time knowledge cutoff (transcript availability, post-call — NEVER the call air time; the PIT leakage invariant D-27.11).
  • matched_surface_form — the actually-spoken string a fact was counted from (feeds schema.earnings_fact.v1.matched_surface_form), so a resale dispute over what the feed contains is auditable down to the spoken words (T-27-29).

Retention windows. The served ledgers retain TEXT / DERIVED FACTS only. Captured audio is a TRANSIENT ingest artifact: it is deleted post-STT and NEVER retained, NEVER served, NEVER a ledger column (D-27.9). AUDIO_RETENTION is the machine-checkable marker ("never") and RETENTION_WINDOWS tabulates every artifact class so the audio-transient posture self-documents.

This module carries NO audio — it is a pure metadata/contract stamp. It is deliberately isolated from the parity firewall (it never imports research / merge / live/_sources); it is a serving/audit concern only.

AUDIO_RETENTIONThe single machine-checkable audio-retention marker.
SOURCE_IDENTITYThe shared source identity (D-27.2).
RETENTION_WINDOWSRetention-window contract per artifact class.
EarningsProvenance(source, delivery, …)Auditable provenance stamp for a served earnings fact/transcript row.

mostlyright.weather.earnings.provenance.AUDIO_RETENTION : str = ‘never’

Section titled “mostlyright.weather.earnings.provenance.AUDIO_RETENTION : str = ‘never’”

The single machine-checkable audio-retention marker. Audio is a transient ingest artifact — deleted post-STT, never retained, never served (D-27.9).

class mostlyright.weather.earnings.provenance.EarningsProvenance(source, delivery, as_of_time, matched_surface_form)

Section titled “class mostlyright.weather.earnings.provenance.EarningsProvenance(source, delivery, as_of_time, matched_surface_form)”

Bases: object

Auditable provenance stamp for a served earnings fact/transcript row.

Carries the four provenance fields (source / delivery / as_of_time / matched_surface_form) plus the invariant audio_retention marker (always "never" — audio is transient and never served, D-27.9). delivery is validated against the {live, hosted} channel enum so a typo cannot silently mislabel lineage.

audio_retention is a read-only property that ALWAYS returns AUDIO_RETENTION — a served row can never claim to retain audio.

  • Parameters:
    • source (str)
    • delivery (str)
    • as_of_time (str)
    • matched_surface_form (str)

Return the provenance stamp as a serializable dict (audit surface).

audio is NEVER retained/served.

  • Type: The invariant audio-retention marker

mostlyright.weather.earnings.provenance.RETENTION_WINDOWS : dict[str, str] = {‘audio’: ‘never’, ‘facts’: ‘retained’, ‘transcripts’: ‘retained’}

Section titled “mostlyright.weather.earnings.provenance.RETENTION_WINDOWS : dict[str, str] = {‘audio’: ‘never’, ‘facts’: ‘retained’, ‘transcripts’: ‘retained’}”

Retention-window contract per artifact class. AUDIO is "never" (transient ingest artifact, purged post-STT — D-27.9); TEXT / DERIVED FACTS are retained for backtest replay. The concrete retained windows are the ledger’s job; this table documents that audio is categorically NOT retained while facts and transcripts ARE.

mostlyright.weather.earnings.provenance.SOURCE_IDENTITY : str = ‘earnings_call’

Section titled “mostlyright.weather.earnings.provenance.SOURCE_IDENTITY : str = ‘earnings_call’”

The shared source identity (D-27.2). Live STT + the hosted feed are the SAME upstream public call audio, so both stamp this — they reconcile.