@@ -585,3 +585,65 @@ authentication, lifecycle/PIT, financial admission and trading remain false.
585585Existing period and cash operations are unchanged; old providers reject this
586586new schema. App/Lark interaction, source-consumer adoption and financial utility
587587are independent remaining qualifications.
588+
589+ # Stock instant change (extension 0.8.12)
590+
591+ ` finance_stock_change_input_v1 ` explicitly compares stocks. The root contains
592+ exactly ` schema_version ` , ` later ` , ` earlier ` , and ` compatibility ` . Each operand
593+ contains ` source_digest ` , original nullable ` context ` , nullable ` point ` , the
594+ existing nullable eight-field ` statement_basis ` , ` aggregation_kind ` , and
595+ ` accuracy ` . The shared temporal vocabulary is unchanged; only ` stock ` qualifies.
596+
597+ A point has exactly ` context_source_digest ` , ` evidence_ref ` , ` role ` , and
598+ ` instant ` . References/digests retain the existing period owner's bounds.
599+ ` instant ` is null or an explicit dateTime; the economic role is an exact token.
600+ The original context must encode an instant with a known timezone, and its
601+ normalized boundary must equal the declared point. XBRL date-only end-of-day
602+ conversion and offsets reuse ` assess_period_encoding ` ; column labels cannot
603+ supply absent original context or timezone. The earlier point must be strictly
604+ before the later one; equal or reversed instants refuse a qualified change.
605+ These are balance instants, not new first-public or observation clocks.
606+
607+ Subjects, declared metrics and currency/scale units must match. Distinct column
608+ scopes can belong to one source/filing/version. Other source/version joins need
609+ explicit ` compatibility ` with exactly ` evidence_ref ` , ` later ` , and ` earlier ` ;
610+ each pin contains the exact current ` source_digest ` , ` filing_ref ` , ` version_ref ` ,
611+ and ` scope_ref ` . This reuses the cumulative-flow version-compatibility owner.
612+ Neither matching names nor matching numbers proves scope comparability or
613+ completeness. A producer owns those meanings, withdrawals and conflicts.
614+
615+ The v1 requires producer-declared exact accuracy for both amounts. Finite or
616+ missing precision remains visible and holds the qualified change. There is no
617+ implicit rounding policy, token-quantity unit conversion or inferred cash
618+ identity. Unknown unit does not become USD, and a composite metric does not
619+ become pure cash. Different metrics/subjects/units and nonstocks suppress even
620+ the diagnostic candidate.
621+
622+ ` finance_stock_change_assessment_v1 ` retains original operands, point and
623+ accuracy assessments, current compatibility pins, canonical input digest and
624+ sorted reasons. ` candidate_lexical_difference ` is diagnostic bounded Decimal
625+ subtraction when the declared stock identities and amounts are known.
626+ ` stock_change ` and ` change_window ` are emitted only when
627+ ` change_evidence_eligible ` is true. A window records two instants, not a duration
628+ flow. ` cash_flow_derived ` and ` causes_of_change_assessed ` are always false:
629+ stock change cannot establish acquisitions, financing, spending or its causes.
630+ Source authentication, lifecycle/PIT, financial admission and trading also
631+ remain false. Upstream source admission remains independent.
632+
633+ ``` sh
634+ loopx-finance-value-discovery assess-stock-change \
635+ --input-json packages/loopx-finance-value-discovery/examples/stock-change-v1.json
636+ ```
637+
638+ The same schema selects this operation on the installed provider's stdin
639+ runtime. Missing evidence is a successful assessment with a held result;
640+ malformed closed shapes use the existing error packet/nonzero exit. Optional
641+ provider lifecycle remains unchanged. Disable through `loopx extension disable
642+ loopx-finance-value-discovery --execute`; rollback uses the prior provider and
643+ its original input versions. Old providers reject the new schema, while old
644+ cash, duration comparison v1/v2, and flow difference v1 inputs keep their
645+ original behavior and replay clocks. No new catalog or Core authority exists.
646+
647+ This stage delivers CLI/runtime computation. Its App/Lark interaction and the
648+ source provider's production consumer are still companion qualifications;
649+ installation and this calculation do not establish financial utility.
0 commit comments