Skyocean Ontology
type: Ontology
description: A specialized vocabulary for agricultural commodities trading in decentralized knowledge graphs
creator: Skyocean Team
issued: 2023-10-01
modified: 2026-05-04
version info: 2.1.3
comment: The Skyocean Ontology is designed to facilitate global trade of agricultural commodities and traceable humanitarian donation programs with an emphasis on transparency, traceability, and efficient financing.

Trade
type: Class
comment: The core class representing a complete trade transaction between parties in the Skyocean ecosystem.
term status: stable

CommodityTrade
type: Class
comment: A specialized trade of agricultural commodities
subclass of: Trade
term status: stable

Commodity
type: Class
comment: Represents physical agricultural goods being traded in the Skyocean ecosystem
term status: stable

TradeParty
type: Class
comment: Entities involved in a trade transaction (buyer, seller, consignee, etc.)
term status: stable

Document
type: Class
comment: Trade-related documentation including their verification status
term status: stable

BlockchainTransaction
type: Class
comment: Records of trade events recorded on the blockchain
term status: stable

FinancingRecord
type: Class
comment: Details of trade financing arrangements and token positions
term status: stable

TradePrivateData
type: Class
comment: Private data related to a trade transaction
term status: stable

PaymentDetails
type: Class
comment: Details of payment and financing arrangements for a trade
term status: stable

tradeStatus
type: Property
comment: Current status of the trade transaction
domain: Trade
range: string
term status: stable

financingStatus
type: Property
comment: Current status of trade financing
domain: Trade
range: string
term status: stable

documentStatus
type: Property
comment: Status of a trade document
domain: Document
range: string
term status: stable

verificationStatus
type: Property
comment: Verification status of a document
domain: Document
range: string
term status: stable

role
type: Property
comment: Role of an entity in the trade
domain: TradeParty
range: string
term status: stable

walletAddress
type: Property
comment: Blockchain wallet address
domain: TradeParty
range: string
term status: stable

financierProfitRate
type: Property
comment: Profit rate for the financier
domain: FinancingRecord
range: decimal
term status: stable

commodity
type: Property
comment: The commodity being traded
domain: Trade
range: Commodity
term status: stable

requiredDocumentTypes
type: Property
comment: Types of documents required for the trade
domain: Trade
term status: stable

documentStatuses
type: Property
comment: Status information for required documents
domain: Trade
term status: stable

blockchainStatus
type: Property
comment: Status of the trade on the blockchain
domain: Trade
range: string
term status: stable

blockchainTransactionId
type: Property
comment: Transaction ID on the blockchain
domain: Trade
range: string
term status: stable

transactionTimeline
type: Property
comment: Timeline information for the transaction
domain: Trade
term status: stable

referenceId
type: Property
comment: Reference to the public section URI
domain: TradePrivateData
range: anyURI
term status: stable

consignee
type: Property
comment: Consignee information
domain: TradePrivateData
range: TradeParty
term status: stable

notifyParty
type: Property
comment: Party to be notified
domain: TradePrivateData
range: TradeParty
term status: stable

payment
type: Property
comment: Payment and financing details
domain: TradePrivateData
range: PaymentDetails
term status: stable

documents
type: Property
comment: Detailed document information
domain: TradePrivateData
range: Document
term status: stable

accessPermissions
type: Property
comment: Access control permissions
domain: TradePrivateData
term status: stable

grade
type: Property
comment: Quality grade of the commodity
domain: Commodity
range: string
term status: stable

certifications
type: Property
comment: List of certifications or standards the commodity meets
domain: Commodity
term status: stable

specifications
type: Property
comment: Technical specifications of the commodity
domain: Commodity
term status: stable

packaging
type: Property
comment: Description of how the commodity is packaged
domain: Commodity
range: string
term status: stable

detailedSpecifications
type: Property
comment: Detailed technical specifications with thresholds
domain: Commodity
term status: stable

productionDetails
type: Property
comment: Production method, origin, and other sensitive details
domain: Commodity
term status: stable

paymentMethod
type: Property
comment: Method of payment (e.g., 'CAD' for Cash Against Documents)
domain: PaymentDetails
range: string
term status: stable

paymentTerms
type: Property
comment: Terms of payment
domain: PaymentDetails
range: string
term status: stable

financingRequired
type: Property
comment: Whether financing is required for the trade
domain: PaymentDetails
range: boolean
term status: stable

financingAmount
type: Property
comment: Amount of financing required
domain: PaymentDetails
range: MonetaryAmount
term status: stable

InstitutionalAttestation
type: Class
comment: An independent observation by an operational institution (port authority, customs authority, inspection agency, carrier, condition monitor, payment rail, financial institution, or human verifier) about a trade event. Each attestation is recorded as a Knowledge Asset and feeds the convergence record for its trade.
term status: testing

