mostlyright.weather.earnings.provenance
mostlyright.weather.earnings.provenance
Section titled “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 satellitenoaa_goesprecedent).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 (feedsschema.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.
Module Attributes
Section titled “Module Attributes”AUDIO_RETENTION | The single machine-checkable audio-retention marker. |
|---|---|
SOURCE_IDENTITY | The shared source identity (D-27.2). |
RETENTION_WINDOWS | Retention-window contract per artifact class. |
Classes
Section titled “Classes”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.
as_dict()
Section titled “as_dict()”Return the provenance stamp as a serializable dict (audit surface).
as_of_time : str
Section titled “as_of_time : str”property audio_retention : str
Section titled “property audio_retention : str”audio is NEVER retained/served.
- Type: The invariant audio-retention marker
delivery : str
Section titled “delivery : str”matched_surface_form : str
Section titled “matched_surface_form : str”source : str
Section titled “source : str”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.