Spin-Off Price Adjustment
Separate Parent Price from Distributed Value
Install and import
npm install fintech-algorithmsimport { calculate } from "fintech-algorithms/corporate-actions-and-security-master-data/complex-distributions/spin-off-price-adjustment";Signature
calculate(input)Worked example
executed Captured by running this function on the input its own test provides. Real output of real code — but not asserted against a published figure.
Input
{
"asOf": "2026-06-02T20:00:00Z",
"revisions": [
{
"eventId": "SYNTH-SPIN-2026",
"revisionId": "SYNTH-SPIN-2026-R1",
"revisionSequence": 1,
"availableAt": "2026-05-21T12:00:00Z",
"status": "confirmed",
"quoteCurrency": "USD",
"recordAt": "2026-05-20T20:00:00Z",
"whenIssuedStartAt": "2026-05-27T13:30:00Z",
"distributionAt": "2026-06-01T12:00:00Z",
"parentExAt": "2026-06-01T13:30:00Z",
"childRegularWayAt": "2026-06-01T13:30:00Z",
"unavailableChildPricePolicy": "pending",
"parentCumObservation": {
"price": 120,
"currency": "USD",
"priceType": "regular_way_cum_distribution",
"observedAt": "2026-05-29T20:00:00Z",
"availableAt": "2026-05-29T20:00:05Z",
"sourceId": "SYNTH-PARENT-CLOSE"
},
"parentExObservation": {
"price": 108,
"currency": "USD",
"priceType": "regular_way_ex_distribution",
"observedAt": "2026-06-01T20:00:00Z",
"availableAt": "2026-06-01T20:00:05Z",
"sourceId": "SYNTH-PARENT-EX-CLOSE"
}
}
]
}Call
calculate(input)Returns
object with 16 fields: eventId, revisionId, availableAt, status, quoteCurrency, parentCumPrice, distributedValuePerParent, theoreticalParentExReference, …
{
"eventId": "SYNTH-SPIN-2026",
"revisionId": "SYNTH-SPIN-2026-R1",
"availableAt": "2026-05-21T12:00:00Z",
"status": "ready",
"quoteCurrency": "USD",
"parentCumPrice": 120,
"distributedValuePerParent": 13.5,
"theoreticalParentExReference": 106.5,
"backwardAdjustmentFactor": 0.8875,
"factorDirection": "multiply_pre_event_parent_prices",
"factorAnchor": "post_event_parent_only_basis",
"rounding": "shortest_decimal_half_up_6_on_output_only",
"components": [
{
"securityId": "SYNTH-CHILD-A",
"entitlementRatio": 0.25,
"priceType": "when_issued",
"priceQuote": 44,
"valuePerParent": 11,
"holderEntitlement": {
"exactChildShares": 5.75,
"wholeChildShares": 5,
"fractionalChildShare": 0.75,
"fractionalReferenceValue": 33,
"actualCashInLieuKnown": false
}
},
{
"securityId": "SYNTH-CHILD-B",
"entitlementRatio": 0.1,
"priceType": "regular_way",
"priceQuote": 25,
"valuePerParent": 2.5,
"holderEntitlement": {
"exactChildShares": 2.3,
"wholeChildShares": 2,
"fractionalChildShare": 0.3,
"fractionalReferenceValue": 7.5,
"actualCashInLieuKnown": false
}
}
],
"economicValueAllocation": {
"parentWeight": 0.8875,
"children": [
{
"securityId": "SYNTH-CHILD-A",
"weight": 0.091667
},
{
"securityId": "SYNTH-CHILD-B",
"weight": 0.020833
}
]
}
}Showing 14 of 16 fields.
Other exports
This module also exports
roundHalfUp6. Every module additionally exports run as an alias of its
primary function, and a meta object carrying its catalog id, domain, family,
shape and article URL.
Diagrams
Calculation flow
Evidence-to-output calculation flow
flowchart LR
A["Select revision at asOf"] --> B["Validate parent cum observation"]
B --> C["Value each child and FX"]
C --> D{"All references available?"}
D -->|No| E["Pending or reject"]
D -->|Yes| F["Sum distributed value"]
F --> G["Parent-only factor"]
F --> H{"Parent ex observation?"}
H -->|Yes| I["Gross and net combined return"]
H -->|No| J["Return bridge unavailable"]
Spin-off event and market-line lifecycle
stateDiagram-v2
[*] --> Announced
Announced --> RecordSet: record boundary
RecordSet --> WhenIssued: conditional child trading
WhenIssued --> Distributed: legal distribution
Distributed --> ParentEx: parent without entitlement
ParentEx --> ChildRegularWay: issued child trades normally
WhenIssued --> PendingValue: price unavailable
PendingValue --> ChildRegularWay: causal observation arrives
Announced --> Cancelled: confirmed cancellation
How it works
This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.
References
- S&P DJI Equity Indices Policies & Practices
- FTSE Russell Corporate Actions and Events Guide
- GE Board approves GE Vernova spin-off
- GE Vernova Information Statement, SEC exhibit 99.1
- GE Form 8-K reporting completion
- Evidence decision