PaymentSource
type: Class
comment: A record of an external signal confirming that payment has occurred, decoupled from the underlying rail. The same class represents signals from mobile money, national payment switches, regional settlement systems, SWIFT, letters of credit, cash-against-documents arrangements, on-chain escrow, and human-attested confirmations. Subclass of InstitutionalAttestation when the source is an institution.
subclass of: InstitutionalAttestation
term status: testing

ConvergenceRecord
type: Class
comment: The aggregate cross-validated state of a trade, constructed from the convergence of independent institutional attestations. Used to compute verification strength without a single central validator.
term status: testing

attestorType
type: Property
comment: Category of institution making the attestation. Values: PortAuthority, CustomsAuthority, InspectionAgency, Carrier, ConditionMonitor, PaymentRail, FinancialInstitution, Human.
domain: InstitutionalAttestation
range: string
term status: testing

attestorIdentity
type: Property
comment: Name or identifier of the specific institution (e.g., 'Port of Tema', 'Ghana Revenue Authority', 'SGS', 'MTN MoMo').
domain: InstitutionalAttestation
range: string
term status: testing

attestationType
type: Property
comment: Nature of the observation. Values: VesselCall, CargoHandling, CustomsClearance, QualityInspection, ConditionReading, Departure, PaymentConfirmation, IncidentReport, ClaimDecision, ComplianceVerification.
domain: InstitutionalAttestation
range: string
term status: testing

attestationTimestamp
type: Property
comment: Time at which the attesting institution recorded the event.
domain: InstitutionalAttestation
range: dateTime
term status: testing

attestationSignature
type: Property
comment: Cryptographic signature or integrity hash of the attestation payload, used for audit and non-repudiation.
domain: InstitutionalAttestation
range: string
term status: testing

tradeRef
type: Property
comment: Reference to the Trade KA this attestation contributes to.
domain: InstitutionalAttestation
range: anyURI
term status: testing

sourceType
type: Property
comment: Classification of the payment signal source. Values: MobileMoney, NationalSwitch, RegionalSettlement, SWIFT, LetterOfCredit, CashAgainstDocuments, OnChainEscrow, HumanAttested.
domain: PaymentSource
range: string
term status: testing

sourceProvider
type: Property
comment: Specific provider or network that emitted the confirmation (e.g., 'MTN MoMo', 'GhIPSS', 'PAPSS', 'Deutsche Bank AG').
domain: PaymentSource
range: string
term status: testing

confirmationReference
type: Property
comment: External reference or transaction ID from the payment source (e.g., MoMo txn ID, SWIFT MT103 reference, LC number).
domain: PaymentSource
range: string
term status: testing

confirmedAmount
type: Property
comment: Monetary amount the source confirms as settled.
domain: PaymentSource
range: MonetaryAmount
term status: testing

attestationCount
type: Property
comment: Total number of institutional attestations linked to the trade.
domain: ConvergenceRecord
range: integer
term status: testing

independentAttestorCount
type: Property
comment: Number of distinct attesting institutions, used as a proxy for independence of the convergence record.
domain: ConvergenceRecord
range: integer
term status: testing

verificationStrength
type: Property
comment: Computed score (0.0–1.0) summarising how strongly the trade is corroborated by independent institutional attestations.
domain: ConvergenceRecord
range: decimal
term status: testing

consensusStatus
type: Property
comment: Qualitative label derived from verificationStrength. Values: Insufficient, Partial, Strong, Full.
domain: ConvergenceRecord
range: string
term status: testing

InsurancePolicy
type: Class
comment: A cargo or marine insurance policy bound to one or more trades. Subclass of Document — the policy is itself a tradeable instrument with status, parties, and references — but carries dedicated insurance-specific properties.
subclass of: Document
term status: testing

CargoIncident
type: Class
comment: An event affecting cargo that may trigger an insurance claim — damage, loss, theft, contamination, delay, casualty. The CargoIncident KA captures what happened, where, when, and to what extent, attested by an independent surveyor and/or the responsible custodian (port, carrier).
term status: testing

InsuranceClaim
type: Class
comment: A formal claim filed against an InsurancePolicy in respect of a CargoIncident. Carries claim status, claimed amount, surveyor's loss assessment, insurer's decision, and payout details.
term status: testing

policyNumber
type: Property
comment: Insurer-issued policy reference (private layer — typically PII-adjacent).
domain: InsurancePolicy
range: string
term status: testing

