OCF source record

EquityCompensationExercise

objects/transactions/exercise/EquityCompensationExercise.mapping.md

Mapped17 executable edges24 source fields1 review question
Authored context

Notes / open questions

These notes are rendered from the mapping document and remain part of the review record.

Join-dependent. Resolve compensation_type by joining security_id to the related EquityCompensationIssuance; route options to OptionExerciseTransaction. RSU and SAR exercise targets are absent from the June 22 bundle.

RSUs route through a different source object. An RSU settlement is modeled by EquityCompensationRelease, which maps to Carta's RSU settlement objects; the Rsu variant is null only in this exercise mapping because Carta has no RSU exercise target.

Mapped fields. date, quantity, and resulting_security_ids map to the resolved exercise family; security_id anchors the parent transaction/grant. resulting_security_ids is computed onto certificate lineage because Carta's transaction-level result pointer is scalar.

Unmapped fields. id, comments, object_type, and consideration_text have no equivalent Carta field; Carta-only exercise metadata remains unpopulated.

Carta OptionExercise needs clarification. The pinned Carta bundle defines OptionExercise as a top-level object with request/workflow-oriented fields such as state (PENDING, COMPLETE, CANCELED), tax withholding, and money movement. This mapping instead routes the realized OCF exercise to the nested OptionExerciseTransaction (and related Exercise, grant, and certificate structures), which is why the inverse explorer currently labels OptionExercise as having no standalone OCF record. That may be correct if OptionExercise is a request/workflow object distinct from a completed exercise transaction, but the target schema and routing documentation also describe an option exercise as producing an OptionExercise record. Carta should clarify the lifecycle and intended data/API role of OptionExercise versus OptionExerciseTransaction/Exercise, and whether a completed OCF EquityCompensationExercise should populate OptionExercise in addition to the realized transaction structures.

Review threads

Questions about this mapping

Property-level review threads stay close to the evidence. Open a prefilled issue for a new decision or follow the mapping link back to the authored file.

1 open0 closed
OPENOptionExercise.state

Is Carta `OptionExercise` intended to represent an exercise request/workflow, including pending or canceled state, tax withholding, and money movement, distinct from the completed exercise transaction represented by `OptionExerciseTransaction`/`Exercise`? If so, should a completed OCF `EquityCompensationExercise` map only to the realized transaction structures, or should it also populate `OptionExercise`?

Asked by @johnscrudato→ OptionExercise.state · objects/transactions/exercise/EquityCompensationExercise.mapping.md:253
Current answer Open: confirm the lifecycle, API/data role, and intended mapping relationship between Carta `OptionExercise`, `OptionExerciseTransaction`, and `Exercise`.
Field evidence

Where the OCF fields go

VariantOCF fieldCarta destinationMapping kind
Optioncomments
No Carta target
unmappableIssue ↗
Optionconsideration_text
No Carta target
unmappableIssue ↗
OptiondaterenameIssue ↗
Optionid
No Carta target
unmappableIssue ↗
Optionobject_type
No Carta target
unmappableIssue ↗
OptionquantityrenameIssue ↗
Optionresulting_security_idscomputedIssue ↗
Optionsecurity_idrenameIssue ↗
Rsucomments
No Carta target
unmappableIssue ↗
Rsuconsideration_text
No Carta target
unmappableIssue ↗
Rsudate
No Carta target
unmappableIssue ↗
Rsuid
No Carta target
unmappableIssue ↗
Rsuobject_type
No Carta target
unmappableIssue ↗
Rsuquantity
No Carta target
unmappableIssue ↗
Rsuresulting_security_ids
No Carta target
unmappableIssue ↗
Rsusecurity_id
No Carta target
unmappableIssue ↗
Sarcomments
No Carta target
unmappableIssue ↗
Sarconsideration_text
No Carta target
unmappableIssue ↗
Sardate
No Carta target
unmappableIssue ↗
Sarid
No Carta target
unmappableIssue ↗
Sarobject_type
No Carta target
unmappableIssue ↗
Sarquantity
No Carta target
unmappableIssue ↗
Sarresulting_security_idscomputedIssue ↗
Sarsecurity_id
No Carta target
unmappableIssue ↗