OCF source record

EquityCompensationAcceptance

objects/transactions/acceptance/EquityCompensationAcceptance.mapping.md

Mapped10 executable edges15 source fields0 review questions
Authored context

Notes / open questions

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

Join-dependent (downstream), and acceptance is not a transaction. Carta has no acceptance *transaction*: its transaction set covers issuance / exercise / cancellation but not acceptance. Instead Carta folds "the stakeholder accepted" into the security object itself as stakeholderAcceptanceDate. One OCF EquityCompensationAcceptance therefore does not fan out to a Carta tx — it sets a date on the resolved family's security object. The record carries no discriminator, only security_id, so the family is fixed at issuance and an importer must resolve compensation_type from the joined EquityCompensationIssuance first (the two-pass requirement, §2.2 of docs/polymorphic-transaction-routing.md).

date is the only acceptance-specific field. It is the substantive payload — the date the holder accepted — and lands on the resolved family's security object via a per-variant target map: Option → OptionGrant.stakeholderAcceptanceDate, Rsu → RestrictedStockUnit.stakeholderAcceptanceDate. Both sides are calendar dates (OCF Date, Carta Iso8601CompleteCalendarDate), so there is no date-vs-datetime widening to flag.

Sar has no acceptance-date home (primary_targets: null). CSAR/SSAR have no Carta security object with a stakeholderAcceptanceDate (there is no SAR grant object to set the field on), so the acceptance date is unmappable here and date's Sar target is null; the SAR transaction-item identity is still retained through security_id.

security_id is the join key (route_by_property.lookup_by.key) and is also preserved on the resolved Carta aggregate: OptionTransactionItem.securityId plus OptionGrant.securityId for options, RsuTransactionItem.securityId plus RestrictedStockUnit.securityId for RSUs. The SAR path has no retained Carta target because the SAR transaction-item and security definitions were removed.

id, object_type, comments: OCF scaffolding. id is OCF's identifier for the acceptance transaction object; Carta has no acceptance object for it to become (ocf-internal). object_type is OCF's discriminator — neither enum member (TX_EQUITY_COMPENSATION_ACCEPTANCE nor the v2.0.0-deprecated alias TX_PLAN_SECURITY_ACCEPTANCE) corresponds to any Carta type (ocf-internal). comments is free-text OCF metadata with no slot on the Carta security (no-equivalent).

The when: sets partition CompensationType exactly: Option [OPTION, OPTION_NSO, OPTION_ISO], Rsu [RSU], Sar [CSAR, SSAR].

Field evidence

Where the OCF fields go

VariantOCF fieldCarta destinationMapping kind
Optioncomments
No Carta target
unmappableIssue ↗
OptiondaterenameIssue ↗
Optionid
No Carta target
unmappableIssue ↗
Optionobject_type
No Carta target
unmappableIssue ↗
Optionsecurity_idrenameIssue ↗
Rsucomments
No Carta target
unmappableIssue ↗
RsudaterenameIssue ↗
Rsuid
No Carta target
unmappableIssue ↗
Rsuobject_type
No Carta target
unmappableIssue ↗
Rsusecurity_idrenameIssue ↗
Sarcomments
No Carta target
unmappableIssue ↗
Sardate
No Carta target
unmappableIssue ↗
Sarid
No Carta target
unmappableIssue ↗
Sarobject_type
No Carta target
unmappableIssue ↗
Sarsecurity_id
No Carta target
unmappableIssue ↗