insurer
type: Property
comment: Insurer or syndicate underwriting the policy (e.g., 'Lloyd's of London correspondent', 'Munich Re').
domain: InsurancePolicy
range: TradeParty
term status: testing

coverageType
type: Property
comment: Type of insurance coverage. Values: Cargo, WarRisk, AllRisk, NamedPerils, Strike, ContingencyAndDelay.
domain: InsurancePolicy
range: string
term status: testing

sumInsured
type: Property
comment: Maximum insured value under the policy.
domain: InsurancePolicy
range: MonetaryAmount
term status: testing

deductible
type: Property
comment: Self-insured retention before the policy responds.
domain: InsurancePolicy
range: MonetaryAmount
term status: testing

effectiveDate
type: Property
comment: Policy inception date.
domain: InsurancePolicy
range: date
term status: testing

expiryDate
type: Property
comment: Policy expiry date.
domain: InsurancePolicy
range: date
term status: testing

incidentType
type: Property
comment: Nature of the incident. Values: Damage, Loss, Theft, Contamination, Delay, Casualty, GeneralAverage, Quarantine.
domain: CargoIncident
range: string
term status: testing

incidentLocation
type: Property
comment: Where the incident occurred (UN/LOCODE port code, lat/long for in-transit, or place name).
domain: CargoIncident
range: string
term status: testing

incidentDate
type: Property
comment: Date and time the incident was reported or discovered.
domain: CargoIncident
range: dateTime
term status: testing

incidentDescription
type: Property
comment: Short descriptor of what happened (the private layer carries the full surveyor report text).
domain: CargoIncident
range: string
term status: testing

affectedQuantity
type: Property
comment: Quantity of cargo affected (with unit code).
domain: CargoIncident
range: QuantitativeValue
term status: testing

lossExtent
type: Property
comment: Severity of loss. Values: Total, Partial, Constructive, Salvage, Marginal.
domain: CargoIncident
range: string
term status: testing

surveyorRef
type: Property
comment: Reference to the InstitutionalAttestation issued by the independent loss adjuster / surveyor (attestorType: InspectionAgency, attestationType: IncidentReport).
domain: CargoIncident
range: InstitutionalAttestation
term status: testing

claimNumber
type: Property
comment: Insurer-issued claim reference (private layer).
domain: InsuranceClaim
range: string
term status: testing

policyRef
type: Property
comment: Reference to the InsurancePolicy under which this claim is filed.
domain: InsuranceClaim
range: InsurancePolicy
term status: testing

incidentRef
type: Property
comment: Reference to the CargoIncident triggering the claim.
domain: InsuranceClaim
range: CargoIncident
term status: testing

claimStatus
type: Property
comment: Status of the claim. Values: Filed, Acknowledged, UnderInvestigation, Approved, PartiallyApproved, Denied, Settled, Withdrawn.
domain: InsuranceClaim
range: string
term status: testing

claimAmount
type: Property
comment: Amount claimed by the policyholder.
domain: InsuranceClaim
range: MonetaryAmount
term status: testing

payoutAmount
type: Property
comment: Amount paid by the insurer (may differ from claim amount after surveyor adjustment and deductible).
domain: InsuranceClaim
range: MonetaryAmount
term status: testing

payoutDate
type: Property
comment: Date funds were credited to the policyholder.
domain: InsuranceClaim
range: date
term status: testing

LogisticsRecord
type: Class
comment: A summary of the logistics for a shipping leg of a trade — vessel, voyage, carrier, loading and discharge ports, BL reference, and container details. Attaches to a Trade via skyocean:logistics.
term status: testing

logistics
type: Property
comment: Reference from a Trade to its LogisticsRecord.
domain: Trade
range: LogisticsRecord
term status: testing

vessel
type: Property
comment: Vessel name (semantics align with GS1/DCSA vessel reference).
domain: LogisticsRecord
range: string
term status: testing

vesselIMO
type: Property
comment: IMO ship identification number (7 digits) under the IMO ship-identification scheme.
domain: LogisticsRecord
range: string
term status: testing

voyage
type: Property
comment: Voyage reference issued by the carrier.
domain: LogisticsRecord
range: string
term status: testing

carrier
type: Property
comment: Carrier (shipping line) legal name.
domain: LogisticsRecord
range: string
term status: testing

loadingPort
type: Property
comment: Port of loading (UN/LOCODE plus place name).
domain: LogisticsRecord
range: string
term status: testing

dischargePort
type: Property
comment: Port of discharge (UN/LOCODE plus place name).
domain: LogisticsRecord
range: string
term status: testing

billOfLading
type: Property
comment: Bill of Lading reference number issued by the carrier.
domain: LogisticsRecord
range: string
term status: testing

containerCount
type: Property
comment: Total container count for the shipping leg.
domain: LogisticsRecord
range: integer
term status: testing

containerType
type: Property
comment: Container type description (e.g., '40-ft HC', 'flexitank-equipped 20-ft').
domain: LogisticsRecord
range: string
term status: testing

PublicTradeOverview
type: Class
comment: A typeable marker class indicating that a Trade KA is intended as a public-overview assertion (paired with a private TradePrivateData KA). Used as a secondary @type alongside skyocean:CommodityTrade.
term status: testing

shipper
type: Property
comment: Skyocean operating entity in the country of origin (Bill of Lading 'From'). Distinct from the legal Seller and from the fund-receiving entity.
domain: Trade
range: TradeParty
term status: testing

fundReceivingEntity
type: Property
comment: Skyocean operating entity that receives institutional capital under the trade-finance facility (e.g., Skyocean DOOEL, Skyocean Lithuania UAB).
domain: Trade
range: TradeParty
term status: testing

corridor
type: Property
comment: Trade corridor classification (e.g., 'Sudan', 'Ghana', 'EU').
domain: Trade
range: string
term status: testing

tradeType
type: Property
comment: Trade-structure classification (e.g., 'self-consignment-CAD', 'EXW-then-CFR-twoLeg').
domain: Trade
range: string
term status: testing

cycleDays
type: Property
comment: Total cycle length in days (origination to settlement).
domain: Trade
range: integer
term status: testing

tradeLegs
type: Property
comment: Ordered list of leg identifiers for a multi-leg trade (e.g., ['origin', 'export'] for an EXW-then-CFR cocoa-style structure). Single-leg trades typically omit this property.
domain: Trade
term status: testing

timeline
type: Property
comment: Trade-level timeline block carrying expected dates (origination, shipment, arrival, settlement). Properties are typically drawn from the trade: sub-namespace.
domain: Trade
term status: testing

fundingBranch
type: Property
comment: Funding-branch classification per full-trade-flow.md. Values: 'A' (retail-only on-chain), 'B' (mixed institutional + retail on-chain), 'C' (institutional-only off-chain, no smart contract).
domain: Trade
range: string
term status: testing

paymentTrigger
type: Property
comment: Payment-trigger classification used by the smart contract's _checkPaymentConditions evaluator. Values: 'OnDocumentsVerified', 'OnArrival', 'OnLoading', 'Manual'.
domain: Trade
range: string
term status: testing

relatedTrade
type: Property
comment: Reference from a child KA (FinancingRecord, Document, etc.) back to its parent Trade KA.
range: Trade
term status: testing

financingRecords
type: Property
comment: Reference from a Trade to one or more FinancingRecord KAs (institutional + retail per-holder).
domain: Trade
range: FinancingRecord
term status: testing

paymentSource
type: Property
comment: Reference from a Trade to one or more PaymentSource KAs that confirm settlement on this trade.
domain: Trade
range: PaymentSource
term status: testing

convergenceRecord
type: Property
comment: Reference from a Trade to its ConvergenceRecord (or records, when multiple convergence events occur in a trade's lifecycle).
domain: Trade
range: ConvergenceRecord
term status: testing

onChainAnchor
type: Property
comment: Composite block on a Trade describing its on-chain anchor — network, contract address, transaction hash. Optional and additive to skyocean:blockchainTransactionId.
domain: Trade
term status: testing

network
type: Property
comment: Blockchain network identifier (e.g., 'polygon', 'polygon-mumbai').
term status: testing

contract
type: Property
comment: Smart-contract address that issued the on-chain anchor (e.g., the SkyoceanTradeCore deployment).
term status: testing

txHash
type: Property
comment: Transaction hash of the createTrade call that issued the bytes32 tradeId. Distinct from skyocean:blockchainTransactionId, which is the tradeId itself.
term status: testing

source
type: Property
comment: Financing-source descriptor on a FinancingRecord. Values: 'institutional-trade-finance-facility', 'retail-skyt-capacity-activation', 'mixed-pool', 'institutional-tfa' (Branch C).
domain: FinancingRecord
range: string
term status: testing

participant
type: Property
comment: DID of the participant in this FinancingRecord — institutional facility DID or retail-holder DID.
domain: FinancingRecord
range: anyURI
term status: testing

participantLEI
type: Property
comment: ISO 17442 Legal Entity Identifier for an institutional participant (where applicable).
domain: FinancingRecord
range: string
term status: testing

participantCount
type: Property
comment: Number of distinct participants (used on retail-pool FinancingRecord roll-ups).
domain: FinancingRecord
range: integer
term status: testing

capitalProvided
type: Property
comment: Capital amount provided by this participant (or retail-pool aggregate).
domain: FinancingRecord
range: MonetaryAmount
term status: testing

percentageOfTotal
type: Property
comment: Share of total trade financing as a decimal (0.0–1.0).
domain: FinancingRecord
range: decimal
term status: testing

totalSKYTLocked
type: Property
comment: Aggregate SKYT amount locked in a retail-pool FinancingRecord.
domain: FinancingRecord
range: integer
term status: testing

indicativeCycleMargin
type: Property
comment: Indicative trade-cycle margin descriptor (string with explicit not-guaranteed framing) — e.g., '~3.8% per ~55-day cycle (Sudan corridor; not guaranteed)'.
domain: FinancingRecord
range: string
term status: testing

lockedSKYT
type: Property
comment: SKYT amount locked by an individual retail holder for this trade.
domain: FinancingRecord
range: integer
term status: testing

lockedValue
type: Property
comment: USD-equivalent value of the SKYT locked by an individual retail holder.
domain: FinancingRecord
range: MonetaryAmount
term status: testing

tier
type: Property
comment: Retail holder tier classification per Skyocean's tier model.
domain: FinancingRecord
range: integer
term status: testing

supplierDetails
type: Property
comment: Wrapper carrying full supplier identification (schema:legalName, schema:address, schema:taxID, contact).
domain: TradePrivateData
term status: testing

buyerDetails
type: Property
comment: Wrapper carrying full buyer identification.
domain: TradePrivateData
term status: testing

participantDetails
type: Property
comment: Wrapper carrying full participant identification on a private FinancingRecord (institutional or retail).
term status: testing

bankingDetails
type: Property
comment: Wrapper carrying banking detail (schema:bankName, BIC/SWIFT identifier, schema:accountId).
domain: TradePrivateData
term status: testing

settlementAccount
type: Property
comment: Wrapper carrying the institutional financier's settlement account detail on the private FinancingRecord.
term status: testing

exactPricing
type: Property
comment: Wrapper carrying exact contract pricing (unit price + total contract value) on the private trade KA.
domain: TradePrivateData
term status: testing

totalContractValue
type: Property
comment: Total contract value (private layer).
range: MonetaryAmount
term status: testing

facilityTermsRef
type: Property
comment: Reference to the executed Trade Finance Agreement governing an institutional FinancingRecord.
range: string
term status: testing

beneficialOwnershipKYCRef
type: Property
comment: Internal Skyocean reference to the beneficial-ownership KYC dossier for an institutional financier.
range: string
term status: testing

signingOfficer
type: Property
comment: Authorized signing officer for an institutional counterparty (name + role + DID).
term status: testing

walletProvenance
type: Property
comment: Internal reference to a verified-wallet KYC linkage record for a retail holder.
range: string
term status: testing

amlCheckRef
type: Property
comment: Internal reference to the AML clearance record for a retail or institutional financier.
range: string
term status: testing

sanctionsCheckRef
type: Property
comment: Internal reference to the sanctions screening record for a retail or institutional financier.
range: string
term status: testing

governmentIdType
type: Property
comment: Type of government ID document on file for a retail holder. Values: 'passport', 'national-id', 'driver-licence'.
range: string
term status: testing

governmentIdRef
type: Property
comment: Internal Skyocean reference to the government-ID document record on file (the ID number itself is not stored as a literal).
range: string
term status: testing

jurisdictionOfResidence
type: Property
comment: ISO 3166 country code of a retail holder's jurisdiction of residence.
range: string
term status: testing

quantity
type: Property
comment: Quantity of the commodity (with schema:unitCode).
domain: Commodity
range: QuantitativeValue
term status: testing

origin
type: Property
comment: Country of origin of the commodity (ISO 3166 country name or code).
domain: Commodity
range: string
term status: testing

destination
type: Property
comment: Country of destination of the commodity.
domain: Commodity
range: string
term status: testing

originatedAt
type: Property
comment: Date the trade was originated in the Skyocean platform.
term status: testing

expectedShipmentDate
type: Property
comment: Expected shipment date.
range: date
term status: testing

expectedArrivalDate
type: Property
comment: Expected arrival date at discharge port.
range: date
term status: testing

expectedSettlementDate
type: Property
comment: Expected settlement (trade-completion) date.
range: date
term status: testing

DonationCampaign
type: Class
comment: A bounded humanitarian-aid campaign with a packing list, target amount, and delivery timeline. Identified by a backend-issued donation:campaignId (e.g. CMP-2026-SUD-001). Funding sources (wallets and/or bank accounts) are attached to the campaign and do not serve as its anchor.
term status: testing

DonationContribution
type: Class
comment: A single donor contribution to a campaign, via stablecoin or bank transfer
term status: testing

DonationDistribution
type: Class
comment: A delivery event recording kits distributed to beneficiaries, verified by state officials
term status: testing

DonationCampaignPrivate
type: Class
comment: Private assertion data for a campaign: supplier details, distribution plan, bank account, and access permissions
term status: testing

SupplyChainSignal
type: Class
comment: Real-time signals from IoT sensors, partner confirmations, or field reports linked to a campaign
term status: testing

DonationKit
type: Class
comment: Specification of a kit's contents — food, medicine, prevention items — with quantities and sourcing details
term status: testing

status
type: Property
comment: Campaign status (Active, Funded, Procuring, Shipping, Delivered, Cancelled)
domain: DonationCampaign
range: string
term status: testing

targetAmount
type: Property
comment: Funding goal for the campaign
domain: DonationCampaign
range: MonetaryAmount
term status: testing

currentAmount
type: Property
comment: Current funds received
domain: DonationCampaign
range: MonetaryAmount
term status: testing

campaignId
type: Property
comment: Canonical anchor identifier for the campaign, issued by the Skyocean backend (e.g. CMP-2026-SUD-001). Stable across on-chain and off-chain campaigns.
domain: DonationCampaign
range: string
term status: testing

fundingSource
type: Property
comment: One or more funding sources attached to the campaign — a wallet, bank account, or rail (Revolut, SEPA, SWIFT, stablecoin). Reuses skyocean:PaymentSource.
domain: DonationCampaign
range: PaymentSource
term status: testing

campaignWallet
type: Property
comment: Optional EVM wallet address (e.g. Polygon) when the campaign has an on-chain funding source. Not the anchor identifier — some campaigns are fully off-chain.
domain: DonationCampaign
range: string
term status: testing

consignedTo
type: Property
comment: Skyocean in-region entity that receives the goods on consignment (e.g. Skyocean Sudan for the Sudan pilot)
domain: DonationCampaign
range: Party
term status: testing

packingList
type: Property
comment: Campaign packing list (kits, quantities, specifications). Functional analog of a trade agreement in the core trading flow.
domain: DonationCampaign
range: DonationKit
term status: testing

costSummary
type: Property
comment: Public top-level cost summary surfaced to donors (e.g. kits vs operations)
domain: DonationCampaign
range: MonetaryAmount
term status: testing

operationalCostBreakdown
type: Property
comment: Private detailed operational cost breakdown (freight, customs, insurance, last-mile logistics, platform & ops)
domain: DonationCampaignPrivate
range: MonetaryAmount
term status: testing

contributorCount
type: Property
comment: Number of contributors to the campaign
domain: DonationCampaign
range: integer
term status: testing
comment: Number of distinct contributors on the rail at the time of receipt issuance. Private-tier — donor identities never surface; counts may.
domain: DonorAggregateReceipt

targetBeneficiaries
type: Property
comment: Target number of families to be served
domain: DonationCampaign
range: integer
term status: testing

region
type: Property
comment: Target distribution region
domain: DonationCampaign
range: string
term status: testing

campaignRef
type: Property
comment: Reference to the parent campaign by donation:campaignId (and optionally KA UAL). Applies to contributions, distributions and supply-chain signals.
domain: DonationContribution
domain: DonationDistribution
domain: SupplyChainSignal
range: string
term status: testing

method
type: Property
comment: Payment rail: stablecoin, revolut, sepa, swift, other
domain: DonationContribution
range: string
term status: testing

paymentSource
type: Property
comment: Rail-specific payment record (provider, reference, institutional flag) reused from the core Skyocean payments module
domain: DonationContribution
range: PaymentSource
term status: testing

onChainTxHash
type: Property
comment: On-chain transaction hash for stablecoin contributions
domain: DonationContribution
range: string
term status: testing

kycRef
type: Property
comment: KYC attestation reference for the donor. Required for every contribution — no anonymous donations.
domain: DonationContribution
range: string
term status: testing

deliveryStatus
type: Property
comment: Public delivery outcome: delivered, partially-delivered, not-delivered, plus recipient category
domain: DonationDistribution
range: string
term status: testing

familiesServed
type: Property
comment: Private. Number of families who received kits in a distribution event
domain: DonationDistribution
range: integer
term status: testing

kitsDistributed
type: Property
comment: Private. Number of kits delivered in a distribution event
domain: DonationDistribution
range: integer
term status: testing

verifiedBy
type: Property
comment: State official, NGO or partner witness who confirmed distribution
domain: DonationDistribution
range: Party
term status: testing

attestationRef
type: Property
comment: Reference to an independent institutional attestation (customs, inspection, partner NGO) that feeds the convergence evaluator
domain: DonationDistribution
range: InstitutionalAttestation
term status: testing

signalType
type: Property
comment: Type of supply chain signal (IoT-Temperature, IoT-GPS, PartnerConfirmation, FieldReport, Verification)
domain: SupplyChainSignal
range: string
term status: testing

containerNumber
type: Property
comment: ISO 6346 container identifier (e.g., 'MEDU 4471001'). Per-container — distinct from skyocean:containerCount which counts the set. Cross-document join key for graph linkage between BL, Packing List, Phyto, SGS, Customs etc.
domain: Document
range: string
term status: testing

sealNumber
type: Property
comment: Tamper-evident seal number affixed to a container at loading. One per container. Cross-document join key.
domain: Document
range: string
term status: testing

lotReference
type: Property
comment: Production lot reference (e.g., 'AR-LOT-2026-00471'). Cross-document join key linking supplier invoice, packing list, phytosanitary, and quality cert.
domain: Document
range: string
term status: testing

imoNumber
type: Property
comment: IMO (International Maritime Organization) number — globally-unique 7-digit vessel identifier.
domain: LogisticsRecord
domain: Document
range: string
term status: testing

mmsiNumber
type: Property
comment: MMSI (Maritime Mobile Service Identity) — 9-digit vessel radio identifier used by AIS feeds.
domain: LogisticsRecord
domain: Document
range: string
term status: testing

vesselName
type: Property
comment: Vessel name (e.g., 'MV BALTIC TRADER'). Use schema:name on a schema:Vehicle subclass when expressing in JSON-LD with schema.org context.
domain: LogisticsRecord
domain: Document
range: string
term status: testing

bookingReference
type: Property
comment: Carrier booking reference (e.g., 'MSCU-BK-2026-00471'). Cross-document join key linking BL to PO and IOM consolidation manifest.
domain: LogisticsRecord
domain: Document
range: string
term status: testing

grossWeight
type: Property
comment: Gross weight including packaging and pallets/dunnage, in kilograms. For cargo measurement; for full quantity context use schema:weight with QuantitativeValue.
domain: Document
range: decimal
term status: testing

netWeight
type: Property
comment: Net weight of the cargo itself, excluding packaging, in kilograms.
domain: Document
range: decimal
term status: testing

hsCode
type: Property
comment: Harmonized System (HS) commodity classification code, used in customs declarations. Format like '0713.40.00'.
domain: Document
domain: Commodity
range: string
term status: testing

treatmentMethod
type: Property
comment: Phytosanitary / disinfestation treatment method applied to the cargo (e.g., 'Methyl bromide fumigation, 48 mg/L for 24 h at 21°C').
domain: Document
range: string
term status: testing

treatmentDate
type: Property
comment: Date the phytosanitary / disinfestation treatment was applied.
domain: Document
range: date
term status: testing

samplingMethod
type: Property
comment: Sampling method used by the inspection agency (e.g., 'ISO 24333:2009, composite sample of 30 incremental samples per container').
domain: Document
range: string
term status: testing

qualityParameters
type: Property
comment: Composite quality test results (parameter, measured value, spec, pass/fail). Free-form string in v2.1.3; future versions may model as a structured assertion.
domain: Document
range: string
term status: testing

edifactMessageType
type: Property
comment: EDIFACT message type used in the customs filing (e.g., 'CUSDEC', 'CUSRES', 'CUSCAR', 'IFTSTA', 'COARRI', 'COPRAR', 'CODECO').
domain: Document
range: string
term status: testing

edifactStatus
type: Property
comment: Outcome reference of the EDIFACT exchange (e.g., the response message ID or 'CUSRES accepted').
domain: Document
range: string
term status: testing

swiftUETR
type: Property
comment: Unique End-to-end Transaction Reference (UETR) from a SWIFT MT103 message — UUID format. Cross-document join key linking inbound payment confirmation to invoice and PO.
domain: Document
domain: PaymentSource
range: string
term status: testing

senderReference
type: Property
comment: SWIFT MT103 Field 20 — sender's transaction reference. Often carries the buyer's PO number.
domain: Document
domain: PaymentSource
range: string
term status: testing

beneficiaryReference
type: Property
comment: SWIFT MT103 Field 70 — reference for the beneficiary. Typically carries the trade ID + invoice reference.
domain: Document
domain: PaymentSource
range: string
term status: testing

insuredValue
type: Property
comment: Insured value declared on the marine cargo / war-risk policy, typically 110% of CIF/CFR per ICC(A) standard. Use schema:price with currency for the JSON-LD value object.
domain: InsurancePolicy
domain: Document
range: decimal
term status: testing

premiumAmount
type: Property
comment: Premium paid to bind the policy. Use schema:price with currency for the JSON-LD value object.
domain: InsurancePolicy
domain: Document
range: decimal
term status: testing

VesselPosition
type: Class
comment: A single AIS position report from a vessel during a tracked voyage. A continuous AIS feed comprises many VesselPosition assertions.
term status: testing

positionLat
type: Property
comment: Latitude in decimal degrees, WGS84.
domain: VesselPosition
range: decimal
term status: testing

positionLon
type: Property
comment: Longitude in decimal degrees, WGS84.
domain: VesselPosition
range: decimal
term status: testing

positionTimestamp
type: Property
comment: Timestamp of the AIS position report (ISO 8601 UTC).
domain: VesselPosition
range: dateTime
term status: testing

speedOverGround
type: Property
comment: Speed over ground in knots (SOG).
domain: VesselPosition
range: decimal
term status: testing

courseOverGround
type: Property
comment: Course over ground in degrees (COG, 0–359°).
domain: VesselPosition
range: decimal
term status: testing

navStatus
type: Property
comment: AIS navigational status (e.g., 'Underway using engine', 'At anchor', 'Moored').
domain: VesselPosition
range: string
term status: testing

positionPingCount
type: Property
comment: Total number of AIS position pings captured for a tracked voyage. Used in the AIS feed Document KA to summarize feed density.
domain: Document
range: integer
term status: testing

eudrOperator
type: Property
comment: Legal entity acting as the EUDR Operator that places the relevant commodity on the EU market and submits the Due Diligence Statement under Regulation (EU) 2023/1115.
domain: Document
range: TradeParty
term status: testing

eudrDDSReference
type: Property
comment: EU Information System reference number for the submitted EUDR Due Diligence Statement.
domain: Document
range: string
term status: testing

ProductionPlot
type: Class
comment: A geolocated plot of land where a regulated commodity (e.g., cocoa, coffee, palm oil, soy) was produced. Required under EUDR for parcel-level traceability. Geometry expressed via GeoJSON polygon and centroid.
term status: testing

plotGeometry
type: Property
comment: GeoJSON polygon or multipolygon describing the plot boundary.
domain: ProductionPlot
range: string
term status: testing

plotCentroid
type: Property
comment: Centroid latitude/longitude of the plot, WGS84 — convenience field for indexing.
domain: ProductionPlot
range: string
term status: testing

cutoffCompliance
type: Property
comment: Verification that a production plot was deforestation-free as of the EUDR cut-off date (31 December 2020) per remote-sensing analysis. Values: 'Verified', 'NotVerified', 'AtRisk'.
domain: ProductionPlot
range: string
term status: testing

ColdChainLog
type: Class
comment: Container-level temperature + humidity telemetry log captured by an in-container data logger across a voyage.
term status: testing

loggerSerial
type: Property
comment: Serial number of the temperature/humidity logger device (e.g., 'STM-44511-A').
domain: ColdChainLog
range: string
term status: testing

loggerModel
type: Property
comment: Model designation of the data logger device (e.g., 'Sensitech TempTale GEO 4').
domain: ColdChainLog
range: string
term status: testing

readingInterval
type: Property
comment: Logger sampling interval as ISO 8601 duration (e.g., 'PT15M' = 15 minutes).
domain: ColdChainLog
range: duration
term status: testing

temperatureRange
type: Property
comment: Min–max temperature range observed across the voyage, in degrees Celsius.
domain: ColdChainLog
range: string
term status: testing

humidityRange
type: Property
comment: Min–max relative humidity range observed across the voyage (% RH).
domain: ColdChainLog
range: string
term status: testing

temperatureExcursion
type: Property
comment: Number of temperature excursion events outside spec tolerance during the voyage. 0 = within tolerance.
domain: ColdChainLog
range: integer
term status: testing

documentURL
type: Property
comment: Pointer to the original document file in private storage (e.g., S3 signed URL). Always private-tier — never appears in a Document KA's public assertion. Equivalent to schema:url qualified with skyocean:visibility 'private'.
domain: Document
range: anyURI
term status: testing

DonorAggregateReceipt
type: Class
comment: Per-rail aggregate of donor contributions for a campaign (e.g., total stablecoin / SEPA / SWIFT for CMP-2026-SUD-001). Issued continuously as contributions arrive; final aggregate at campaign close. Public-tier shows totals; private-tier links per-contribution detail.
term status: testing

contributionRail
type: Property
comment: The receiving rail used for an aggregate or single contribution: 'stablecoin', 'sepa', 'swift', 'revolut'.
domain: DonorAggregateReceipt
domain: DonationContribution
range: string
term status: testing

aggregateAmount
type: Property
comment: Total contribution amount across the rail at the time of receipt issuance.
domain: DonorAggregateReceipt
range: decimal
term status: testing

DistributionObservation
type: Class
comment: Independent observation of a donation distribution event by an external NGO or partner agency (e.g., IOM Sudan country office). Distinct from donation:DonationDistribution which is the operational delivery record; this class captures the third-party witness.
term status: testing

LastMileAcknowledgment
type: Class
comment: Distribution acknowledgment from the in-region last-mile coordinator (e.g., Khartoum State Ministry of Social Welfare). State-authority sign-off on receipt and onward distribution to identified beneficiary households.
term status: testing

campaignOperator
type: Property
comment: Skyocean operating entity that operates the donation campaign (e.g., Skyocean DOOEL — campaign operator and fund-receiving entity). Distinct from the consignee that takes title in the destination country.
domain: DonationCampaign
range: TradeParty
term status: testing

sourceOfFunds
type: Property
comment: Public-tier description of which receiving rails the campaign accepts (e.g., 'Stablecoin receiving wallet (USDC/USDT) · SEPA donation account · SWIFT correspondent'). Reveals channels, not donor identities.
domain: DonationCampaign
range: string
term status: testing