# SHACL Shapes generated by @inferal-relay/rdf-emitter

@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tsps: <https://relay.inferal.com/ontology/typespec/shapes/> .
@prefix tspv: <https://relay.inferal.com/ontology/typespec/versioning/> .
@prefix schema: <https://schema.org/> .
@prefix tw: <https://relay.inferal.com/ontology/triplewhale/> .
@prefix adm: <https://ontology.inferal.com/modules/advertising-measurement/> .
@prefix triplewhale: <https://relay.inferal.com/ontology/triplewhale/> .

# Class hierarchy
tw:Activity rdfs:subClassOf schema:Thing .
tw:Ad rdfs:subClassOf schema:Thing .
tw:AdsAction rdfs:subClassOf schema:Thing .
tw:AdsAdsetTargeting rdfs:subClassOf schema:Thing .
tw:AdsCustomConversion rdfs:subClassOf schema:Thing .
tw:Affiliate rdfs:subClassOf schema:Thing .
tw:AffluencerHub rdfs:subClassOf schema:Person .
tw:AffluencerDiscountCode rdfs:subClassOf schema:Offer .
tw:AffluencerExpense rdfs:subClassOf schema:MonetaryAmount .
tw:AffluencerLink rdfs:subClassOf schema:URL .
tw:AiVisibility rdfs:subClassOf schema:Thing .
tw:CompetitorsVisibility rdfs:subClassOf schema:Thing .
tw:Source rdfs:subClassOf schema:Thing .
tw:BlendedStats rdfs:subClassOf schema:Dataset .
tw:Creative rdfs:subClassOf schema:CreativeWork .
tw:CsEvent rdfs:subClassOf schema:Event .
tw:CsMessage rdfs:subClassOf schema:Message .
tw:CsTicket rdfs:subClassOf schema:Thing .
tw:CustomCategory rdfs:subClassOf schema:CategoryCode .
tw:CustomCategoryMapping rdfs:subClassOf schema:Thing .
tw:CustomSpend rdfs:subClassOf schema:MonetaryAmount .
tw:CustomerJourney rdfs:subClassOf schema:Thing .
tw:ItemsPurchased rdfs:subClassOf schema:Product .
tw:Question rdfs:subClassOf schema:Question .
tw:CustomerSegmentationAnalytics rdfs:subClassOf schema:Dataset .
tw:CustomerSegmentation rdfs:subClassOf schema:Thing .
tw:CustomerSupportAggMetrics rdfs:subClassOf schema:Dataset .
tw:Customer rdfs:subClassOf schema:Person .
tw:CustomerMetafield rdfs:subClassOf schema:PropertyValue .
tw:EmailsmsSetting rdfs:subClassOf schema:Thing .
tw:Emailsm rdfs:subClassOf schema:Message .
tw:ExternalRevenue rdfs:subClassOf schema:MonetaryAmount .
tw:Ga4ProductAnalytics rdfs:subClassOf schema:Dataset .
tw:Ga4SessionsAgg rdfs:subClassOf schema:Dataset .
tw:Ga4WebAnalytics rdfs:subClassOf schema:Dataset .
tw:IdGraph rdfs:subClassOf schema:Thing .
tw:Keyword rdfs:subClassOf schema:Thing .
tw:Order rdfs:subClassOf schema:Order .
tw:OrderMetafield rdfs:subClassOf schema:PropertyValue .
tw:OrderProductsInfo rdfs:subClassOf schema:Product .
tw:OrderTransaction rdfs:subClassOf schema:MoneyTransfer .
tw:PixelCustomConversion rdfs:subClassOf schema:Thing .
tw:PixelCustomEvent rdfs:subClassOf schema:Thing .
tw:PixelJoined rdfs:subClassOf schema:Thing .
tw:PixelKeywordsJoined rdfs:subClassOf schema:Thing .
tw:PixelOrder rdfs:subClassOf schema:Order .
tw:PixelOrderProductsInfo rdfs:subClassOf schema:Product .
tw:PostPurchaseSurvey rdfs:subClassOf schema:Review .
tw:ProductAnalytics rdfs:subClassOf schema:Dataset .
tw:Product rdfs:subClassOf schema:Product .
tw:ProductImage rdfs:subClassOf schema:ImageObject .
tw:ProductVariant rdfs:subClassOf schema:ProductModel .
tw:Refund rdfs:subClassOf schema:MonetaryAmount .
tw:RefundProductsInfo rdfs:subClassOf schema:Product .
tw:RefundOrderAdjustment rdfs:subClassOf schema:MonetaryAmount .
tw:Review rdfs:subClassOf schema:Review .
tw:AttributesWithRating rdfs:subClassOf schema:Rating .
tw:ReviewerAttribute rdfs:subClassOf schema:PropertyValue .
tw:SearchTerm rdfs:subClassOf schema:Thing .
tw:Session rdfs:subClassOf schema:Thing .
tw:Shipping rdfs:subClassOf schema:ParcelDelivery .
tw:SocialMediaComment rdfs:subClassOf schema:Comment .
tw:SocialMediaMention rdfs:subClassOf schema:Thing .
tw:SocialMediaPage rdfs:subClassOf schema:WebPage .
tw:SocialMediaPost rdfs:subClassOf schema:SocialMediaPosting .
tw:SubscriptionMetrics rdfs:subClassOf schema:Dataset .
tw:Subscription rdfs:subClassOf schema:Thing .
tw:WebAnalytics rdfs:subClassOf schema:Dataset .

<https://relay.inferal.com/ontology/triplewhale/shapes> a tsps:ShapeGeneration ;
  tsps:shapeReferenceChainLimit 5 ;
  tsps:omittedShapeReferenceCount 0 .

# Shape for Activity
tw:ActivityShape a sh:NodeShape ;
  sh:targetClass tw:Activity ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the activity occurred. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/accountId> ;
    sh:name "account id" ;
    sh:description "Account ID - The unique ID for the platform or channel account associated with the activity. Example values: act_2168791943307744 , 18ce55770zl , 1986494684391480" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/actionSource> ;
    sh:name "action source" ;
    sh:description "Action Source - The source or interface from which the action was initiated. Example values: Moby" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adChangedNameFrom> ;
    sh:name "ad changed name from" ;
    sh:description "Ad Changed Name From - The previous name of the ad before it was updated. Example value: Spring Campaign A" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adChangedNameTo> ;
    sh:name "ad changed name to" ;
    sh:description "Ad Changed Name To - The updated name of the ad. Example value: Spring Campaign A v2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adCreated> ;
    sh:name "ad created" ;
    sh:description "Ad Created - Indicates whether a new ad was created. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adStatusChangedFrom> ;
    sh:name "ad status changed from" ;
    sh:description "Ad Status Changed From - The prior status of the ad before the change. Example values: PAUSED , ACTIVE , IN_PROCESS , PENDING_REVIEW" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adStatusChangedTo> ;
    sh:name "ad status changed to" ;
    sh:description "Ad Status Changed To - The new status of the ad. Example values: PAUSED , ACTIVE , IN_PROCESS , PENDING_REVIEW" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adsetBidAmountChangedFrom> ;
    sh:name "adset bid amount changed from" ;
    sh:description "Ad Set Bid Amount Changed From - The previous bid amount (in cents) for the ad set, before the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adsetBidAmountChangedTo> ;
    sh:name "adset bid amount changed to" ;
    sh:description "Ad Set Bid Amount Changed To - The updated bid amount (in cents) for the ad set, after the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adsetChangedNameFrom> ;
    sh:name "adset changed name from" ;
    sh:description "Ad Set Changed Name From - The previous name of the ad set. Example values: Interest - Teens" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adsetChangedNameTo> ;
    sh:name "adset changed name to" ;
    sh:description "Ad Set Changed Name To - The updated name of the ad set. Example: Interest - Teen Girls" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adsetCreated> ;
    sh:name "adset created" ;
    sh:description "Ad Set Created - Indicates whether a new ad set was created. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adsetDailyBudgetChangedFrom> ;
    sh:name "adset daily budget changed from" ;
    sh:description "Ad Set Daily Budget Changed From - The previous daily budget (in cents) set for the ad set, before the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adsetDailyBudgetChangedTo> ;
    sh:name "adset daily budget changed to" ;
    sh:description "Ad Set Daily Budget Changed To - The updated daily budget (in cents) set for the ad set, after the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adsetStatusChangedFrom> ;
    sh:name "adset status changed from" ;
    sh:description "Ad Set Status Changed From - The prior status of the ad set before the change. Example values: PAUSED , ACTIVE , IN_PROCESS" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adsetStatusChangedTo> ;
    sh:name "adset status changed to" ;
    sh:description "Ad Set Status Changed To - The updated status of the ad set. Example values: PAUSED , ACTIVE , IN_PROCESS" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adsetTargetRoasChangedFrom> ;
    sh:name "adset target roas changed from" ;
    sh:description "Ad Set Target ROAS Changed From - The previous target ROAS for the ad set, before the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/adsetTargetRoasChangedTo> ;
    sh:name "adset target roas changed to" ;
    sh:description "Ad Set Target ROAS Changed To - The updated target ROAS for the ad set, after the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/annotationAuthor> ;
    sh:name "annotation author" ;
    sh:description "Annotation Author - The user who created the annotation." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/annotationDescription> ;
    sh:name "annotation description" ;
    sh:description "Annotation Description - The message content of the annotation." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/annotationTitle> ;
    sh:name "annotation title" ;
    sh:description "Annotation Title - The title of the annotation." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignBidAmountChangedFrom> ;
    sh:name "campaign bid amount changed from" ;
    sh:description "Campaign Bid Amount Changed From - The previous bid amount (in cents) for the campaign, before the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignBidAmountChangedTo> ;
    sh:name "campaign bid amount changed to" ;
    sh:description "Campaign Bid Amount Changed To - The updated bid amount (in cents) for the campaign, after the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignChangedNameFrom> ;
    sh:name "campaign changed name from" ;
    sh:description "Campaign Changed Name From - The prior campaign name. Example value: June Evergreen" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignChangedNameTo> ;
    sh:name "campaign changed name to" ;
    sh:description "Campaign Changed Name To - The updated campaign name. Example value: June Evergreen V2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignCreated> ;
    sh:name "campaign created" ;
    sh:description "Campaign Created - Indicates whether a new campaign was created. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignDailyBudgetChangedFrom> ;
    sh:name "campaign daily budget changed from" ;
    sh:description "Campaign Daily Budget Changed From - The previous daily budget in cents) for the campaign, before the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignDailyBudgetChangedTo> ;
    sh:name "campaign daily budget changed to" ;
    sh:description "Campaign Daily Budget Changed To - The updated daily budget in cents) for the campaign, after the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignLifetimeBudgetChangedFrom> ;
    sh:name "campaign lifetime budget changed from" ;
    sh:description "Campaign Lifetime Budget Changed From - The previous lifetime budget in cents) for the campaign, before the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignLifetimeBudgetChangedTo> ;
    sh:name "campaign lifetime budget changed to" ;
    sh:description "Campaign Lifetime Budget Changed To - The updated lifetime budget in cents) for the campaign, after the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignStatusChangedFrom> ;
    sh:name "campaign status changed from" ;
    sh:description "Campaign Status Changed From - The prior status of the campaign. Example values: Draft , ACTIVE , Sending , IN_PROCESS , Queued without Recipients" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignStatusChangedTo> ;
    sh:name "campaign status changed to" ;
    sh:description "Campaign Status Changed To - The new status of the campaign. Example values: Draft , ACTIVE , Sending , IN_PROCESS , Queued without Recipients" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignTargetRoasChangedFrom> ;
    sh:name "campaign target roas changed from" ;
    sh:description "Campaign Target ROAS Changed From - The previous target ROAS for the campaign, before the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/campaignTargetRoasChangedTo> ;
    sh:name "campaign target roas changed to" ;
    sh:description "Campaign Target ROAS Changed To - The updated target ROAS for the campaign, after the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/cdpSegmentSyncToFacebookStatus> ;
    sh:name "cdp segment sync to facebook status" ;
    sh:description "CDP Sync to Facebook Status - The result of syncing the CDP segment to Facebook. Example values: disconnect_sync_to_facebook , sync_to_facebook" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/cdpSegmentSyncToKlaviyoStatus> ;
    sh:name "cdp segment sync to klaviyo status" ;
    sh:description "CDP Sync to Klaviyo Status - The result of syncing the CDP segment to Klaviyo. Example values: disconnect_sync_to_klaviyo , sync_to_klaviyo" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform or channel that the activity occurred in. Example values: facebook-ads , shopify , triple-whale" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/createdAt> ;
    sh:name "created at" ;
    sh:description "Created At - The timestamp when the activity occurred. Example: 2025-05-28 17:17:34" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/createdCdpSegment> ;
    sh:name "created cdp segment" ;
    sh:description "Created CDP Segment - Indicates whether a CDP segment was created. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/createdPostPurchaseSurveyDescription> ;
    sh:name "created post purchase survey description" ;
    sh:description "Created Survey Description - A message indicating that a post-purchase survey was created. Example value: Post Purchase Survey Created" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/deletedPostPurchaseSurveyDescription> ;
    sh:name "deleted post purchase survey description" ;
    sh:description "Deleted Survey Description - A message indicating that a post-purchase survey was deleted. Example value: Post Purchase Survey Deleted" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/entity> ;
    sh:name "entity" ;
    sh:description "Entity Type - The type of entity that the activity occurred on. Example values: adset , ad , campaign , variant , cdp_segment" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/entityId> ;
    sh:name "entity id" ;
    sh:description "Entity ID - Unique identifier for the activity log entry. Example value: 23844267499760291" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/entityName> ;
    sh:name "entity name" ;
    sh:description "Entity Name - Name of the entity that the activity occurred on. Example values: Natural Woven Bundle , Meta Monday , BFCM Lost" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/updatedIntegrationDescription> ;
    sh:name "updated integration description" ;
    sh:description "Updated Integration Description - A message indicating that an integration was updated. Example value: Facebook Ads Disconnected" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/updatedIntegrationSource> ;
    sh:name "updated integration source" ;
    sh:description "Updated Integration Source - The integration source that was updated. Example value: facebook-ads" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/updatedIntegrationTitle> ;
    sh:name "updated integration title" ;
    sh:description "Updated Integration Title - The title of the message indicating that an integration was updated. Example: Integrations Updated" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/updatedNewUserDescription> ;
    sh:name "updated new user description" ;
    sh:description "Updated New User Description - A message indicating that a user was updated." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/updatedPostPurchaseSurveyDescription> ;
    sh:name "updated post purchase survey description" ;
    sh:description "Updated Survey Description - A message indicating that a post-purchase survey was updated. Example value: Post Purchase Survey Updated" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/variantPriceChangedFrom> ;
    sh:name "variant price changed from" ;
    sh:description "Variant Price Changed From - The previous price of the product variant, before the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/variantPriceChangedTo> ;
    sh:name "variant price changed to" ;
    sh:description "Variant Price Changed To - The updated price of the product variant, after the most recent change. By default shown in the shop's currency." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Activity/variantStockStatus> ;
    sh:name "variant stock status" ;
    sh:description "Variant Stock Status - The inventory status of a product variant. Example values: out of stock , back in stock" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Ad
tw:AdShape a sh:NodeShape ;
  sh:targetClass tw:Ad ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the ad was run, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the ad was run. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/accountId> ;
    sh:name "account id" ;
    sh:description "Ad Account ID - The unique ID for the ad account associated with the ad. Assigned by the ad platform. Example values: act_2168791943307744 , 18ce55770zl , 1986494684391480" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/accountName> ;
    sh:name "account name" ;
    sh:description "Ad Account Name - The name of the advertiser's account as defined in the ad platform. Example values: Example Shop , example_shop , ES - International" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/actions> ;
    sh:name "actions" ;
    sh:description "Actions - Actions tracked and reported by Facebook in response to an ad interaction (click or view), such as leads, checkouts, or game plays." ;
    sh:node tw:AdsActionShape ;
    sh:class tw:AdsAction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adBidAmount> ;
    sh:name "ad bid amount" ;
    sh:description "Ad Bid Amount - The bid amount for the ad. Example values: 15 , 28 , 30" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adCopies> ;
    sh:name "ad copies" ;
    sh:description "Ad Copies - Array of all unique ad copy texts." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adCopy> ;
    sh:name "ad copy" ;
    sh:description "Ad Copy - The full text (copy) of the ad." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adId> ;
    sh:name "ad id" ;
    sh:description "Ad ID - The unique ad ID. Assigned by the ad platform. Example value: 120210439891110007" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adImageUrl> ;
    sh:name "ad image url" ;
    sh:description "Ad Image URL - The URL of the ad image. Example value: https://www.example.com/ad-image.jpg" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adName> ;
    sh:name "ad name" ;
    sh:description "Ad Name - The internal name of the ad within the ad platform. Example values: Kids Ad 1 , Blog 03/12/2023 , 10460_video_black_#5" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adPostId> ;
    sh:name "ad post id" ;
    sh:description "Ad Post ID - The ID of the ad post. Example value: 123456789012345_987654321098765" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adStatus> ;
    sh:name "ad status" ;
    sh:description "Ad Status - The status of the ad. Example values: ACTIVE , PAUSED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adTitle> ;
    sh:name "ad title" ;
    sh:description "Ad Title - The external, published title that viewers see when the ad is served. Example values: UP TO 50% OFF , The Hype Is Real , Trusted by 4 Million+ Women Worldwide" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adTitles> ;
    sh:name "ad titles" ;
    sh:description "Ad Titles - Array of all unique ad titles." ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adType> ;
    sh:name "ad type" ;
    sh:description "Ad Type - The format of the ad. Example values: video , image , carousel , link , VIDEO , GRAPHIC Currently available for Meta and Axon." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adsetBidAmount> ;
    sh:name "adset bid amount" ;
    sh:description "Ad Set Bid Amount - The bid amount for the ad set. Example values: 25 , 35 , 40" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adsetBidStrategy> ;
    sh:name "adset bid strategy" ;
    sh:description "Ad Set Bid Strategy - The bidding strategy for the ad set. Example values: LOWEST_COST_WITHOUT_CAP , LOWEST_COST_WITH_BID_CAP , COST_CAP , LOWEST_COST_WITH_MIN_ROAS" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adsetId> ;
    sh:name "adset id" ;
    sh:description "Ad Set ID - The unique ID for the ad set associated with the ad click. Assigned by the ad platform. Example value: 120210439890740003" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adsetName> ;
    sh:name "adset name" ;
    sh:description "Ad Set Name - The name of the ad set within a campaign. Example values: Broad Audience , Bracelets , Wellness" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adsetStatus> ;
    sh:name "adset status" ;
    sh:description "Ad Set Status - The status of the ad set. Example values: ACTIVE , PAUSED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adsetTargeting> ;
    sh:name "adset targeting" ;
    sh:description "Ad Set Targeting - Details on targeting parameters for the ad set, including specific audience segments. Learn more about ad set targeting data" ;
    sh:node tw:AdsAdsetTargetingShape ;
    sh:class tw:AdsAdsetTargeting ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/amazonMarketplaceId> ;
    sh:name "amazon marketplace id" ;
    sh:description "Amazon Marketplace ID - The Amazon marketplace ID for the marketplace associated with the order. See list of marketplace IDs ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/amazonReportType> ;
    sh:name "amazon report type" ;
    sh:description "Amazon Report Type - The type of report generated for Amazon advertising activities (e.g. sponsored products, sponsored brands, sponsored display)." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/asin> ;
    sh:name "asin" ;
    sh:description "Amazon Standard Identification Number - The 10-character alphanumeric code that uniquely identifies a product on Amazon (unique per marketplace). Shows which specific product an Amazon ad or search keyword performance metric is associated with. Example values: B08N5WRWNW , B0CXYZ1234" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/breakdownDimension> ;
    sh:name "breakdown dimension" ;
    sh:description "Breakdown Dimension - The dimension used to break down the data. Example values: age — Audience age bucket. gender — Audience gender category. ageGender — Combination of age bucket and gender. country — Audience or delivery country. region — Sub-country region. dma — U.S. Nielsen Designated Market Area (media market). frequency — How many times a person saw the ad (bucketed). publisherPlatform — App or network where delivery occurred. platformPosition — Specific placement/slot within a platform surface. publisherPlatformPosition — Combination of platform and placement." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/breakdownValue> ;
    sh:name "breakdown value" ;
    sh:description "Breakdown Value - The value of the selected breakdown_dimension . Values differ by dimension and platform. Example values by dimension: age — 25-34 , 35-44 , 45-54 , 55-64 , 65+ gender — female , male , unknown ageGender — 25-34|female , 35-44|male , 65+|unknown country — US , CA , GB (The breakdown_country_name column provides the corresponding full country name. See list of countries .) region — California , New York , Washington, District of Columbia dma — Boston (Manchester) , Albany-Schenectady-Troy , Dallas-Ft. Worth frequency — 1 , 6-10 , 31+ publisherPlatform — facebook , instagram , messenger , audience_network , threads , unknown platformPosition — feed , facebook_stories , instagram_stories , messenger_stories , facebook_reels , instagram_reels , marketplace , right_hand_column , instream_video , search , video_feeds publisherPlatformPosition — facebook|feed , instagram|feed , facebook|facebook_stories , instagram|instagram_reels , facebook|right_hand_column" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/breakdownCountryName> ;
    sh:name "breakdown country name" ;
    sh:description "Breakdown Country Name - The country name for the ad breakdown. Only populated when breakdown_dimension is set to country . When no breakdown is set, or when a different breakdown dimension is selected, this column returns NULL. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/campaignBidStrategy> ;
    sh:name "campaign bid strategy" ;
    sh:description "Campaign Bid Strategy - The bidding strategy for the campaign. Example values: LOWEST_COST_WITHOUT_CAP , LOWEST_COST_WITH_BID_CAP , COST_CAP , LOWEST_COST_WITH_MIN_ROAS" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/campaignCreatedAt> ;
    sh:name "campaign created at" ;
    sh:description "Campaign Created Date - The time the campaign was created. Formatted according to the ISO 8601 international standard. Example value: 2019-04-15 08:26:00 Currently available for Meta only." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The unique ID for the marketing campaign associated with the ad. Assigned by the ad platform. Example values: 23852438666180053 , 531011533 , 20620285829" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/campaignName> ;
    sh:name "campaign name" ;
    sh:description "Campaign Name - The name of the marketing campaign associated with the ad. Example values: Catalog Retargeting , US Generic Search , Breakfast of Champions Campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/campaignStatus> ;
    sh:name "campaign status" ;
    sh:description "Campaign Status - The status of the campaign. Example values: ACTIVE , PAUSED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/campaignType> ;
    sh:name "campaign type" ;
    sh:description "Campaign Type - The type of campaign. Example values: PERFORMANCE_MAX , SEARCH , VIDEO , DEMAND_GEN" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform through which the ad was delivered. Example values: facebook-ads , google-ads , tiktok-ads See full list of standardized ad channel IDs" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/creativeCtaType> ;
    sh:name "creative cta type" ;
    sh:description "Creative CTA Type - The type of call-to-action button displayed on the ad, indicating the action the advertiser wants users to take. Example values: SHOP_NOW , LEARN_MORE" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/creativeDistributionFormat> ;
    sh:name "creative distribution format" ;
    sh:description "Creative Distribution Format - The ad distribution format. Example values: Standard Ad , Dynamic Creative Ad , Unknown" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/creativeFormat> ;
    sh:name "creative format" ;
    sh:description "Creative Format - The format of the ad creative. Example values: SHARE , VIDEO" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/creativeId> ;
    sh:name "creative id" ;
    sh:description "Creative ID - The unique identifier assigned to the creative asset by the ad platform. Example value: 1326015151986179" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/currency> ;
    sh:name "currency" ;
    sh:description "Ad Platform Currency - The original currency used in the ad platform, before conversion to the shop's currency. All monetary values are automatically converted to the shop's selected currency for display. Example values: USD , GBP , EUR" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/customConversions> ;
    sh:name "custom conversions" ;
    sh:description "Custom Conversions - Custom conversions defined by the user in the ad platform." ;
    sh:node tw:AdsCustomConversionShape ;
    sh:class tw:AdsCustomConversion ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/destinationUrl> ;
    sh:name "destination url" ;
    sh:description "Destination URL - The destination URL where users land after clicking the ad. Currently available for Meta, Google, and Pinterest. Example value: https://www.myshop.com/products/ productA" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/isUtmValid> ;
    sh:name "is utm valid" ;
    sh:description "Is UTM Valid - Indicates whether the UTM setup in the platform is valid. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/urlTemplate> ;
    sh:name "url template" ;
    sh:description "URL Template - A template URL used to dynamically populate ad URLs with relevant tracking parameters. Example value: utm_source=facebook&utm_campaign={{campaign.name}}" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/videoUrl> ;
    sh:name "video url" ;
    sh:description "Video URL - The direct link to the video ad hosted on the ad platform. Example value: https://www.youtube.com/embed/ abcdef12345" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/videoUrlIframe> ;
    sh:name "video url iframe" ;
    sh:description "Video URL Iframe - The iframe embed code for displaying the video ad within a web page or app. Example value: https://www.facebook.com/plugins/ video.phpwidth=1080&href=https:// www.facebook.com/ 123456789/videos/987654321" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/videoUrlSource> ;
    sh:name "video url source" ;
    sh:description "Video URL Source - The direct file path to the hosted video source, typically used for playback. Example value: https://video-ord5-2.xx.fbcdn.net/o1/v/t2/f2/m69/example-video.mp4?_nc_ht=video-ord5-2.xx.fbcdn.net&_nc_cat=111& oh=1234567890abcdef&oe=67C3D77F" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adsetDailyBudget> ;
    sh:name "adset daily budget" ;
    sh:description "Ad Set Daily Budget - The daily budget (in cents) set for the ad set within a campaign. By default shown in the shop's currency. Example values: 1750 , 6000 , 40000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adsetLifetimeBudget> ;
    sh:name "adset lifetime budget" ;
    sh:description "Ad Set Lifetime Budget - The total budget (in cents) set for the ad set within a campaign over its lifetime. By default shown in the shop's currency. Example values: 5000 , 10000 , 20000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adsetTargetCpa> ;
    sh:name "adset target cpa" ;
    sh:description "Ad Set Target CPA - The cost per acquisition (CPA) goal defined at the ad set level. Represents the maximum amount the advertiser is willing to spend to generate a single conversion within this ad set. Currently available for Google Ads only." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/adsetTargetRoas> ;
    sh:name "adset target roas" ;
    sh:description "Ad Set Target ROAS - The return on ad spend (ROAS) goal defined at the ad set level. Indicates the minimum amount of revenue the advertiser aims to generate for each dollar spent within this specific ad set. Currently available for Google Ads only." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/allConversionValue> ;
    sh:name "all conversion value" ;
    sh:description "All Conversion Value - Revenue generated from channel-reported conversions of all types (e.g. purchases, registrations, add-to-carts)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/allConversions> ;
    sh:name "all conversions" ;
    sh:description "All Conversions - The total number of channel-reported conversions of all types (e.g. purchases, registrations, add-to-carts)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/campaignDailyBudget> ;
    sh:name "campaign daily budget" ;
    sh:description "Campaign Daily Budget - The daily budget (in cents) for the campaign. Example values: 8000 , 10000 , 15000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/campaignLifetimeBudget> ;
    sh:name "campaign lifetime budget" ;
    sh:description "Campaign Lifetime Budget - The lifetime budget (in cents) for the campaign. Example values: 5000 , 10000 , 20000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/campaignTargetCpa> ;
    sh:name "campaign target cpa" ;
    sh:description "Campaign Target CPA - The cost per acquisition (CPA) goal defined at the campaign level. Represents the maximum amount the advertiser is willing to spend to generate a single conversion across the campaign. Currently available for Google Ads only." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/campaignTargetRoas> ;
    sh:name "campaign target roas" ;
    sh:description "Campaign Target ROAS - The return on ad spend (ROAS) goal defined at the campaign level. Indicates the minimum amount of revenue the advertiser aims to generate for each dollar spent across the entire campaign. Currently available for Google Ads only." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/clicks> ;
    sh:name "clicks" ;
    sh:description "Clicks - Number of channel-reported clicks." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/currencyRate> ;
    sh:name "currency rate" ;
    sh:description "Currency Rate - The rate used to convert monetary values to the shop's currency. If no conversion was applied, the value is 1 . To convert back to the original currency, divide by this rate." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/conversionValue> ;
    sh:name "conversion value" ;
    sh:description "Channel-Reported Conversion Value - Revenue generated from channel-reported conversions (purchases)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/conversions> ;
    sh:name "conversions" ;
    sh:description "Channel-Reported Conversions (Purchases) - Number of channel-reported conversions (purchases)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/engagements> ;
    sh:name "engagements" ;
    sh:description "Engagements - Number of interactions with the ad (likes, shares, etc)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/follows> ;
    sh:name "follows" ;
    sh:description "Follows - Number of new follows attributed to the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/impressions> ;
    sh:name "impressions" ;
    sh:description "Impressions - Number of channel-reported impressions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/inlinePostEngagement> ;
    sh:name "inline post engagement" ;
    sh:description "Inline Post Engagement - Number of inline engagement (likes, shares, comments) with the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/oneDayClickComments> ;
    sh:name "one day click comments" ;
    sh:description "One-Day Click Comments - Number of comments within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/oneDayClickConversionValue> ;
    sh:name "one day click conversion value" ;
    sh:description "One-Day Click Conversion Value - The total value of channel-reported conversions (purchases) made within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/oneDayClickLikes> ;
    sh:name "one day click likes" ;
    sh:description "One-Day Click Likes - Number of likes within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/oneDayClickLinkClicks> ;
    sh:name "one day click link clicks" ;
    sh:description "One-Day Click Link Clicks - Number of link clicks within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/oneDayClickPurchases> ;
    sh:name "one day click purchases" ;
    sh:description "One-Day Click Conversions (Purchases) - Number of channel-reported conversions (purchases) made within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/oneDayClickReactions> ;
    sh:name "one day click reactions" ;
    sh:description "One-Day Click Reactions - Number of reactions within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/oneDayClickShares> ;
    sh:name "one day click shares" ;
    sh:description "One-Day Click Shares - Number of shares within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/oneDayViewConversionValue> ;
    sh:name "one day view conversion value" ;
    sh:description "One-Day View Conversion Value - The total value of channel-reported conversions (purchases) made within one day of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/oneDayViewPurchases> ;
    sh:name "one day view purchases" ;
    sh:description "One-Day View Conversions (Purchases) - The total number of channel-reported conversions (purchases) made within one day of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteConversionValue> ;
    sh:name "onsite conversion value" ;
    sh:description "Onsite Conversion Value - Revenue from channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteOneDayClickConversionValue> ;
    sh:name "onsite one day click conversion value" ;
    sh:description "Onsite One-Day Click Conversion Value - The total value of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteOneDayClickPurchases> ;
    sh:name "onsite one day click purchases" ;
    sh:description "Onsite One-Day Click Conversions (Purchases) - The total number of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteOneDayViewConversionValue> ;
    sh:name "onsite one day view conversion value" ;
    sh:description "Onsite One-Day View Conversion Value - The total value of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within one day of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteOneDayViewPurchases> ;
    sh:name "onsite one day view purchases" ;
    sh:description "Onsite One-Day View Conversions (Purchases) - The total number of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within one day of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsitePurchases> ;
    sh:name "onsite purchases" ;
    sh:description "Onsite Conversions (Purchases) - Number of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteSevenDayClickConversionValue> ;
    sh:name "onsite seven day click conversion value" ;
    sh:description "Onsite Seven-Day Click Conversion Value - The total value of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteSevenDayClickPurchases> ;
    sh:name "onsite seven day click purchases" ;
    sh:description "Onsite Seven-Day Click Conversions (Purchases) - The total number of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteSevenDayViewConversionValue> ;
    sh:name "onsite seven day view conversion value" ;
    sh:description "Onsite Seven-Day View Conversion Value - The total value of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within seven days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteSevenDayViewPurchases> ;
    sh:name "onsite seven day view purchases" ;
    sh:description "Onsite Seven-Day View Conversions (Purchases) - The total number of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within seven days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteTwentyEightDayClickConversionValue> ;
    sh:name "onsite twenty eight day click conversion value" ;
    sh:description "Onsite 28-Day Click Conversion Value - The total value of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within 28 days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteTwentyEightDayClickPurchases> ;
    sh:name "onsite twenty eight day click purchases" ;
    sh:description "Onsite 28-day Click Conversions (Purchases) - The total number of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within 28 days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteTwentyEightDayViewConversionValue> ;
    sh:name "onsite twenty eight day view conversion value" ;
    sh:description "Onsite 28-Day View Conversion Value - The total value of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within 28 days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/onsiteTwentyEightDayViewPurchases> ;
    sh:name "onsite twenty eight day view purchases" ;
    sh:description "Onsite 28-day View Conversions (Purchases) - The total number of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop) within 28 days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/outboundClicks> ;
    sh:name "outbound clicks" ;
    sh:description "Outbound Clicks - Number of channel-reported outbound clicks." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/reach> ;
    sh:name "reach" ;
    sh:description "Reach - The total number of unique individuals who saw the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchAbsoluteTopImpressions> ;
    sh:name "search absolute top impressions" ;
    sh:description "Search Absolute Top Impressions - The number of impressions your ads received in the absolute top position (the very first ad above organic results)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchBudgetLostAbsoluteTopImpressions> ;
    sh:name "search budget lost absolute top impressions" ;
    sh:description "Search Budget Lost Absolute Top Impressions - The estimated number of absolute top impressions your ads missed due to low budget." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchBudgetLostTopImpressions> ;
    sh:name "search budget lost top impressions" ;
    sh:description "Search Budget Lost Top Impressions - The estimated number of top impressions your ads missed due to low budget." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchImpressions> ;
    sh:name "search impressions" ;
    sh:description "Search Impressions - The total number of impressions your ads received on the Search Network." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchRankLostImpressions> ;
    sh:name "search rank lost impressions" ;
    sh:description "Search Rank Lost Impressions - The estimated number of impressions your ads did not receive because Ad Rank was too low." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchRankLostTopImpressions> ;
    sh:name "search rank lost top impressions" ;
    sh:description "Search Rank Lost Top Impressions - The estimated number of top impressions your ads missed due to poor Ad Rank." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchTopImpressions> ;
    sh:name "search top impressions" ;
    sh:description "Search Top Impressions - The number of impressions your ads received in the top position (any position above organic results)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/sevenDayClickComments> ;
    sh:name "seven day click comments" ;
    sh:description "Seven-Day Click Comments - Number of comments within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/sevenDayClickConversionValue> ;
    sh:name "seven day click conversion value" ;
    sh:description "Seven-Day Click Conversion Value - The total value of channel-reported conversions (purchases) made within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/sevenDayClickLikes> ;
    sh:name "seven day click likes" ;
    sh:description "Seven-Day Click Likes - Number of likes within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/sevenDayClickLinkClicks> ;
    sh:name "seven day click link clicks" ;
    sh:description "Seven-Day Click Link Clicks - Number of link clicks within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/sevenDayClickPurchases> ;
    sh:name "seven day click purchases" ;
    sh:description "Seven-Day Click Conversions (Purchases) - Number of channel-reported conversions (purchases) made within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/sevenDayClickReactions> ;
    sh:name "seven day click reactions" ;
    sh:description "Seven-Day Click Reactions - Number of reactions within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/sevenDayClickShares> ;
    sh:name "seven day click shares" ;
    sh:description "Seven-Day Click Shares - Number of shares within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/sevenDayViewConversionValue> ;
    sh:name "seven day view conversion value" ;
    sh:description "Seven-Day View Conversion Value - The total value of channel-reported conversions (purchases) made within seven days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/sevenDayViewPurchases> ;
    sh:name "seven day view purchases" ;
    sh:description "Seven-Day View Conversions (Purchases) - The total number of channel-reported conversions (purchases) made within seven days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/spend> ;
    sh:name "spend" ;
    sh:description "Ad Spend - Channel-reported ad spend, excluding any custom expenses marked as ad spend." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/threeSecondVideoView> ;
    sh:name "three second video view" ;
    sh:description "Three-Second Video View - The number of times a video ad was viewed for at least 3 seconds (thumbstop ratio)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/thruplays> ;
    sh:name "thruplays" ;
    sh:description "Thruplays - The number of times a video ad was played to completion or for at least 15 seconds." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/twentyEightDayClickConversionValue> ;
    sh:name "twenty eight day click conversion value" ;
    sh:description "Twenty-Eight-Day Click Conversion Value - The total value of channel-reported conversions (purchases) made within 28 days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/twentyEightDayClickLinkClicks> ;
    sh:name "twenty eight day click link clicks" ;
    sh:description "Twenty-Eight-Day Click Link Clicks - Number of link clicks within 28 days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/twentyEightDayClickPurchases> ;
    sh:name "twenty eight day click purchases" ;
    sh:description "Twenty-Eight-Day Click Conversions (Purchases) - Number of channel-reported conversions (purchases) made within 28 days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/twentyEightDayViewConversionValue> ;
    sh:name "twenty eight day view conversion value" ;
    sh:description "Twenty-Eight-Day View Conversion Value - The total value of channel-reported conversions (purchases) made within 28 days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/twentyEightDayViewPurchases> ;
    sh:name "twenty eight day view purchases" ;
    sh:description "Twenty-Eight-Day View Conversions (Purchases) - The total number of channel-reported conversions (purchases) made within 28 days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/videoP100Watched> ;
    sh:name "video p100watched" ;
    sh:description "Video 100% Watched - The number of times a video ad was watched for 100% of the video." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/videoP25Watched> ;
    sh:name "video p25watched" ;
    sh:description "Video 25% Watched - The number of times a video ad was watched for 25% of the video." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/videoP50Watched> ;
    sh:name "video p50watched" ;
    sh:description "Video 50% Watched - The number of times a video ad was watched for 50% of the video." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/videoP75Watched> ;
    sh:name "video p75watched" ;
    sh:description "Video 75% Watched - The number of times a video ad was watched for 75% of the video." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/videoP95Watched> ;
    sh:name "video p95watched" ;
    sh:description "Video 95% Watched - The number of times a video ad was watched for 95% of the video." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/visits> ;
    sh:name "visits" ;
    sh:description "Visits - Number of channel-reported visits. Currently available for Criteo only." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/allCpa> ;
    sh:name "all cpa" ;
    sh:description "All Cost Per Acquisition (All CPA) - Cost per conversion of all types (e.g. purchases, registrations, subscriptions, applications). All CPA = Ad Spend / All Conversions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/allRoas> ;
    sh:name "all roas" ;
    sh:description "All Return on Ad Spend - Revenue generated per dollar spent on ads, for channel-reported conversions of all types (e.g. purchases, registrations, subscriptions, applications). All ROAS = All Conversion Value / Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/aov> ;
    sh:name "aov" ;
    sh:description "Average Order Value - The average order value as reported by the ad channel. Channel-Reported AOV = Channel-Reported Conversion Value / Number of Channel-Reported Conversions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/conversionRate> ;
    sh:name "conversion rate" ;
    sh:description "Conversion Rate - The percentage of visits that convert into orders, as reported by the channel. Channel-Reported Conversion Rate = Number of Channel-Reported Conversions / Number of Visits" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/cpa> ;
    sh:name "cpa" ;
    sh:description "Cost Per Acquisition - The cost to acquire a single conversion, as reported by the channel. Channel-Reported CPA = Ad Spend / Number of Channel-Reported Conversions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/cpc> ;
    sh:name "cpc" ;
    sh:description "Cost Per Click - The average cost for each ad click. CPC = Ad Spend / Clicks" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/cpm> ;
    sh:name "cpm" ;
    sh:description "Cost Per Mille - The cost for 1,000 ad impressions. CPM = Ad Spend / Impressions x 1000" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/cpoc> ;
    sh:name "cpoc" ;
    sh:description "Cost Per Outbound Click - Cost for each click leading out from the ad platform to an external website. CPOC = Ad Spend / Outbound Clicks" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/cpv> ;
    sh:name "cpv" ;
    sh:description "Cost Per Visit - The cost for each visit driven by ads. CPV = Ad Spend / Number of Visits" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/ctr> ;
    sh:name "ctr" ;
    sh:description "Click-Through Rate - The percentage of impressions that result in a click. Click-Through Rate (CTR) = Clicks / Impressions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/revenuePerLinkClick> ;
    sh:name "revenue per link click" ;
    sh:description "Revenue Per Link Click - Average revenue generated from each outbound click on the ad. Revenue Per Link Click = Conversion Value / Outbound Clicks" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/roas> ;
    sh:name "roas" ;
    sh:description "Channel-Reported Return on Ad Spend - Revenue generated per dollar spent on ads, as reported by the channel. Channel-Reported ROAS = Channel-Reported Conversion Value / Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchAbsoluteTopImpressionShare> ;
    sh:name "search absolute top impression share" ;
    sh:description "Search Absolute Top Impression Share - The percentage of impressions your ads received in the absolute top location (the very first ad above organic results). Search Absolute Top Impression Share = Search Absolute Top Impressions / Impressions Note: Accurate only when grouping by ad set (ad group)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchBudgetLostAbsoluteTopImpressionShare> ;
    sh:name "search budget lost absolute top impression share" ;
    sh:description "Search Budget Lost Absolute Top Impression Share - The percentage of absolute top impressions your ads did not receive because the campaign budget was limited. Search Budget Lost Absolute Top Impression Share = Search Budget Lost Absolute Top Impressions / Impressions Note: Accurate only when grouping by ad set (ad group)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchBudgetLostTopImpressionShare> ;
    sh:name "search budget lost top impression share" ;
    sh:description "Search Budget Lost Top Impression Share - The percentage of top impressions your ads did not receive because the campaign budget was limited. Search Budget Lost Top Impression Share = Search Budget Lost Top Impressions / Impressions Note: Accurate only when grouping by ad set (ad group)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchImpressionShare> ;
    sh:name "search impression share" ;
    sh:description "Search Impression Share - The percentage of impressions your ads received on the Search Network out of the total impressions they were eligible to receive. Search Impression Share = Search Impressions / Impressions Note: Accurate only when grouping by ad set (ad group)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchRankLostImpressionShare> ;
    sh:name "search rank lost impression share" ;
    sh:description "Search Rank Lost Impression Share - The percentage of impressions your ads did not receive because Ad Rank was too low. Search Rank Lost Impression Share = Search Rank Lost Impressions / Impressions Note: Accurate only when grouping by ad set (ad group)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchRankLostTopImpressionShare> ;
    sh:name "search rank lost top impression share" ;
    sh:description "Search Rank Lost Top Impression Share - The percentage of top impressions your ads did not receive because Ad Rank was too low. Search Rank Lost Top Impression Share = Search Rank Lost Top Impressions / Impressions Note: Accurate only when grouping by ad set (ad group)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ad/searchTopImpressionShare> ;
    sh:name "search top impression share" ;
    sh:description "Search Top Impression Share - The percentage of impressions your ads received in the top location (any position above organic results). Search Top Impression Share = Search Top Impressions / Impressions Note: Accurate only when grouping by ad set (ad group)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Action
tw:AdsActionShape a sh:NodeShape ;
  sh:targetClass tw:AdsAction ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/actionType> ;
    sh:name "action type" ;
    sh:description "Action Type - The specific type of action tracked by Facebook Ads. This includes raw action names reported by various Facebook data sources, such as pixel events, app events, and unified totals. Example values: lead , omni_add_to_cart , offsite_conversion. fb_pixel_initiate_checkout )." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/displayName> ;
    sh:name "display name" ;
    sh:description "Action Display Name - The user-friendly name for the action, standardized across Facebook's reporting sources. Example values: achievements_unlocked , add_payment_info , add_to_cart , add_to_wishlist , app_activations , app_installs , applications_submitted , checkouts_initiated , contacts , donations , game_plays , leads , subscriptions , trials_started , tutorials_completed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/oneDayView> ;
    sh:name "one day view" ;
    sh:description "One-Day View Actions - Number of times the action occurred within 1 day of viewing the ad. Example values: 2 , 5 , 14" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/sevenDayView> ;
    sh:name "seven day view" ;
    sh:description "Seven-Day View Actions - Number of times the action occurred within 7 days of viewing the ad. Example values: 3 , 8 , 21" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/twentyEightDayView> ;
    sh:name "twenty eight day view" ;
    sh:description "Twenty-Eight-Day View Actions - Number of times the action occurred within 28 days of viewing the ad. Example values: 4 , 12 , 30" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/oneDayClick> ;
    sh:name "one day click" ;
    sh:description "One-Day Click Actions - Number of times the action occurred within 1 day of clicking the ad. Example values: 2 , 5 , 14" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/sevenDayClick> ;
    sh:name "seven day click" ;
    sh:description "Seven-Day Click Actions - Number of times the action occurred within 7 days of clicking the ad. Example values: 3 , 8 , 21" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/twentyEightDayClick> ;
    sh:name "twenty eight day click" ;
    sh:description "Twenty-Eight-Day Click Actions - Number of times the action occurred within 28 days of clicking the ad. Example values: 4 , 12 , 30" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/oneDayViewValue> ;
    sh:name "one day view value" ;
    sh:description "One-Day View Value Actions - Total monetary value attributed to the action when it occurred within 1 day of viewing the ad. Example values: 4500 , 12999 , 17500" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/sevenDayViewValue> ;
    sh:name "seven day view value" ;
    sh:description "Seven-Day View Value Actions - Total monetary value attributed to the action when it occurred within 7 days of viewing the ad. Example values: 6000 , 17000 , 22350" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/twentyEightDayViewValue> ;
    sh:name "twenty eight day view value" ;
    sh:description "Twenty-Eight-Day View Value Actions - Total monetary value attributed to the action when it occurred within 28 days of viewing the ad. Example values: 9000 , 25000 , 31500" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/oneDayClickValue> ;
    sh:name "one day click value" ;
    sh:description "One-Day Click Value Actions - Total monetary value attributed to the action when it occurred within 1 day of clicking the ad. Example values: 4500 , 12999 , 17500" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/sevenDayClickValue> ;
    sh:name "seven day click value" ;
    sh:description "Seven-Day Click Value Actions - Total monetary value attributed to the action when it occurred within 7 days of clicking the ad. Example values: 6000 , 17000 , 22350" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.Action/twentyEightDayClickValue> ;
    sh:name "twenty eight day click value" ;
    sh:description "Twenty-Eight-Day Click Value Actions - Total monetary value attributed to the action when it occurred within 28 days of clicking the ad. Example values: 9000 , 25000 , 31500" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Adset Targeting
tw:AdsAdsetTargetingShape a sh:NodeShape ;
  sh:targetClass tw:AdsAdsetTargeting ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.AdsetTargeting/targetKey> ;
    sh:name "target key" ;
    sh:description "Target Key - The targeting category key within the ad set (e.g., location, age, gender). Learn more about ad set targeting data Example values: age_min , age_max , geo_locations_countries , device_platforms , genders" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.AdsetTargeting/targetValues> ;
    sh:name "target values" ;
    sh:description "Target Values - The specific values associated with the targeting category key, returned as an array. Learn more about ad set targeting data" ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] .

# Shape for Custom Conversion
tw:AdsCustomConversionShape a sh:NodeShape ;
  sh:targetClass tw:AdsCustomConversion ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/_customConversionName> ;
    sh:name "custom conversion name" ;
    sh:description "Custom Conversion Name - The name of the custom conversion event, defined by the user in the ad platform. Example values: $65+ Purchase , NC Purchase , Over60Value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/customConversionId> ;
    sh:name "custom conversion id" ;
    sh:description "Custom Conversion ID - The unique ID of the custom conversion event, assigned by the ad platform. Example value: 358833132159405" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/oneDayClick> ;
    sh:name "one day click" ;
    sh:description "One-Day Click Custom Conversions - Number of conversions (for the custom conversion event) within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/sevenDayClick> ;
    sh:name "seven day click" ;
    sh:description "Seven-Day Click Custom Conversions - Number of conversions (for the custom conversion event) within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/_twentyEightDayClick> ;
    sh:name "twenty eight day click" ;
    sh:description "Twenty-Eight-Day Click Custom Conversions - Number of conversions (for the custom conversion event) within twenty-eight days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/oneDayView> ;
    sh:name "one day view" ;
    sh:description "One-Day View Custom Conversions - Number of conversions (for the custom conversion event) within one day of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/sevenDayView> ;
    sh:name "seven day view" ;
    sh:description "Seven-Day View Custom Conversions - Number of conversions (for the custom conversion event) within seven days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/twentyEightDayView> ;
    sh:name "twenty eight day view" ;
    sh:description "Twenty-Eight-Day View Custom Conversions - Number of conversions (for the custom conversion event) within twenty-eight days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/oneDayClickValue> ;
    sh:name "one day click value" ;
    sh:description "One-Day Click Custom Conversion Value - The total value of conversions (for the custom conversion event) within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/sevenDayClickValue> ;
    sh:name "seven day click value" ;
    sh:description "Seven-Day Click Custom Conversion Value - The total value of conversions (for the custom conversion event) within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/_twentyEightDayClickValue> ;
    sh:name "twenty eight day click value" ;
    sh:description "Twenty-Eight-Day Click Custom Conversion Value - The total value of conversions (for the custom conversion event) within twenty-eight days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/oneDayViewValue> ;
    sh:name "one day view value" ;
    sh:description "One-Day View Custom Conversion Value - The total value of conversions (for the custom conversion event) within one day of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/sevenDayViewValue> ;
    sh:name "seven day view value" ;
    sh:description "Seven-Day View Custom Conversion Value - The total value of conversions (for the custom conversion event) within seven days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.CustomConversion/_twentyEightDayViewValue> ;
    sh:name "twenty eight day view value" ;
    sh:description "Twenty-Eight-Day View Custom Conversion Value - The total value of conversions (for the custom conversion event) within twenty-eight days of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Affiliate
tw:AffiliateShape a sh:NodeShape ;
  sh:targetClass tw:Affiliate ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the affiliate event occurred. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/adId> ;
    sh:name "ad id" ;
    sh:description "Ad ID - The unique identifier of the tracking link under the campaign. Example values: link_abc123 , tracking_xyz789" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/adName> ;
    sh:name "ad name" ;
    sh:description "Ad Name - The name of the tracking link under the campaign. Example values: homepage-banner , product-page-link , email-cta" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/adStatus> ;
    sh:name "ad status" ;
    sh:description "Ad Status - Indicates whether this tracking link is active or inactive. Example values: active , inactive" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The unique identifier of the campaign or offer under the publisher. Example values: camp_12345 , offer_67890" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/campaignName> ;
    sh:name "campaign name" ;
    sh:description "Campaign Name - The name of the campaign or offer under the publisher. Example values: summer-promo-10% , holiday-sale-2024 , winter-clearance" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/campaignStatus> ;
    sh:name "campaign status" ;
    sh:description "Campaign Status - Indicates whether this campaign or offer is active or inactive. Example values: active , inactive" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/publisherId> ;
    sh:name "publisher id" ;
    sh:description "Publisher ID - The unique identifier of the affiliate partner or influencer. Example value: 208997" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/publisherName> ;
    sh:name "publisher name" ;
    sh:description "Publisher Name - The name of the affiliate partner or influencer. Example values: Karma Shopping LTD , NextGen Shopping, Inc. , tenere_team" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/publisherStatus> ;
    sh:name "publisher status" ;
    sh:description "Publisher Status - Indicates whether the partnership with this affiliate is active or inactive. Example values: active , inactive" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/clicks> ;
    sh:name "clicks" ;
    sh:description "Clicks - Number of clicks on the affiliate tracking link." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/conversionValue> ;
    sh:name "conversion value" ;
    sh:description "Conversion Value - Total revenue generated from purchases attributed to the affiliate." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/impressions> ;
    sh:name "impressions" ;
    sh:description "Impressions - Number of times the affiliate tracking link was displayed or viewed." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/purchases> ;
    sh:name "purchases" ;
    sh:description "Purchases - Number of purchases attributed to the affiliate." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Affiliate/spend> ;
    sh:name "spend" ;
    sh:description "Spend - Total amount spent on the affiliate partnership, including commissions, fees, or other costs." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Affluencer Hub
tw:AffluencerHubShape a sh:NodeShape ;
  sh:targetClass tw:AffluencerHub ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the order was placed. Based on the shop time zone at the moment of the event (or user time zone when no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/affluencerSource> ;
    sh:name "affluencer source" ;
    sh:description "Affluencer Source - How the affluencer profile was created. Example values: upload , client , auto_create , backfill" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/discountCodes> ;
    sh:name "discount codes" ;
    sh:description "Discount Codes - A list of the discount codes associated with the affluencer." ;
    sh:node tw:AffluencerDiscountCodeShape ;
    sh:class tw:AffluencerDiscountCode ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/expenses> ;
    sh:name "expenses" ;
    sh:description "Expenses - A list of expense records assigned to the affluencer." ;
    sh:node tw:AffluencerExpenseShape ;
    sh:class tw:AffluencerExpense ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/links> ;
    sh:name "links" ;
    sh:description "Affluencer Links - A list of destination URLs tied to the affluencer, used for traffic and attribution." ;
    sh:node tw:AffluencerLinkShape ;
    sh:class tw:AffluencerLink ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/name> ;
    sh:name "name" ;
    sh:description "Affluencer Name - The name of the affluencer. Example value: Jane Smith" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHub/spend> ;
    sh:name "spend" ;
    sh:description "Spend - The total amount of expenses." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Discount Code
tw:AffluencerDiscountCodeShape a sh:NodeShape ;
  sh:targetClass tw:AffluencerDiscountCode ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.DiscountCode/code> ;
    sh:name "code" ;
    sh:description "Discount Code - The actual code used to attribute orders to the affluencer. Example values: JEN20 , UMICH , ARKNUTRITION" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.DiscountCode/startDate> ;
    sh:name "start date" ;
    sh:description "Discount Code Start Date - The start date the discount code is valid. Example value: 2024-08-02 00:00:00" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.DiscountCode/endDate> ;
    sh:name "end date" ;
    sh:description "Discount Code End Date - The end date the discount code is valid. Example value: 2025-08-02 00:00:00" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] .

# Shape for Expens
tw:AffluencerExpenseShape a sh:NodeShape ;
  sh:targetClass tw:AffluencerExpense ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Expens/id> ;
    sh:name "id" ;
    sh:description "Expense ID - A unique identifier for the expense. Example value: 37f1ad60-2ce9-4733-b6d9-4b3d13307e42" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Expens/spendType> ;
    sh:name "spend type" ;
    sh:description "Expense Type - Indicates the category of the expense. Example values: per_order , fixed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Expens/amountType> ;
    sh:name "amount type" ;
    sh:description "Expense Amount Type - Indicates whether the expense is a percentage of sales or a fixed amount (currency). Example values: percentage , currency" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Expens/isRecurring> ;
    sh:name "is recurring" ;
    sh:description "Expense Is Recurring - Indicates whether this expense recurs on a regular cadence (e.g. monthly) or is a one-time expense. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Expens/recurringCadence> ;
    sh:name "recurring cadence" ;
    sh:description "Expense Recurring Cadence - Frequency of the recurring expense. Example values: one_time , week , month" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Expens/startDate> ;
    sh:name "start date" ;
    sh:description "Expense Start Date - The date the expense starts. Example value: 2023-07-22" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Expens/endDate> ;
    sh:name "end date" ;
    sh:description "Expense End Date - The date the expense ends (if applicable). Example value: 2025-01-01" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Expens/amount> ;
    sh:name "amount" ;
    sh:description "Expense Amount - The value of the expense." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Expens/recurringIntervalLength> ;
    sh:name "recurring interval length" ;
    sh:description "Expense Recurring Interval Length - Number of intervals between each recurring payment. For example, if recurring_cadence = week and recurring_interval_length = 2 , the expense recurs every two weeks." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Link
tw:AffluencerLinkShape a sh:NodeShape ;
  sh:targetClass tw:AffluencerLink ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Link/id> ;
    sh:name "id" ;
    sh:description "Link ID - Unique identifier for the link, formatted: ${name}*${links.campaign}*${links.source}" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Link/campaign> ;
    sh:name "campaign" ;
    sh:description "Link Campaign - The name of the campaign the link is associated with (e.g. summer-launch , holiday-sale )." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Link/source> ;
    sh:name "source" ;
    sh:description "Link Source - The traffic source where this link is shared. Example values: instagram , default" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Link/storefrontUrl> ;
    sh:name "storefront url" ;
    sh:description "Link Storefront URL - The public-facing URL the affluencer is promoting Example value: https://www.instagram.com/example" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AffluencerHubFields.Link/url> ;
    sh:name "url" ;
    sh:description "Link URL - The fully generated tracking URL that includes affluencer and link identifiers. Example value: https://www.instagram.com/example?linkId=example_instagram&amp;affluencerId=example" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] .

# Shape for Ai Visibility
tw:AiVisibilityShape a sh:NodeShape ;
  sh:targetClass tw:AiVisibility ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the AI visibility prompt execution ran. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/competitorsVisibility> ;
    sh:name "competitors visibility" ;
    sh:description "Competitors Visibility - Competitor visibility data for the prompt execution. Each record represents a competitor and whether they were mentioned in the LLM response." ;
    sh:node tw:CompetitorsVisibilityShape ;
    sh:class tw:CompetitorsVisibility ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/eventTimestamp> ;
    sh:name "event timestamp" ;
    sh:description "Prompt Execution Timestamp - Timestamp of when the prompt execution ran (UTC). Example value: 2026-01-10 10:04:06" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/executionId> ;
    sh:name "execution id" ;
    sh:description "Prompt Execution ID - Unique identifier for a single prompt execution. Example value: 985c7f1d-0f6e-4ae5-bbbc-50f5b3c8353e" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/isMentioned> ;
    sh:name "is mentioned" ;
    sh:description "Is Mentioned - Whether the shop was mentioned in the response. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/llm> ;
    sh:name "llm" ;
    sh:description "LLM - The LLM that was used for the prompt execution. Example values: chatgpt , gemini" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/promptId> ;
    sh:name "prompt id" ;
    sh:description "Prompt ID - The prompt identifier associated with the execution. Example value: 29431f0b8fb1900972f8f121" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/promptText> ;
    sh:name "prompt text" ;
    sh:description "Prompt Text - The prompt text used for the execution. Example values: What’s the best heritage flour for everyday baking? , What makes seed oil free bars better? , What features should I look for in skis for moderate skill level?" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/responsePreview> ;
    sh:name "response preview" ;
    sh:description "Response Preview - Preview of the LLM response (first 200 characters). Example value: Here are some of the best heritage flours you can use for everyday baking…" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/sources> ;
    sh:name "sources" ;
    sh:description "Cited Sources - Citations/sources returned by the LLM for the prompt execution. Each record represents one cited source." ;
    sh:node tw:SourceShape ;
    sh:class tw:Source ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/topicId> ;
    sh:name "topic id" ;
    sh:description "Topic ID - The topic identifier associated with the prompt execution. Example value: 495be1b1787a86e9ae3dadd3" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/topicName> ;
    sh:name "topic name" ;
    sh:description "Topic Name - The topic name associated with the prompt execution. Example value: Flour , Seed Oil Free , Skis" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibility/visibilityPercentage> ;
    sh:name "visibility percentage" ;
    sh:description "Visibility Percentage - Percentage of prompt executions where the shop was mentioned in the LLM response. Visibility % = Number of Mentions / Number of Prompt Executions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Competitors Visibility
tw:CompetitorsVisibilityShape a sh:NodeShape ;
  sh:targetClass tw:CompetitorsVisibility ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibilityFields.CompetitorsVisibility/competitorId> ;
    sh:name "competitor id" ;
    sh:description "Competitor ID - Unique identifier for the competitor. Example value: 6801a2f3c9e7b54d1023ef89" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibilityFields.CompetitorsVisibility/competitorName> ;
    sh:name "competitor name" ;
    sh:description "Competitor Name - Display name of the competitor. Example value: Acme Co" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibilityFields.CompetitorsVisibility/competitorUrl> ;
    sh:name "competitor url" ;
    sh:description "Competitor URL - URL of the competitor. Example value: https://acmeco.com" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibilityFields.CompetitorsVisibility/isMentioned> ;
    sh:name "is mentioned" ;
    sh:description "Competitor Is Mentioned - Whether this competitor was mentioned in the LLM response. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] .

# Shape for Source
tw:SourceShape a sh:NodeShape ;
  sh:targetClass tw:Source ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibilityFields.Source/sourceDomain> ;
    sh:name "source domain" ;
    sh:description "Cited Source Domain - Domain of a cited source. Example value: exampleshop.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibilityFields.Source/sourceUrl> ;
    sh:name "source url" ;
    sh:description "Cited Source URL - URL of a cited source. Example value: https://exampleshop.com/products/heritage-bread-blend-flour?utm_source=chatgpt.com" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.AiVisibilityFields.Source/citationOrder> ;
    sh:name "citation order" ;
    sh:description "Citation Order - Order of the citation in the response (lower numbers appear earlier). Example value: 2" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Blended Stats
tw:BlendedStatsShape a sh:NodeShape ;
  sh:targetClass tw:BlendedStats ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/includeAmazon> ;
    sh:name "include amazon" ;
    sh:description "Include Amazon - Includes Amazon sales data in the results, in addition to the main sales platform. Possible values: true , false Defaults to false ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day on which the order was placed, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the order was placed. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the ad was run or the order was placed. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/channelReportedConversionValue> ;
    sh:name "channel reported conversion value" ;
    sh:description "Blended Channel-Reported Conversion Value - Channel-reported conversion value across all marketing channels connected to Triple Whale." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/cogs> ;
    sh:name "cogs" ;
    sh:description "Cost of Goods (COGS) - The cost of goods sold within the selected time frame (before refunds). Imported from the main sales platform, or edit these in Cost Settings > Cost of Goods." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/cogsAdjusted> ;
    sh:name "cogs adjusted" ;
    sh:description "Adjusted Cost of Goods (Adjusted COGS) - The cost of goods sold within the selected time frame, minus the cost of goods of refunded items in the selected time frame. Imported from the main sales platform, or edit these in Cost Settings > Cost of Goods." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/discounts> ;
    sh:name "discounts" ;
    sh:description "Discounts - The total discount amount applied to the order, including shipping discounts." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/grossProductSales> ;
    sh:name "gross product sales" ;
    sh:description "Gross Sales - Gross sales revenue (before shipping, taxes, discounts, or refunds). Gross Sales = Product Price x Units Sold" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/handlingFees> ;
    sh:name "handling fees" ;
    sh:description "Handling Fees - Handling fees (e.g. boxing, packaging, or “pick & pack” services) paid by the seller for orders in the selected time frame. Edit these in Cost Settings > Cost of Goods." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/newCustomerOrders> ;
    sh:name "new customer orders" ;
    sh:description "New Customer Orders - The total number of orders placed by new customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/newCustomerRevenue> ;
    sh:name "new customer revenue" ;
    sh:description "New Customer Revenue - The total revenue derived from orders by new customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/orderRevenue> ;
    sh:name "order revenue" ;
    sh:description "Order Revenue - Revenue earned after shipping, taxes, and discounts (before refunds). Order Revenue = Gross Sales + Shipping + Taxes − Discounts" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/ordersCount> ;
    sh:name "orders count" ;
    sh:description "Orders - The total number of orders placed within the selected timeframe." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/ordersCustomExpenses> ;
    sh:name "orders custom expenses" ;
    sh:description "Order-Level Custom Expenses - Additional custom expenses associated with individual orders. Import these using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/ordersWithAmount> ;
    sh:name "orders with amount" ;
    sh:description "Orders > $0 - The total number of orders with a revenue greater than zero." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/paymentGatewayCosts> ;
    sh:name "payment gateway costs" ;
    sh:description "Payment Gateway Costs - Payment processing fees (not including currency conversion fees) paid by the seller. Edit these in Cost Settings > Gateway Costs." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/refundMoney> ;
    sh:name "refund money" ;
    sh:description "Refunded Sales - Refunded sales amount for the selected time period. Calculated based on the refund date. Note that Triple Whale does not track refunds from third-party return management apps (e.g., Loop), so totals may vary from the sales platform." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/refundedOrders> ;
    sh:name "refunded orders" ;
    sh:description "Refunded Orders - The total number of orders refunded in the selected time frame." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/sessions> ;
    sh:name "sessions" ;
    sh:description "Sessions - Total number of online store sessions. Note that Triple Whale defines and tracks sessions differently from the main sales platform so there may be variance between the two. Learn how Triple Whale defines and tracks sessions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/shippingCosts> ;
    sh:name "shipping costs" ;
    sh:description "Shipping Costs - Shipping costs paid by the seller for orders within the select timeframe. Edit these in Cost Settings > Shipping." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/shippingPrice> ;
    sh:name "shipping price" ;
    sh:description "Shipping Price - The total shipping price of the order (paid by the buyer), after shipping taxes and shipping discounts." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/spend> ;
    sh:name "spend" ;
    sh:description "Blended Ad Spend - The reported ad spend of all marketing channels connected to Triple Whale, plus any Custom Expenses marked as Ad Spend." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/taxes> ;
    sh:name "taxes" ;
    sh:description "Taxes - Amount customers paid in taxes (excluding refunded taxes)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/totalCosts> ;
    sh:name "total costs" ;
    sh:description "Total Costs - The total cost to the seller, including COGS, fees, shipping, custom spend, handling, taxes, and order-level custom expenses, adjusted for refunds. Total Costs = COGS - Refunded COGS + Payment Gateway Costs + Shipping Costs + Custom Spend (excl. Custom Ad Spend) + Handling Fees + Taxes + Order-Level Custom Expenses" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/totalSales> ;
    sh:name "total sales" ;
    sh:description "Total Sales - Total sales revenue kept by the business after shipping, taxes, discounts, refunded sales, refunded shipping, and refunded taxes. Revenue values are based on the order date; refund values are based on the refund date. Total Sales = Gross Sales + Shipping + Taxes − Discounts − Refunded Sales − Refunded Shipping − Refunded Taxes" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/amazonTacos> ;
    sh:name "amazon tacos" ;
    sh:description "Amazon Total Advertising Cost of Sale (Amazon TACoS) - Percentage of Amazon sales revenue spent on ads. Amazon TACoS = Amazon Ad Spend / Amazon Order Revenue" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/baRoas> ;
    sh:name "ba roas" ;
    sh:description "Blended Attributed Return on Ad Spend (BA ROAS) - Revenue attributed to ads relative to ad spend across all channels. Blended-Attributed ROAS = Blended Channel-Reported Conversion Value / Blended Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/blendedCpa> ;
    sh:name "blended cpa" ;
    sh:description "Blended Cost per Acquisition (Blended CPA) - Average ad cost per non-zero order across all channels. Blended CPA = Blended Ad Spend / Number of Orders > $0" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/cashTurnover> ;
    sh:name "cash turnover" ;
    sh:description "Cash Turnover - Cash generated after deducting key expenses from order revenue. Cash Turnover = Order Revenue - Shipping Costs - Payment Gateway Costs - Taxes - Blended Ad Spend - Refunds - Order-Level Custom Expenses" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/costPerSession> ;
    sh:name "cost per session" ;
    sh:description "Cost per Session - Average ad cost per customer session. Cost Per Session = Blended Ad Spend / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/grossProfit> ;
    sh:name "gross profit" ;
    sh:description "Gross Profit - Profit after deducting all costs to the seller. Gross Profit = Total Sales - Total Costs" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/grossRevenue> ;
    sh:name "gross revenue" ;
    sh:description "Gross Revenue - Gross revenue kept by the business after shipping, taxes, discounts, and refunded sales (before refunded shipping or refunded taxes). Revenue values are based on the order date; refund values are based on the refund date. Total Sales = Gross Sales + Shipping + Taxes − Discounts − Refunded Sales" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/klaviyoSalesPercentage> ;
    sh:name "klaviyo sales percentage" ;
    sh:description "Klaviyo Sales Percentage - Share of total revenue attributed to Klaviyo. Klaviyo Sales Percentage = Klaviyo CV / Total Order Revenue" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/mer> ;
    sh:name "mer" ;
    sh:description "Marketing Efficiency Ratio (MER) - Ratio of ad spend to total revenue. MER = Blended Ad Spend / Order Revenue Note: For the inverse ratio (Order Revenue / Blended Ad Spend), see Blended ROAS." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/ncpa> ;
    sh:name "ncpa" ;
    sh:description "New Customer Cost Per Acquisition (NCPA) - Average ad cost to acquire a new customer. NCPA = Blended Ad Spend / Number of New Customer Orders Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/netMargin> ;
    sh:name "net margin" ;
    sh:description "Net Margin - Percentage of revenue remaining as profit. Net Margin = Net Profit / Order Revenue" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/netProfit> ;
    sh:name "net profit" ;
    sh:description "Net Profit - Remaining revenue after deducting refunds, ad spend, and costs. Net Profit = Main Sales Platform Order Revenue (+ Amazon Product Sales) − Refunds − Ad Spend − Total Costs" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/netSales> ;
    sh:name "net sales" ;
    sh:description "Net Sales - Net sales revenue after discounts and refunded sales (before shipping or taxes). Net Sales = Gross Sales − Discounts − Refunded Sales" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/newCustomerRoas> ;
    sh:name "new customer roas" ;
    sh:description "New Customer Return on Ad Spend (NC ROAS) - Revenue from new customers relative to ad spend. New Customer ROAS = New Customer Revenue / Blended Ad Spend Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/poas> ;
    sh:name "poas" ;
    sh:description "Profit on Ad Spend (POAS) - Profit generated per dollar of ad spend. POAS = (Total Sales - Total Costs) / Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.BlendedStats/roas> ;
    sh:name "roas" ;
    sh:description "Blended Return on Ad Spend (Blended ROAS) - Revenue generated per dollar spent on ads. Blended ROAS = Order Revenue / Blended Ad Spend Note: For the inverse ratio (Blended Ad Spend / Order Revenue), see MER." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Creative
tw:CreativeShape a sh:NodeShape ;
  sh:targetClass tw:Creative ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the ad was run. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/adCopy> ;
    sh:name "ad copy" ;
    sh:description "Ad Copy - The full text (copy) of the ad." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/adId> ;
    sh:name "ad id" ;
    sh:description "Ad ID - The unique ID of the ad associated with the creative asset. Example value: 220227808044480670" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/adImageUrl> ;
    sh:name "ad image url" ;
    sh:description "Ad Image URL - The URL of the ad image. Example value: https://www.example.com/ad-image.jpg" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/adTitle> ;
    sh:name "ad title" ;
    sh:description "Ad Title - The external, published title that viewers see when the ad is served. Example values: UP TO 50% OFF , The Hype Is Real , Trusted by 4 Million+ Women Worldwide" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/adType> ;
    sh:name "ad type" ;
    sh:description "Ad Type - The format of the ad. Example values: video , image , carousel , link , VIDEO , GRAPHIC Currently available for Meta and Axon." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/assetId> ;
    sh:name "asset id" ;
    sh:description "Asset ID - The unique ID of the asset used in the ad." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/assetType> ;
    sh:name "asset type" ;
    sh:description "Asset Type - The type of asset used in the ad. Must be set to exactly one of: image , video , copy" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/attributionWindow> ;
    sh:name "attribution window" ;
    sh:description "Attribution Window - The time frame for attributing conversions to the ad. By default lifetime . Example values: 1_day , 7_days , 14_days , 28_days , lifetime" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform through which the ad was delivered. Example values: facebook-ads , google-ads , tiktok-ads" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/creativeCtaType> ;
    sh:name "creative cta type" ;
    sh:description "Creative CTA Type - The type of call-to-action (CTA) used in the ad. Example values: Shop Now , Learn More , Sign Up" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/creativeDistributionFormat> ;
    sh:name "creative distribution format" ;
    sh:description "Creative Distribution Format - The ad creative distribution format. Example values: Standard Ad , Dynamic Creative Ad , Unknown" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/creativeFormat> ;
    sh:name "creative format" ;
    sh:description "Creative Format - The format of the ad creative. Example values: SHARE , VIDEO" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/creativeId> ;
    sh:name "creative id" ;
    sh:description "Creative ID - The unique identifier assigned to the creative asset by the ad platform. Example value: 1326015151986179" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/attributionModel> ;
    sh:name "attribution model" ;
    sh:description "Attribution Model - The attribution model used. By default Triple Attribution . Possible values: Total Impact , Triple Attribution , Triple Attribution + Views , Clicks & Views , Linear All , Linear Paid , First Click , Last Click" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/videoDuration> ;
    sh:name "video duration" ;
    sh:description "Video Duration - The length of the video ad." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/videoUrl> ;
    sh:name "video url" ;
    sh:description "Video URL - The URL of the ad video. Example value: https://www.youtube.com/embed/example" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/videoUrlIframe> ;
    sh:name "video url iframe" ;
    sh:description "Video URL Iframe - The iframe embed code for displaying the video ad within a web page or app. Example value: https://www.facebook.com/plugins/ video.phpwidth=1080&href=https:// www.facebook.com/123456789/videos/987654321" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/channelReportedConversionValue> ;
    sh:name "channel reported conversion value" ;
    sh:description "Channel-Reported Conversion Value - Revenue generated from channel-reported conversions (purchases)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/channelReportedConversions> ;
    sh:name "channel reported conversions" ;
    sh:description "Channel-Reported Conversions (Purchases) - Number of channel-reported conversions (purchases)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/clicks> ;
    sh:name "clicks" ;
    sh:description "Clicks - Number of channel-reported clicks." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/cogs> ;
    sh:name "cogs" ;
    sh:description "Pixel Cost of Goods - The cost of goods for Pixel-reported purchases within the selected time frame (before refunds). Imported from the main sales platform, or edit these in Cost Settings > Cost of Goods. Note that COGS for Pixel data is set at attribution time and does not get updated subsequently, so may vary from COGS data in the Orders table." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/impressions> ;
    sh:name "impressions" ;
    sh:description "Impressions - Number of channel-reported impressions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/newCustomerCogs> ;
    sh:name "new customer cogs" ;
    sh:description "Pixel New Customer Cost of Goods - The cost of goods for Pixel-reported purchases by new customers within the selected time frame (before refunds). Imported from the main sales platform, or edit these in Cost Settings > Cost of Goods. Note that COGS for Pixel data is set at attribution time and does not get updated subsequently, so may vary from COGS data in the Orders table. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/newCustomerOrderRevenue> ;
    sh:name "new customer order revenue" ;
    sh:description "Pixel New Customer Conversion Value - Pixel-reported conversion value (order revenue) derived from New Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/newCustomerOrders> ;
    sh:name "new customer orders" ;
    sh:description "Pixel New Customer Purchases - Number of Pixel-reported orders placed by New Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/numberOfAds> ;
    sh:name "number of ads" ;
    sh:description "Ads - Total number of ads containing the creative asset." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/oneDayClickComments> ;
    sh:name "one day click comments" ;
    sh:description "One-Day Click Comments - Number of comments within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/oneDayClickLikes> ;
    sh:name "one day click likes" ;
    sh:description "One-Day Click Likes - Number of likes within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/oneDayClickReactions> ;
    sh:name "one day click reactions" ;
    sh:description "One-Day Click Reactions - Number of reactions within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/oneDayClickShares> ;
    sh:name "one day click shares" ;
    sh:description "One-Day Click Shares - Number of shares within one day of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/oneDayViewConversionValue> ;
    sh:name "one day view conversion value" ;
    sh:description "One-Day View Conversion Value - The total value of channel-reported conversions (purchases) made within one day of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/oneDayViewPurchases> ;
    sh:name "one day view purchases" ;
    sh:description "One-Day View Conversions (Purchases) - The total number of channel-reported conversions (purchases) made within one day of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/onsitePurchases> ;
    sh:name "onsite purchases" ;
    sh:description "Onsite Conversions (Purchases) - Number of channel-reported conversions (purchases) made on the ad channel shop (e.g. Meta Shop, TikTok Shop)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/orderRevenue> ;
    sh:name "order revenue" ;
    sh:description "Pixel Conversion Value (CV) - Pixel-reported conversion value (order revenue) after shipping, taxes, and discounts (before refunds). Order Revenue = Gross Sales + Shipping + Taxes − Discounts" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/ordersQuantity> ;
    sh:name "orders quantity" ;
    sh:description "Pixel Purchases - The total number of Pixel-reported purchases (orders) within the selected timeframe. Note: This value is calculated based on the attribution model, and may be a fractional number." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/outboundClicks> ;
    sh:name "outbound clicks" ;
    sh:description "Outbound Clicks - Number of channel-reported outbound clicks." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/sevenDayClickComments> ;
    sh:name "seven day click comments" ;
    sh:description "Seven-Day Click Comments - Number of comments within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/sevenDayClickLikes> ;
    sh:name "seven day click likes" ;
    sh:description "Seven-Day Click Likes - Number of likes within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/sevenDayClickReactions> ;
    sh:name "seven day click reactions" ;
    sh:description "Seven-Day Click Reactions - Number of reactions within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/sevenDayClickShares> ;
    sh:name "seven day click shares" ;
    sh:description "Seven-Day Click Shares - Number of shares within seven days of clicking the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/spend> ;
    sh:name "spend" ;
    sh:description "Ad Spend - Channel-reported ad spend, excluding any custom expenses marked as ad spend." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/totalVideoView> ;
    sh:name "total video view" ;
    sh:description "Total Video View - The number of times a video ad was viewed for any amount of time." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/videoP100Watched> ;
    sh:name "video p100watched" ;
    sh:description "Video 100% Watched - The number of times a video ad was watched for 100% of the video." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/videoP25Watched> ;
    sh:name "video p25watched" ;
    sh:description "Video 25% Watched - The number of times a video ad was watched for 25% of the video." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/videoP50Watched> ;
    sh:name "video p50watched" ;
    sh:description "Video 50% Watched - The number of times a video ad was watched for 50% of the video." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/videoP75Watched> ;
    sh:name "video p75watched" ;
    sh:description "Video 75% Watched - The number of times a video ad was watched for 75% of the video." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/videoP95Watched> ;
    sh:name "video p95watched" ;
    sh:description "Video 95% Watched - The number of times a video ad was watched for 95% of the video." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/channelReportedAov> ;
    sh:name "channel reported aov" ;
    sh:description "Channel-Reported AOV - The average order value as reported by the advertising channel. Channel-Reported AOV = Channel-Reported Conversion Value / Number of Channel-Reported Conversions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/channelReportedCpa> ;
    sh:name "channel reported cpa" ;
    sh:description "Channel-Reported Cost Per Acquisition - The cost to acquire a single conversion, as reported by the channel. Channel-Reported CPA = Ad Spend / Number of Channel-Reported Conversions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/channelReportedRoas> ;
    sh:name "channel reported roas" ;
    sh:description "Channel-Reported Return on Ad Spend - Revenue generated per dollar spent on ads, as reported by the channel. Channel-Reported ROAS = Channel-Reported Conversion Value / Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/cpc> ;
    sh:name "cpc" ;
    sh:description "Cost Per Click (CPC) - The average cost for each ad click. Cost Per Click (CPC) = Ad Spend / Clicks" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/cpm> ;
    sh:name "cpm" ;
    sh:description "Cost Per Mille (CPM) - The cost for 1,000 ad impressions. Cost Per Mille (CPM) = Ad Spend / Impressions x 1000" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/ctr> ;
    sh:name "ctr" ;
    sh:description "Click-Through Rate - The percentage of impressions that result in a click. Click-Through Rate (CTR) = Clicks / Impressions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/ncpa> ;
    sh:name "ncpa" ;
    sh:description "Pixel New Customer Cost Per Acquisition - The cost to acquire a new customer, as reported by Pixel. Pixel NCPA = Blended Ad Spend / Number of New Customer Orders Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/newCustomerRoas> ;
    sh:name "new customer roas" ;
    sh:description "Pixel New Customer ROAS - Revenue from new customers relative to ad spend. Pixel NC ROAS = New Customer Pixel Conversion Value / Ad Spend Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/newCustomersPercent> ;
    sh:name "new customers percent" ;
    sh:description "Pixel New Customers Percent - The percentage of Pixel-reported purchases made by new customers. Pixel New Customers % = Number of New Customer Pixel Purchases / Total Pixel Purchases Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/outboundCtr> ;
    sh:name "outbound ctr" ;
    sh:description "Outbound Click-Through Rate - The percentage of impressions that result in outbound clicks. Outbound CTR = Outbound Clicks / Impressions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/pixelAov> ;
    sh:name "pixel aov" ;
    sh:description "Pixel AOV - The Pixel-reported average order value. Pixel AOV = Pixel Conversion Value / Number of Pixel Purchases" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/pixelCpa> ;
    sh:name "pixel cpa" ;
    sh:description "Pixel Cost Per Acquisition - The cost to acquire a purchase as reported by Pixel. Pixel CPA = Ad Spend / Number of Pixel Purchases" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/pixelNcAov> ;
    sh:name "pixel nc aov" ;
    sh:description "Pixel New Customer Average Order Value - The average order value for new customers as reported by Pixel. Pixel NC AOV = New Customer Pixel Conversion Value / Number of New Customer Pixel Purchases Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/pixelProfit> ;
    sh:name "pixel profit" ;
    sh:description "Pixel Profit - The profit calculated as conversion value (order revenue) minus ad spend and cost of goods, as reported by Pixel. Pixel Profit = Pixel Conversion Value - Ad Spend - Pixel COGS" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/pixelRoas> ;
    sh:name "pixel roas" ;
    sh:description "Pixel Return on Ad Spend - Pixel-reported revenue relative to ad spend. Pixel ROAS = Pixel Conversion Value / Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/returningCustomerOrders> ;
    sh:name "returning customer orders" ;
    sh:description "Pixel Returning Customer Purchases - Number of Pixel-reported orders placed by Returning Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/returningCustomerRevenue> ;
    sh:name "returning customer revenue" ;
    sh:description "Pixel Returning Customer Revenue - Pixel-reported conversion value (order revenue) derived from Returning Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Creative/returningCustomersPercent> ;
    sh:name "returning customers percent" ;
    sh:description "Pixel Returning Customers Percent - The percentage of Pixel-reported purchases made by Returning Customers. Pixel New Customers % = Number of Returning Customer Pixel Purchases / Total Pixel Purchases Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Cs Event
tw:CsEventShape a sh:NodeShape ;
  sh:targetClass tw:CsEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the CS event occurred. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/platform> ;
    sh:name "platform" ;
    sh:description "Platform - The customer support platform through which the event was generated. Example value: gorgias" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/createdAt> ;
    sh:name "created at" ;
    sh:description "Event Created Date - The time the event was created, in UTC. Formatted according to the ISO 8601 international standard . Example value: 2026-02-28 22:25:32" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/eventId> ;
    sh:name "event id" ;
    sh:description "Event ID - The unique identifier for the event, assigned by the CS provider. Example value: 15715626681" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/eventType> ;
    sh:name "event type" ;
    sh:description "Event Type - The type of CS event. Example values: ticket-created , ticket-closed , ticket-reopened , ticket-message-created , ticket-updated , ticket-assigned , ticket-unassigned" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/objectId> ;
    sh:name "object id" ;
    sh:description "Object ID - The ID of the object this event relates to (e.g., a ticket or message). Example value: 380365041" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/objectType> ;
    sh:name "object type" ;
    sh:description "Object Type - The type of object this event relates to. Ticket for ticket lifecycle events (e.g., created, closed, reopened); TicketMessage for message events (e.g., a new message on a ticket). Example values: Ticket , TicketMessage" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsEvent/userId> ;
    sh:name "user id" ;
    sh:description "User ID - The ID of the user (agent) who triggered this event. NULL when the event was triggered automatically (e.g., by an automation rule). Example value: 416121112" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Cs Message
tw:CsMessageShape a sh:NodeShape ;
  sh:targetClass tw:CsMessage ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the CS message was received. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/body> ;
    sh:name "body" ;
    sh:description "Message Body - The content of the message. Example value: Thank you for my shipment! Super happy with your product!" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The channel through which the message was delivered. Example values: facebook-comment , instagram-mention , email , chat" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/createdAt> ;
    sh:name "created at" ;
    sh:description "Message Created Date - The time the message was created. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/deletedAt> ;
    sh:name "deleted at" ;
    sh:description "Message Deleted Date - The time the message was deleted. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/isFromAgent> ;
    sh:name "is from agent" ;
    sh:description "Is From Agent - True if the message was sent by a customer support agent. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/isPublic> ;
    sh:name "is public" ;
    sh:description "Is Public - True if the message is visible to customers (not just the support team). Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/messageId> ;
    sh:name "message id" ;
    sh:description "Message ID - The unique message ID. Example value: 435397561" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/orders> ;
    sh:name "orders" ;
    sh:description "Attributed Orders - A list of order IDs associated with the message. Returned as an array of strings. Example value: [\"3797121360046\", \"3797258330286\"]" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/productsNames> ;
    sh:name "products names" ;
    sh:description "Attributed Product Names - The names of products mentioned in the message. Returned as an array of strings. Example value: [\"Green Soft Socks 3-Pack\", \"Paring Knife Travel Case\", \"Gift Subscription\"]" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/receiverEmail> ;
    sh:name "receiver email" ;
    sh:description "Receiver Email - The email address of the recipient of the message. Example value: [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/receiverId> ;
    sh:name "receiver id" ;
    sh:description "Receiver ID - The unique identifier assigned to the message recipient. Example value: 123456789" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/receiverName> ;
    sh:name "receiver name" ;
    sh:description "Receiver Name - The full name of the recipient of the message. Example value: Jane Doe" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/senderEmail> ;
    sh:name "sender email" ;
    sh:description "Sender Email - The email address of the sender of the message. Example value: [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/senderId> ;
    sh:name "sender id" ;
    sh:description "Sender ID - The unique identifier assigned to the message sender. Example value: 987654321" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/senderName> ;
    sh:name "sender name" ;
    sh:description "Sender Name - The full name of the sender of the message. Example value: John Smith" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/sentAt> ;
    sh:name "sent at" ;
    sh:description "Message Sent Date - The time the message was sent. Formatted according to the ISO 8601 international standard . Example value: 2019-09-20 04:03:22" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/skus> ;
    sh:name "skus" ;
    sh:description "Attributed SKUs - The SKU identifiers of products mentioned in the message. Returned as an array of strings. Example value: [\"GP-BACK-02\", \"A02630\", \"POP200NAVY\"]" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/subject> ;
    sh:name "subject" ;
    sh:description "Message Subject - The subject line of the message. Example value: Wholesale Account Inquiry" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/ticketId> ;
    sh:name "ticket id" ;
    sh:description "Ticket ID - The unique identifier for the customer support ticket associated with the message. Example value: 68845382" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsMessage/via> ;
    sh:name "via" ;
    sh:description "Message Sent Via - The communication platform or method used to send the message. Example value: rule , helpdesk , email" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Cs Ticket
tw:CsTicketShape a sh:NodeShape ;
  sh:targetClass tw:CsTicket ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the CS ticket event occurred (e.g. the creation date for ticket-created events, the closed date for ticket-closed events). Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/assigneeUserId> ;
    sh:name "assignee user id" ;
    sh:description "Assigned Agent ID - The unique identifier of the assigned support agent. Example value: 161343771" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/assigneeUserName> ;
    sh:name "assignee user name" ;
    sh:description "Assigned Agent Name - The full name of the assigned support agent. Example value: Jane Doe" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The channel through which the ticket was created. Example values: facebook-comment , instagram-mention , email , chat" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/closedAt> ;
    sh:name "closed at" ;
    sh:description "Ticket Closed Date - The time the ticket was closed. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/createdAt> ;
    sh:name "created at" ;
    sh:description "Ticket Created Date - The time the ticket was created. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/customerEmail> ;
    sh:name "customer email" ;
    sh:description "Customer Email - The email address of the customer. Example value: [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/customerId> ;
    sh:name "customer id" ;
    sh:description "Customer ID - The unique identifier assigned to the customer. Example value: 123456789" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/eventType> ;
    sh:name "event type" ;
    sh:description "Event Type - The type of event related to the ticket. Example values: ticket-closed , ticket-reopened" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/fromAgent> ;
    sh:name "from agent" ;
    sh:description "From Agent - True if the event was initiated by a support agent. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/language> ;
    sh:name "language" ;
    sh:description "Language - The language used in the ticket. Example values: en , it , ru" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/priority> ;
    sh:name "priority" ;
    sh:description "Ticket Priority - The priority level of the ticket. Example values: normal , high" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/status> ;
    sh:name "status" ;
    sh:description "Ticket Status - The current status of the ticket. Example values: open , closed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/subject> ;
    sh:name "subject" ;
    sh:description "Subject - The subject line of the first message in the ticket. Example values: 4 native ways to sell on TikTok Shop , Re: Thanks For Reaching Out To Us!" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/surveyComment> ;
    sh:name "survey comment" ;
    sh:description "Survey Comment - The customer's feedback from the post-resolution survey. Example value: Excellent and quick customer service!" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/surveyScore> ;
    sh:name "survey score" ;
    sh:description "Survey Score - The rating score given by the customer in a post-resolution survey. Example values: 1 , 3 , 5" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/surveyScoredAt> ;
    sh:name "survey scored at" ;
    sh:description "Survey Scored Date - The time the survey was scored. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/surveySentAt> ;
    sh:name "survey sent at" ;
    sh:description "Survey Sent Date - The time the survey was sent to the customer. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/tags> ;
    sh:name "tags" ;
    sh:description "Tags - Tags associated with the ticket, used for categorization. Example value: [{\"id\":\"174296\",\"name\":\"GMAIL-PROMOTIONS\"},{\"id\":\"585614\",\"name\":\"auto-close\"},{\"id\":\"585616\",\"name\":\"non-support-related\"}]" ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Ticket Updated Date - The time the ticket was last updated. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Custom Category
tw:CustomCategoryShape a sh:NodeShape ;
  sh:targetClass tw:CustomCategory ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategory/aiRule> ;
    sh:name "ai rule" ;
    sh:description "AI Rule - The AI rule used to classify campaigns into subcategories. Example values: customers aged 18-24 , campaigns targeting South America , branded search ads , influencer collaborations" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategory/categoryId> ;
    sh:name "category id" ;
    sh:description "Category ID - The ID of the category (grouping dimension, e.g., Tactic, Geography, Product). Example value: 09f58489-713a-4866-bce4-1040c9a1ee71" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategory/categoryName> ;
    sh:name "category name" ;
    sh:description "Category Name - The name of the category (grouping dimension). Example values: Geography , Tactic , Funnel" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategory/createdAt> ;
    sh:name "created at" ;
    sh:description "Subcategory Created Date - The date the subcategory was created. Example value: 2025-09-08" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategory/excludeProviders> ;
    sh:name "exclude providers" ;
    sh:description "Exclude Providers - The providers excluded from the subcategory. Example values: facebook-ads , google-ads , tiktok-ads" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategory/includeProviders> ;
    sh:name "include providers" ;
    sh:description "Include Providers - The providers included in the subcategory. Example values: facebook-ads , google-ads , tiktok-ads" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategory/subCategoryId> ;
    sh:name "sub category id" ;
    sh:description "Subcategory ID - The ID of the subcategory. Example value: 46c71065-5bbb-4ab6-81ee-39078b23cca0" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategory/subCategoryName> ;
    sh:name "sub category name" ;
    sh:description "Subcategory Name - The name of the subcategory (specific group within a category). Example values: 18-24 , Peru , Meta Prospecting , Google PMAX" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Custom Category Mapping
tw:CustomCategoryMappingShape a sh:NodeShape ;
  sh:targetClass tw:CustomCategoryMapping ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategoryMapping/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The ID of the campaign. Example value: 1234567890" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategoryMapping/campaignName> ;
    sh:name "campaign name" ;
    sh:description "Campaign Name - The name of the campaign. Example values: Catalog Retargeting , US Generic Search , Breakfast of Champions Campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategoryMapping/categoryId> ;
    sh:name "category id" ;
    sh:description "Category ID - The ID of the category (grouping dimension, e.g., Tactic, Geography, Product). Example value: 09f58489-713a-4866-bce4-1040c9a1ee71" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategoryMapping/createdAt> ;
    sh:name "created at" ;
    sh:description "Mapping Created Date - The date the campaign was mapped to the subcategory. Example value: 2025-09-08" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategoryMapping/providerId> ;
    sh:name "provider id" ;
    sh:description "Channel - The channel or platform where the campaign runs. Example values: facebook-ads , google-ads , tiktok-ads" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomCategoryMapping/subCategoryId> ;
    sh:name "sub category id" ;
    sh:description "Subcategory ID - The ID of the subcategory assigned to the campaign. Example value: 46c71065-5bbb-4ab6-81ee-39078b23cca0" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Custom Spend
tw:CustomSpendShape a sh:NodeShape ;
  sh:targetClass tw:CustomSpend ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the custom expense was incurred, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the custom expense was incurred. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The name or ID of the campaign the custom expense is associated with. Note: This may match an existing campaign ID in an integrated ad platform. Edit in Cost Settings > Custom Expenses. Example values: 23852438666180053 , 531011533 , 20620285829" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/category> ;
    sh:name "category" ;
    sh:description "Custom Expense Category - The category of the custom expense. Edit in Cost Settings > Custom Expenses. Example values: Ad Spend , Cashback Booked , Returns Estimate" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The channel or platform related to the custom expense. Note: This may match an existing integrated ad channel. Edit in Cost Settings > Custom Expenses. Example values: facebook , social , microsoft" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/isAdSpend> ;
    sh:name "is ad spend" ;
    sh:description "Is Ad Spend - True if the custom expense is considered an advertising expenditure. Edit in Cost Settings Custom Expenses." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/isRecurring> ;
    sh:name "is recurring" ;
    sh:description "Is Recurring - True if the custom expense is recurring. Edit in Cost Settings > Custom Expenses. Note: Only relevant for fixed expenses. NULL for variable expenses." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/metric> ;
    sh:name "metric" ;
    sh:description "Variable Expense Base Metric - The metric upon which the variable custom expense will be based. Edit in Cost Settings > Custom Expenses. Note: Only relevant for variable expenses. NULL for fixed expenses. Example values: Blended Ads , COGS , Orders" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/rate> ;
    sh:name "rate" ;
    sh:description "Variable Expense Rate - The rate applied to the base metric to calculate the custom expense. Edit in Cost Settings > Custom Expenses, in the percent field. Note: Only relevant for variable expenses. NULL for fixed expenses. Example value: 0.02" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/title> ;
    sh:name "title" ;
    sh:description "Custom Expense Title - The title of the custom expense. Edit in Cost Settings > Custom Expenses. Example values: Podcast , Influencer" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/amount> ;
    sh:name "amount" ;
    sh:description "Custom Expense Amount - The amount of the expense. By default shown in the shop's currency. Note: For fixed expenses, the amount is set directly by the seller; for variable expenses, the amount is calculated based on the base metric and rate set by the seller, combined with shop prices from the sales, ad, or email/SMS platform (e.g. Shopify, Facebook, Klaviyo). Edit in Cost Settings > Custom Expenses." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/customAdSpend> ;
    sh:name "custom ad spend" ;
    sh:description "Custom Ad Spend - The total amount of custom expenses marked as ad spend." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomSpend/customExclAdSpend> ;
    sh:name "custom excl ad spend" ;
    sh:description "Custom Expenses Excluding Ad Spend - The total amount of custom expenses, excluding those marked as ad spend." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Journey
tw:CustomerJourneyShape a sh:NodeShape ;
  sh:targetClass tw:CustomerJourney ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the customer journey event occurred. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/adId> ;
    sh:name "ad id" ;
    sh:description "Ad ID - The ID of the ad associated with the customer journey event. Example value: 643742158069" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/adImageUrl> ;
    sh:name "ad image url" ;
    sh:description "Ad Image URL - The thumbnail image URL of the ad associated with the customer journey event. Example value: https://www.example.com/ad-image.jpg" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/adName> ;
    sh:name "ad name" ;
    sh:description "Ad Name - The name of the ad associated with the customer journey event. Example values: Kids Ad 1 , Read Our Latest Blog 03/12/2023 , 8 best fall looks" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/adsetName> ;
    sh:name "adset name" ;
    sh:description "Ad Set Name - The name of the ad set associated with the customer journey event. Example values: Broad Audience , Bracelets , Wellness" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/attributionWindow> ;
    sh:name "attribution window" ;
    sh:description "Attribution Window - The time frame for attributing conversions to the ad. By default lifetime . Example values: 1_day , 7_days , 14_days , 28_days , lifetime" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/browser> ;
    sh:name "browser" ;
    sh:description "Web Browser - The web browser of the session where the customer journey event originated. Example values: Chrome , Firefox , Safari" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The unique ID of the campaign associated with the customer journey event. Example value: 1234567890" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/campaignName> ;
    sh:name "campaign name" ;
    sh:description "Campaign Name - The name of the campaign associated with the customer journey event. Example values: Catalog Retargeting , US Generic Search , Breakfast of Champions Campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/checkoutEventType> ;
    sh:name "checkout event type" ;
    sh:description "Checkout Event Type - The event type recorded by Triple Pixel, corresponding to the step of the checkout funnel. Example values: payment , address , checkout , contact , shipping" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/country> ;
    sh:name "country" ;
    sh:description "Customer Country - The country associated with the customer journey event. For orders and subscriptions, this is the shipping address country. For page visits, add-to-carts, and conversions, this is the visitor's country based on geolocation. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/customerId> ;
    sh:name "customer id" ;
    sh:description "Customer ID - The unique customer ID associated with the customer journey event. Assigned by the main sales platform. Example value: 5209503793328" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/device> ;
    sh:name "device" ;
    sh:description "Device - The type of device used by the customer during their website session. Example values: mobile , desktop , tablet , wearable" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/discountCode> ;
    sh:name "discount code" ;
    sh:description "Discount Code - The discount code for the order associated with the customer journey event. Assigned by the seller in the main sales platform. Example values: WELCOME10 , Replacement for defective item , 807QRWMNK2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/email> ;
    sh:name "email" ;
    sh:description "Customer Email - The customer’s email address. Example value: [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/eventName> ;
    sh:name "event name" ;
    sh:description "Event Name - The name assigned to the custom conversion event. Example values: form_fill , start_quiz , quiz_complete , order_sample , answer_question , request_consultation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/eventTime> ;
    sh:name "event time" ;
    sh:description "Event Timestamp - The exact timestamp when the customer journey event occurred. Formatted according to the ISO 8601 international standard . Example value: 2024-03-16T00:13:03" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/fulfillmentStatus> ;
    sh:name "fulfillment status" ;
    sh:description "Fulfillment Status - The order fulfillment status for the order associated with the customer journey event. Example values: fulfilled , partial , restocked" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/isNewCustomer> ;
    sh:name "is new customer" ;
    sh:description "Is New Customer - True if the order associated with the customer journey event is the customer's first. Possible values: true , false Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/itemsPurchased> ;
    sh:name "items purchased" ;
    sh:description "Items Purchased - Information about items purchased by the customer in the order associated with the customer journey event." ;
    sh:node tw:ItemsPurchasedShape ;
    sh:class tw:ItemsPurchased ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/leadClickTs> ;
    sh:name "lead click ts" ;
    sh:description "Lead Click Timestamp - The time of the ad click that led to the customer journey event. Formatted according to the ISO 8601 international standard . Example value: 2024-10-26 20:03:48" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/attributionModel> ;
    sh:name "attribution model" ;
    sh:description "Attribution Model - The attribution model used. By default Triple Attribution . Possible values: Total Impact , Triple Attribution , Triple Attribution + Views , Clicks & Views , Linear All , Linear Paid , First Click , Last Click" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/orderId> ;
    sh:name "order id" ;
    sh:description "Order ID - The unique order ID associated with the customer journey event. Assigned by the main sales platform. Example value: 4930225799243" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/orderName> ;
    sh:name "order name" ;
    sh:description "Order Name - The name of the order associated with the customer journey event. Assigned by the main sales platform. Example values: #2188464 , Ex-2163819-9" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/pageType> ;
    sh:name "page type" ;
    sh:description "Page Type - The type of page the customer interacted with during the customer journey event. Example values: product , collection , cart" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/pageViewEventId> ;
    sh:name "page view event id" ;
    sh:description "Page View Event ID - A unique ID that links to the parent page view associated with the customer journey event. This allows tracking of custom events as child actions within the context of the page they occurred on. Example value: 0m3uyt4g11owByF1cQ" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/phone> ;
    sh:name "phone" ;
    sh:description "Customer Phone - The customer's phone number. Example value: 18005550199" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/productId> ;
    sh:name "product id" ;
    sh:description "Product ID - The unique ID of the product in the order associated with the customer journey event. Example value: 7760518986312" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/productImage> ;
    sh:name "product image" ;
    sh:description "Product Image URL - The image URL of the product in the order associated with the customer journey event. Example value: https://cdn.shopify.com/s/files/1/prod1" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/productName> ;
    sh:name "product name" ;
    sh:description "Product Name - The name (or title) of the product in the order associated with the customer journey event. Example values: $20 USD Gift Card , Unisex Hoodie" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/queryParams> ;
    sh:name "query params" ;
    sh:description "URL Query Parameters - The query parameters contained in the URL associated with the customer journey event. Example values: {\"tw_adid\":\"83906898178855\", \"tw_campaign\":\"103306890\", \"tw_source\":\"bing\",\" utm_campaign\":\"Bing Shopping\", \"utm_content\":\"HERO SKU Summer Book Run\", \"utm_medium\":\"cpc\", \"utm_source\":\"bing\", \"utm_term\":\"1342506080190763\", \"variant\":\"44042133111001\"}" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/questions> ;
    sh:name "questions" ;
    sh:description "Survey Questions - Survey questions asked during the customer journey." ;
    sh:node tw:QuestionShape ;
    sh:class tw:Question ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/referrer> ;
    sh:name "referrer" ;
    sh:description "Referrer - The referrer platform of the ad associated with the customer journey event. Example values: shop.example.com , tiktok , google" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/sessionId> ;
    sh:name "session id" ;
    sh:description "Session ID - The unique session ID associated with the customer journey event. Assigned by Triple Pixel. Example value: cltlok4y634IRw62AZ_1710700966152" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/source> ;
    sh:name "source" ;
    sh:description "Source - The source of the customer journey event. Example values: snapchat-ads , klaviyo , google-ads , Direct" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/subscriptionId> ;
    sh:name "subscription id" ;
    sh:description "Subscription ID - The unique ID of the subscription associated with the customer journey event. Example value: 3521068" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/tags> ;
    sh:name "tags" ;
    sh:description "Tags - Tags for the order associated with the customer journey event. Assigned by the seller in the main sales platform. Example values: Upsell , Order Credits , discount_eligible" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/tripleId> ;
    sh:name "triple id" ;
    sh:description "Triple Pixel ID - The unique ID assigned by Triple Pixel event to track visitors across sessions, for the visitor associated with the customer journey event. Example value: cltlok4y634IRw62AZ" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/customerJourneyEventType> ;
    sh:name "customer journey event type" ;
    sh:description "Customer Journey Event Type - The customer journey event type. Example values: viewed_page , added_to_cart , placed_order , post_purchase_survey_submitted" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/url> ;
    sh:name "url" ;
    sh:description "URL - The URL the customer interacted with during the customer journey event. Example values: myshop.com/cart , myshop.com/products/my_product_07" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/discount> ;
    sh:name "discount" ;
    sh:description "Discount - The total discount applied to the order associated with the customer journey event. Example values: 41.99 , 7.49 , 71042.30" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/orderRevenue> ;
    sh:name "order revenue" ;
    sh:description "Order Revenue - The revenue from the order associated with the customer journey event. Example values: 25 , 253850.59" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/pageViewNumber> ;
    sh:name "page view number" ;
    sh:description "Page Views - The number of pages viewed during the customer journey event. Example values: 1 , 5 , 12" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/quantity> ;
    sh:name "quantity" ;
    sh:description "Quantity - The number of products added to the cart (for added_to_cart events) or the number of orders (for placed_order events). Example values: 1 , 3 , 15" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/totalPrice> ;
    sh:name "total price" ;
    sh:description "Total Price - The total price of the order associated with the customer journey event. Example value: 247.22" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourney/eventCount> ;
    sh:name "event count" ;
    sh:description "Customer Journey Events - The total number of customer journey events within the selected timeframe. Example values: 13 , 452 , 225,897" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Items Purchased
tw:ItemsPurchasedShape a sh:NodeShape ;
  sh:targetClass tw:ItemsPurchased ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourneyFields.ItemsPurchased/price> ;
    sh:name "price" ;
    sh:description "Price - The price of the purchased item in the order associated with the customer journey event. Example values: 40.59 , 10.99 , 24.50" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourneyFields.ItemsPurchased/productName> ;
    sh:name "product name" ;
    sh:description "Product Name - The name (or title) of the product purchased in the order associated with the customer journey event. Example values: $20 USD Gift Card , Unisex Hoodie" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourneyFields.ItemsPurchased/variantName> ;
    sh:name "variant name" ;
    sh:description "Variant Name - The name (or title) of the product variant purchased in the order associated with the customer journey event. Example values: Forest Green , M , iPhone 14 Pro" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourneyFields.ItemsPurchased/sku> ;
    sh:name "sku" ;
    sh:description "Stock Keeping Unit (SKU) - The stock keeping unit (SKU) of the product or variant purchased in the order associated with the customer journey event. Example values: SIL-RING-4445 , NVDPROTECTION03" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourneyFields.ItemsPurchased/quantity> ;
    sh:name "quantity" ;
    sh:description "Quantity - The quantity of items purchased in the order associated with the customer journey event. Example values: 1 , 5 , 200" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Question
tw:QuestionShape a sh:NodeShape ;
  sh:targetClass tw:Question ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourneyFields.Question/question> ;
    sh:name "question" ;
    sh:description "Survey Question - The question asked during the customer journey event. Example value: Which of the following led you to purchase today?" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerJourneyFields.Question/answer> ;
    sh:name "answer" ;
    sh:description "Survey Answer - The answer provided during the customer journey event. Example values: Exchange for a prior purchase , Youtube , QVC , Just decided to try them" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Segmentation Analytics
tw:CustomerSegmentationAnalyticsShape a sh:NodeShape ;
  sh:targetClass tw:CustomerSegmentationAnalytics ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/instanceEventDateEnd> ;
    sh:name "instance event date end" ;
    sh:description "Instance Event Date End - End of the segment instance window. Filters which segment instances (runs/snapshots) to include when building the customer list. Use with instance_event_date_start . Example value: 2025-08-31" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/instanceEventDateStart> ;
    sh:name "instance event date start" ;
    sh:description "Instance Event Date Start - Start of the segment instance window. Filters which segment instances (runs/snapshots) to include when building the customer list. Use with instance_event_date_end . Example value: 2025-08-01" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/pinnedEventDate> ;
    sh:name "pinned event date" ;
    sh:description "Pinned Event Date - The anchor date used to compare before/after segment instance windows. Example value: 2025-08-25" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/secondaryEventDateEnd> ;
    sh:name "secondary event date end" ;
    sh:description "Secondary Event Date End - End of the joined activity window. Filters joined activity pulled from tables other than the Customer Segmentation table (e.g. Orders, Pixel Orders). Use with secondary_event_date_start . Example value: 2025-09-01" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/secondaryEventDateStart> ;
    sh:name "secondary event date start" ;
    sh:description "Secondary Event Date Start - Start of the joined activity window. Filters joined activity pulled from tables other than the Customer Segmentation table (e.g. Orders, Pixel Orders). Use with secondary_event_date_end . Example value: 2025-08-01" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/segmentId> ;
    sh:name "segment id" ;
    sh:description "Segment ID - The unique identifier for a segment. Example value: 64b8f144256b30501b2ea1e0" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/customerIdentity> ;
    sh:name "customer identity" ;
    sh:description "Customer Identity - The identity of the customer in the segment (can be email or customer_id ). Example values: 67b076c419252e53fbc0841g , [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/customerIdentityType> ;
    sh:name "customer identity type" ;
    sh:description "Customer Identity Type - The type of identity the segment uses for this customer. Example values: email , customer_id" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/instanceEventDate> ;
    sh:name "instance event date" ;
    sh:description "Instance Event Date - The event date used for data from tables other than the Customer Segmentation table (e.g., Orders table, Pixel Orders table). Used in membership/instance joins. Formatted according to the ISO 8601 international standard. Example value: 2025-01-19 22:21:04" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/segmentName> ;
    sh:name "segment name" ;
    sh:description "Segment Name - The human-readable name of the segment. Example values: Fourth of July Sale , At least 3 orders , Jan Non Recent Active" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/_30DayListAttrition> ;
    sh:name "30day list attrition" ;
    sh:description "30-Day List Attrition - Number of customers who were in the segment 30 days before the pinned_event_date , and left the segment on the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/_30DayListGrowth> ;
    sh:name "30day list growth" ;
    sh:description "30-Day List Growth - Number of customers who were not in the segment 30 days before the pinned_event_date , and joined the segment on the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/_30DayListPersistence> ;
    sh:name "30day list persistence" ;
    sh:description "30-Day List Persistence - Count of customers who remained in the segment for at least 30 days (were active both 30 days before the pinned_event_date and on the pinned_event_date )." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/_30DayLoyalCustomers> ;
    sh:name "30day loyal customers" ;
    sh:description "30-Day Loyal Customers - Number of highly engaged customers who were active on both the start and end dates of a 31-day period and maintained 95% activity frequency (active on at least 29 out of 31 days)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/_30DayRecentJoiners> ;
    sh:name "30day recent joiners" ;
    sh:description "30-Day Recent Joiners - Number of customers who were not in the segment 30 days before the pinned_event_date but joined the segment within the last 29 days leading up to the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/adIdsLast7Days> ;
    sh:name "ad ids last7days" ;
    sh:description "Ad IDs (Last 7 Days) - Ad IDs for customers from the selected segment instances in the 7 days prior to the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/adIdsNext7Days> ;
    sh:name "ad ids next7days" ;
    sh:description "Ad IDs (Next 7 Days) - Ad IDs for customers from the selected segment instances in the 7 days after the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/aovLast7Days> ;
    sh:name "aov last7days" ;
    sh:description "AOV (Last 7 Days) - Average order value for customers from the selected segment instances in the 7 days prior to the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/aovNext7Days> ;
    sh:name "aov next7days" ;
    sh:description "AOV (Next 7 Days) - Average order value for customers from the selected segment instances in the 7 days after the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/campaignIdsLast7Days> ;
    sh:name "campaign ids last7days" ;
    sh:description "Campaign IDs (Last 7 Days) - Campaign IDs for customers from the selected segment instances in the 7 days prior to the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/campaignIdsNext7Days> ;
    sh:name "campaign ids next7days" ;
    sh:description "Campaign IDs (Next 7 Days) - Campaign IDs for customers from the selected segment instances in the 7 days after the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/channelsLast7Days> ;
    sh:name "channels last7days" ;
    sh:description "Channels (Last 7 Days) - Pixel-attributed channels for customers from the selected segment instances in the 7 days prior to the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/channelsNext7Days> ;
    sh:name "channels next7days" ;
    sh:description "Channels (Next 7 Days) - Pixel-attributed channels for customers from the selected segment instances in the 7 days after the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/citiesLast7Days> ;
    sh:name "cities last7days" ;
    sh:description "Cities (Last 7 Days) - Shipping cities for customers from the selected segment instances in the 7 days prior to the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/citiesNext7Days> ;
    sh:name "cities next7days" ;
    sh:description "Cities (Next 7 Days) - Shipping cities for customers from the selected segment instances in the 7 days after the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/countriesLast7Days> ;
    sh:name "countries last7days" ;
    sh:description "Countries (Last 7 Days) - Shipping countries for customers from the selected segment instances in the 7 days prior to the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/countriesNext7Days> ;
    sh:name "countries next7days" ;
    sh:description "Countries (Next 7 Days) - Shipping countries for customers from the selected segment instances in the 7 days after the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/orderTagsLast7Days> ;
    sh:name "order tags last7days" ;
    sh:description "Order Tags (Last 7 Days) - Order tags for customers from the selected segment instances in the 7 days prior to the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/orderTagsNext7Days> ;
    sh:name "order tags next7days" ;
    sh:description "Order Tags (Next 7 Days) - Order tags for customers from the selected segment instances in the 7 days after the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/productIdsLast7Days> ;
    sh:name "product ids last7days" ;
    sh:description "Product IDs (Last 7 Days) - Product IDs purchased by customers from the selected segment instances in the 7 days prior to the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/productIdsNext7Days> ;
    sh:name "product ids next7days" ;
    sh:description "Product IDs (Next 7 Days) - Product IDs purchased by customers from the selected segment instances in the 7 days after the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/purchaseFrequencyLast7Days> ;
    sh:name "purchase frequency last7days" ;
    sh:description "Purchase Frequency (Last 7 Days) - Average number of orders per customer from the selected segment instances in the 7 days prior to the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/purchaseFrequencyNext7Days> ;
    sh:name "purchase frequency next7days" ;
    sh:description "Purchase Frequency (Next 7 Days) - Average number of orders per customer from the selected segment instances in the 7 days after the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/revenueLast7Days> ;
    sh:name "revenue last7days" ;
    sh:description "Revenue (Last 7 Days) - Total order revenue generated by customers from the selected segment instances in the 7 days prior to the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentationAnalytics/revenueNext7Days> ;
    sh:name "revenue next7days" ;
    sh:description "Revenue (Next 7 Days) - Total order revenue generated by customers from the selected segment instances in the 7 days after the pinned_event_date ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Segmentation
tw:CustomerSegmentationShape a sh:NodeShape ;
  sh:targetClass tw:CustomerSegmentation ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/customerIdentity> ;
    sh:name "customer identity" ;
    sh:description "Customer Identity - The identity of the customer in the segment. Can be either email or customer_id type. Example values: [email protected] , 5209503793328" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/instanceCreatedDate> ;
    sh:name "instance created date" ;
    sh:description "Instance Created Date - The timestamp when the segment instance (run/snapshot) was generated. Example value: 2025-08-25 11:08:39" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/schedule> ;
    sh:name "schedule" ;
    sh:description "Schedule - The recurring schedule for running the segment. Example values: once_a_day , once_every_other_day" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/segmentBy> ;
    sh:name "segment by" ;
    sh:description "Segment By - The audience type used to group customers in the segment. Example value: customer_id , email" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/segmentCreatedDate> ;
    sh:name "segment created date" ;
    sh:description "Segment Created Date - The date when the segment was originally created. Example value: 2023-07-20 08:33:08" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/segmentId> ;
    sh:name "segment id" ;
    sh:description "Segment ID - The unique identifier for a segment. Example value: 64b8f144256b30501b2ea1e0" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/segmentInstanceId> ;
    sh:name "segment instance id" ;
    sh:description "Segment Instance ID - The unique identifier for a specific segment instance (run/snapshot). Example value: 64b8f144256b30501b2ea1e0_2025_08_25" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/segmentName> ;
    sh:name "segment name" ;
    sh:description "Segment Name - The human-readable name of the segment, Example values: Fourth of July Sale , At least 3 orders , Jan Non Recent Active" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/numOfCustomers> ;
    sh:name "num of customers" ;
    sh:description "Number of Customers - The total number of unique customers included in the segment instance." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/numOfOrders> ;
    sh:name "num of orders" ;
    sh:description "Number of Orders - The total number of orders placed by customers in the segment during the relevant time window." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSegmentation/totalRevenue> ;
    sh:name "total revenue" ;
    sh:description "Total Revenue - The total revenue generated by customers in the segment during the relevant time window." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer Support Agg Metrics
tw:CustomerSupportAggMetricsShape a sh:NodeShape ;
  sh:targetClass tw:CustomerSupportAggMetrics ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSupportAggMetrics/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date of the customer support event. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSupportAggMetrics/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the customer support event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSupportAggMetrics/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the customer support event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSupportAggMetrics/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the customer support event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSupportAggMetrics/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the customer support event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSupportAggMetrics/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the customer support event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSupportAggMetrics/medianFirstResponseTime> ;
    sh:name "median first response time" ;
    sh:description "Median First Response Time - The median time taken for the first response to a customer support ticket during the period selected." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSupportAggMetrics/medianResolutionTime> ;
    sh:name "median resolution time" ;
    sh:description "Median Resolution Time - The median time taken to resolve a customer support ticket during the period selected." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSupportAggMetrics/ticketsClosed> ;
    sh:name "tickets closed" ;
    sh:description "Tickets Closed - The total number of tickets closed during the period selected." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSupportAggMetrics/ticketsCreated> ;
    sh:name "tickets created" ;
    sh:description "Tickets Created - The total number of new tickets created during the period selected." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CustomerSupportAggMetrics/ticketsReplied> ;
    sh:name "tickets replied" ;
    sh:description "Tickets Replied - The total number of tickets with at least one reply during the period selected." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Customer
tw:CustomerShape a sh:NodeShape ;
  sh:targetClass tw:Customer ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/address1> ;
    sh:name "address1" ;
    sh:description "Address Line 1 - The first line of the customer's default address. Example value: 764 Example Dr." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/address2> ;
    sh:name "address2" ;
    sh:description "Address Line 2 - The second line of the customer's default address. Example value: Apt. 603" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/city> ;
    sh:name "city" ;
    sh:description "City - The city of the customer's default address. Example value: San Francisco" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/coordinatesValidated> ;
    sh:name "coordinates validated" ;
    sh:description "Coordinates Validated - Indicates whether the customer coordinates were successfully validated. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/country> ;
    sh:name "country" ;
    sh:description "Country - The country of the customer's default address. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/countryCode> ;
    sh:name "country code" ;
    sh:description "Country Code - The country code of the customer's default address. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/createdAt> ;
    sh:name "created at" ;
    sh:description "Customer Created Date - The time at which the customer record was created. Formatted according to the ISO 8601 international standard . Example value: 2019-05-22 21:01:29" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/customerId> ;
    sh:name "customer id" ;
    sh:description "Customer ID - The unique identifier for the customer, assigned by the main sales platform. Example value: 5209503793328" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/customerIdKey> ;
    sh:name "customer id key" ;
    sh:description "Customer ID Key - Join key for connecting this table to other tables (e.g. Orders or Pixel Orders tables). Contains customer_id for Shopify shops and email_address for non-Shopify shops (e.g., Amazon, BigCommerce, WooCommerce). Example values: 5209503793328 , [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/customerTags> ;
    sh:name "customer tags" ;
    sh:description "Customer Tags - Tags associated with the customer, set in the main sales platform. Example values: Active Subscriber , PayPal_user , Login with FB" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/displayName> ;
    sh:name "display name" ;
    sh:description "Display Name - The display name of the customer. Example value: John Doe" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/emailAddress> ;
    sh:name "email address" ;
    sh:description "Email Address - The primary email address associated with the customer’s account. Example value: [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/emailMarketingConsentCollectedFrom> ;
    sh:name "email marketing consent collected from" ;
    sh:description "Email Marketing Consent Collected From - The source from which the customer's email marketing consent was collected." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/emailMarketingConsentOptInLevel> ;
    sh:name "email marketing consent opt in level" ;
    sh:description "Email Marketing Consent Opt-In Level - The level of consent provided by the customer for email marketing. Example values: SINGLE_OPT_IN , UNKNOWN" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/emailMarketingConsentStatus> ;
    sh:name "email marketing consent status" ;
    sh:description "Email Marketing Consent Status - The current status of the customer's email marketing consent. Example values: NEVER_SUBSCRIBED , NOT_SUBSCRIBED , UNSUBSCRIBED , SUBSCRIBED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/emailMarketingConsentUpdatedAt> ;
    sh:name "email marketing consent updated at" ;
    sh:description "Email Marketing Consent Updated Date - The time at which the email marketing consent was updated. Formatted according to the ISO 8601 international standard . Example value: 2019-05-22 21:01:29" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/firstName> ;
    sh:name "first name" ;
    sh:description "First Name - The customer's first name. Example value: John" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/lastName> ;
    sh:name "last name" ;
    sh:description "Last Name - The customer's last name. Example value: Doe" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/lastOrderId> ;
    sh:name "last order id" ;
    sh:description "Last Order ID - The ID of the most recent order from the customer, according to the main sales platform. Example value: 4930225799243" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/latitude> ;
    sh:name "latitude" ;
    sh:description "Latitude - The latitude associated with the customer's location. Example value: 34.1413713" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/locale> ;
    sh:name "locale" ;
    sh:description "Locale - The locale setting associated with the customer's account. Example values: en-US , en_GB , de" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/longitude> ;
    sh:name "longitude" ;
    sh:description "Longitude - The longitude associated with the customer's location. Example value: -118.8639169" ;
    sh:datatype xsd:decimal ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields - Custom key–value pairs attached to each customer record, used to store additional structured or unstructured data beyond standard fields." ;
    sh:node tw:CustomerMetafieldShape ;
    sh:class tw:CustomerMetafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/note> ;
    sh:name "note" ;
    sh:description "Note - Note attached to the customer profile." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/phone> ;
    sh:name "phone" ;
    sh:description "Phone - The customer's phone number. Example value: 18005550199" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/platform> ;
    sh:name "platform" ;
    sh:description "Platform - The platform associated with the customer record. Example values: shopify , klaviyo" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/productSubscriberStatus> ;
    sh:name "product subscriber status" ;
    sh:description "Product Subscriber Status - The customer's subscription status for products. Example values: ACTIVE , PAUSED , CANCELLED , NEVER_SUBSCRIBED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/smsMarketingConsentCollectedFrom> ;
    sh:name "sms marketing consent collected from" ;
    sh:description "SMS Marketing Consent Collected From - The source from which the customer's SMS marketing consent was collected." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/smsMarketingConsentOptInLevel> ;
    sh:name "sms marketing consent opt in level" ;
    sh:description "SMS Marketing Consent Opt-In Level - The level of consent provided by the customer for SMS marketing. Example values: SINGLE_OPT_IN , CONFIRMED_OPT_IN" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/smsMarketingConsentUpdatedAt> ;
    sh:name "sms marketing consent updated at" ;
    sh:description "SMS Marketing Consent Updated Date - The time at which the sms marketing consent was updated. Formatted according to the ISO 8601 international standard . Example value: 2019-05-22 21:01:29" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/state> ;
    sh:name "state" ;
    sh:description "State - The state or province of the customer's default address. Example values: Oregon , British Colombia , Michigan" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/stateCode> ;
    sh:name "state code" ;
    sh:description "State Code - The state or province code of the customer's default address. Example values: OR , BC , MI" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/statisticPredictedSpendTier> ;
    sh:name "statistic predicted spend tier" ;
    sh:description "Predicted Spend Tier - A predicted tier for how much the customer is likely to spend. Example values: LOW , MEDIUM , HIGH" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/status> ;
    sh:name "status" ;
    sh:description "Customer Status - The current status of the customer in the system. Example values: INVITED , ENABLED , DISABLED , UNSUBSCRIBED , NEVER_SUBSCRIBED , DECLINED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/taxExempt> ;
    sh:name "tax exempt" ;
    sh:description "Tax Exempt - Indicates whether the customer is exempt from tax. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/validEmailAddress> ;
    sh:name "valid email address" ;
    sh:description "Valid Email Address - Whether the email address has passed a validation check. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/verifiedEmailAddress> ;
    sh:name "verified email address" ;
    sh:description "Verified Email Address - Whether the email address has been verified by the platform. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/zip> ;
    sh:name "zip" ;
    sh:description "Zip/Postal Code - The zip or postal code of the customer's defaults address. Example values: 48104 , 18235-2239 , CH25 9BH" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/amountSpent> ;
    sh:name "amount spent" ;
    sh:description "Amount Spent - The total amount spent by the customer." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customer/numberOfOrders> ;
    sh:name "number of orders" ;
    sh:description "Number of Orders - The total number of orders placed by the customer." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Metafield
tw:CustomerMetafieldShape a sh:NodeShape ;
  sh:targetClass tw:CustomerMetafield ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customers.Metafield/metafieldId> ;
    sh:name "metafield id" ;
    sh:description "Metafield ID - The unique identifier of the metafield record. Example values: 44187839136031" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customers.Metafield/key> ;
    sh:name "key" ;
    sh:description "Metafield Key - The unique key of the metafield within its namespace, indicating what data it holds. Example values: promised_delivery_date , zone , agree_to_terms" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customers.Metafield/value> ;
    sh:name "value" ;
    sh:description "Metafield Value - The raw stored value of the metafield. Format depends on the metafield type (e.g., text, date, boolean, JSON). Example values: 2025-11-10 , true , #241194 , 5a" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customers.Metafield/metafieldNamespace> ;
    sh:name "metafield namespace" ;
    sh:description "Metafield Namespace - Logical grouping used to organize metafields by source or purpose. Example values: custom , klaviyo , checkoutblocks" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customers.Metafield/metafieldType> ;
    sh:name "metafield type" ;
    sh:description "Metafield Type - The data type of the metafield value (e.g., text, date, boolean, JSON, reference). Example values: date , boolean , json , single_line_text_field , customer_reference" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customers.Metafield/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Metafield Updated Date - When the metafield was last updated, in shop time zone. Example value: 2025-10-21 07:08:01" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Customers.Metafield/createdAt> ;
    sh:name "created at" ;
    sh:description "Metafield Created Date - When the metafield was first created, in shop time zone. Example value: 2025-10-21 07:08:01" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Emailsms Setting
tw:EmailsmsSettingShape a sh:NodeShape ;
  sh:targetClass tw:EmailsmsSetting ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/campaignArchived> ;
    sh:name "campaign archived" ;
    sh:description "Is Campaign Archived - True if the campaign has been archived. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/campaignCreatedAt> ;
    sh:name "campaign created at" ;
    sh:description "Campaign Creation Date - The time the campaign was created. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The unique ID of the email/SMS campaign, assigned by the email/SMS platform. Example value: 01G2MRY5AF2A4QFJMS5EF8X2MW" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/campaignName> ;
    sh:name "campaign name" ;
    sh:description "Campaign Name - The name of the email/SMS campaign. Example values: Fall Colors Launch , Father's Day Sale 50% Off" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/campaignScheduledAt> ;
    sh:name "campaign scheduled at" ;
    sh:description "Campaign Scheduled Date - The time the campaign was scheduled to be sent. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/campaignSendDate> ;
    sh:name "campaign send date" ;
    sh:description "campaign_send_date" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/campaignSendTime> ;
    sh:name "campaign send time" ;
    sh:description "Campaign Sent Date - The time the campaign was sent to recipients. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/campaignStatus> ;
    sh:name "campaign status" ;
    sh:description "Campaign Status - The status of the campaign associated with the email/SMS. Example values: Sent , Cancelled" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/campaignUpdatedAt> ;
    sh:name "campaign updated at" ;
    sh:description "Campaign Updated Date - The time the campaign was last updated. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform used to send email/SMS. Example values: klaviyo , smsbump" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/channelType> ;
    sh:name "channel type" ;
    sh:description "Messaging Channel Type - The messaging channel used to deliver the communication. Example values: email , sms , push" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowActionArchived> ;
    sh:name "flow action archived" ;
    sh:description "Is Flow Action Archived - True if the specific action within an automation flow has been archived. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowActionId> ;
    sh:name "flow action id" ;
    sh:description "Flow Action ID - The unique ID for a specific action within an automation flow. Assigned by the email/SMS platform. Example value: 51670312" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowActionName> ;
    sh:name "flow action name" ;
    sh:description "Flow Action Name - The name of the specific action within an automation flow. Example values: SEND_EMAIL , SEND_SMS , AB_TEST , TIME_DELAY , WEBHOOK" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowActionStatus> ;
    sh:name "flow action status" ;
    sh:description "Flow Action Status - The status of a specific action within an automation flow. Example values: draft , live , manual" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowActionUpdatedAt> ;
    sh:name "flow action updated at" ;
    sh:description "Flow Action Updated Date - The time the flow action was updated. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowArchived> ;
    sh:name "flow archived" ;
    sh:description "Is Flow Archived - True if the automation flow has been archived. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowCreatedAt> ;
    sh:name "flow created at" ;
    sh:description "Flow Created Date - The time the automation flow was created. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowId> ;
    sh:name "flow id" ;
    sh:description "Flow ID - The unique ID for the automation flow. Assigned by the email/SMS platform. Example value: YuNWdc" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowName> ;
    sh:name "flow name" ;
    sh:description "Flow Name - The name of the automation flow. Example value: Abandoned cart reminder: 1-3 days , Joined Membership" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowStatus> ;
    sh:name "flow status" ;
    sh:description "Flow Status - The status of the automation flow. Example values: draft , live , manual" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowTriggerIsTw> ;
    sh:name "flow trigger is tw" ;
    sh:description "Flow Trigger Is Triple Whale - True if the flow was triggered by a Triple Whale (Sonar) metric or event. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowTriggerMetricId> ;
    sh:name "flow trigger metric id" ;
    sh:description "Flow Trigger Metric ID - The ID of the metric or event that triggered the flow. Example value: Lm72Qs" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowTriggerMetricName> ;
    sh:name "flow trigger metric name" ;
    sh:description "Flow Trigger Metric Name - The name of the metric or event that triggered the flow. Example values: Checkout Started , Added to Cart , Abandoned Cart , Fulfilled Order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowTriggerOrganization> ;
    sh:name "flow trigger organization" ;
    sh:description "Flow Trigger Organization - The platform where the flow trigger originated. Example values: Shopify , API , Klaviyo , Triple Whale" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowTriggerSonarEnabled> ;
    sh:name "flow trigger sonar enabled" ;
    sh:description "Flow Trigger Sonar Enabled - True if Sonar is enabled for this flow trigger. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/flowUpdatedAt> ;
    sh:name "flow updated at" ;
    sh:description "Flow Updated Date - The time the automation flow was last updated. Formatted according to the ISO 8601 international standard . Example value: 2019-04-15 08:26:00" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/messageCopy> ;
    sh:name "message copy" ;
    sh:description "Message Copy - The full text content of the email message body, including dynamic variables and template tags used for personalization, embedded links, images, and call-to-action buttons. Example value: 'Can't view this email? {% web_view %} Shop our latest collection! [https://example.com/new-arrivals] Get 20% off your first order with code WELCOME20. {% unsubscribe %}'" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/messageId> ;
    sh:name "message id" ;
    sh:description "Message ID - The unique ID for the individual message sent as part of a campaign or flow. Assigned by the email/SMS platform. Example value: SDiqmK" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/messageName> ;
    sh:name "message name" ;
    sh:description "Message Name - The name of the individual message sent. Example value: Welcome Series: Email 2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/messagePreviewText> ;
    sh:name "message preview text" ;
    sh:description "Message Preview Text - The short snippet of text shown alongside the subject line in the recipient’s inbox, offering a preview of the message content. Example value: Get 20% off your first order – limited time only!" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/messageSubject> ;
    sh:name "message subject" ;
    sh:description "Message Subject - The subject line of the email message, as displayed in the recipient's inbox. Example value: New Fall Collection Just Dropped" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/messageTemplateHtmlUrl> ;
    sh:name "message template html url" ;
    sh:description "Message Template HTML URL - The URL of the hosted HTML template for the email message, fully formatted as rendered for recipients. Example value: https://storage.googleapis.com/email-templates/klaviyo/12345/template.html" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/reportType> ;
    sh:name "report type" ;
    sh:description "Report Type - The type of report generated. Example values: flow , campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/clicksUnique> ;
    sh:name "clicks unique" ;
    sh:description "Clicks - The total number of unique clicks on links within the email/SMS." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/conversionValue> ;
    sh:name "conversion value" ;
    sh:description "Conversion Value - The total value of conversions for the email/SMS campaign / flow." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/conversions> ;
    sh:name "conversions" ;
    sh:description "Conversions - The total number of conversions for the email/SMS campaign / flow." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/delivered> ;
    sh:name "delivered" ;
    sh:description "Delivered Messages - The total number of messages successfully delivered to the targeted recipient." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/opensUnique> ;
    sh:name "opens unique" ;
    sh:description "Opens - The total number of unique email opens." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.EmailsmsSetting/recipients> ;
    sh:name "recipients" ;
    sh:description "Recipients - The total number of intended recipients for the email/SMS campaign." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Emailsm
tw:EmailsmShape a sh:NodeShape ;
  sh:targetClass tw:Emailsm ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the email/SMS action (e.g. sent, opened, received) occurred, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the email/SMS action (e.g. sent, opened, received) occurred. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the email/SMS action occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the email/SMS action occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the email/SMS action occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the email/SMS action occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the email/SMS action occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The unique ID of the email/SMS campaign, assigned by the email/SMS platform. Example value: 01G2MRY5AF2A4QFJMS5EF8X2MW" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/campaignName> ;
    sh:name "campaign name" ;
    sh:description "Campaign Name - The name of the email/SMS campaign. Example values: Fall Colors Launch , Father's Day Sale 50% Off" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/campaignStatus> ;
    sh:name "campaign status" ;
    sh:description "Campaign Status - The status of the campaign associated with the email/SMS. Example value: Sent , Cancelled" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform used to send email/SMS. Example values: klaviyo , Smsbump" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/channelType> ;
    sh:name "channel type" ;
    sh:description "Messaging Channel Type - The messaging channel used to deliver the communication. Example values: email , sms , push" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/flowActionId> ;
    sh:name "flow action id" ;
    sh:description "Flow Action ID - The unique ID for a specific action within an automation flow. Assigned by the email/SMS platform. Example value: 49497165" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/flowActionName> ;
    sh:name "flow action name" ;
    sh:description "Flow Action Name - The name of the specific action within an automation flow. Example values: SEND_EMAIL , SEND_SMS , AB_TEST , TIME_DELAY , WEBHOOK" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/flowActionStatus> ;
    sh:name "flow action status" ;
    sh:description "Flow Action Status - The status of a specific action within an automation flow. Example values: draft , live , manual" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/flowId> ;
    sh:name "flow id" ;
    sh:description "Flow ID - The unique ID for the automation flow. Assigned by the email/SMS platform. Example value: 726935" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/flowName> ;
    sh:name "flow name" ;
    sh:description "Flow Name - The name of the automation flow. Example value: Abandoned cart reminder: 1-3 days , Joined Membership" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/flowStatus> ;
    sh:name "flow status" ;
    sh:description "Flow Status - The status of the automation flow. Example values: draft , live" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/flowTriggerIsTw> ;
    sh:name "flow trigger is tw" ;
    sh:description "Flow Trigger Is Triple Whale - True if the flow was triggered by a Triple Whale (Sonar) metric or event. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/flowTriggerMetricId> ;
    sh:name "flow trigger metric id" ;
    sh:description "Flow Trigger Metric ID - The ID of the metric or event that triggered the flow. Example value: Lm72Qs" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/flowTriggerMetricName> ;
    sh:name "flow trigger metric name" ;
    sh:description "Flow Trigger Metric Name - The name of the metric or event that triggered the flow. Example values: Checkout Started , Added to Cart , Abandoned Cart , Fulfilled Order" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/flowTriggerOrganization> ;
    sh:name "flow trigger organization" ;
    sh:description "Flow Trigger Organization - The platform where the flow trigger originated. Example values: Shopify , API , Klaviyo , Triple Whale" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/flowTriggerSonarEnabled> ;
    sh:name "flow trigger sonar enabled" ;
    sh:description "Flow Trigger Sonar Enabled - True if Sonar is enabled for this flow trigger. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/messageId> ;
    sh:name "message id" ;
    sh:description "Message ID - The unique ID for the individual message sent as part of a campaign or flow. Assigned by the email/SMS platform. Example value: UKDRM6" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/messageName> ;
    sh:name "message name" ;
    sh:description "Message Name - The name of the individual message sent. Example value: Welcome Series: Email 2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/reportType> ;
    sh:name "report type" ;
    sh:description "Report Type - The type of report generated. Example values: flow , campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/clicks> ;
    sh:name "clicks" ;
    sh:description "Clicks - The total number of unique clicks on links within the email/SMS." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/conversionValue> ;
    sh:name "conversion value" ;
    sh:description "Channel-Reported Conversion Value - Revenue generated from channel-reported conversions (purchases)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/delivered> ;
    sh:name "delivered" ;
    sh:description "Delivered Messages - The total number of messages successfully delivered to the targeted recipient." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/opened> ;
    sh:name "opened" ;
    sh:description "Opens - The total number of unique email opens." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/purchases> ;
    sh:name "purchases" ;
    sh:description "Channel-Reported Conversions (Purchases) - Number of channel-reported conversions (purchases)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/received> ;
    sh:name "received" ;
    sh:description "Received Messages - The total number of email messages successfully received by the target audience." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/sent> ;
    sh:name "sent" ;
    sh:description "Sent Messages - The total number of messages sent. Note: Applicable to Klaviyo SMS, Yotpo Email, and Yotpo SMS; does not include data for Klaviyo email." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/spend> ;
    sh:name "spend" ;
    sh:description "Ad Spend - Channel-reported ad spend, excluding any custom expenses marked as ad spend." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/subscribedToList> ;
    sh:name "subscribed to list" ;
    sh:description "Subscribed Recipients - The total number of recipients subscribed to any email/sms list. Not associated with a specific campaign ( campaign_id will be null)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Emailsm/unsubscribed> ;
    sh:name "unsubscribed" ;
    sh:description "Unsubscribed Recipients - The total number of recipients who unsubscribed from any email/sms list as a result of the campaign." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for External Revenue
tw:ExternalRevenueShape a sh:NodeShape ;
  sh:targetClass tw:ExternalRevenue ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the external revenue was generated. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Note: Each uploaded row can represent either a single date of revenue, or a start and end date. For rows containing a date range, Triple Whale will amortize the amount over the time range." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/breakdown> ;
    sh:name "breakdown" ;
    sh:description "Breakdown - A JSON array containing product-level details for the revenue. Each element in the array is an object with the following properties: sku (string): The SKU (Stock Keeping Unit) for the product. product_id (string): The unique product ID. amount (number): The quantity of the product sold. revenue (number): The revenue amount for this specific product. This value is automatically converted to your shop's selected currency for display." ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The marketing or sales channel through which the revenue was generated. Example values: online , retail , wholesale , in-store" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/city> ;
    sh:name "city" ;
    sh:description "City - The city where the revenue was generated. Example values: New York , Los Angeles , Chicago" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/createdAt> ;
    sh:name "created at" ;
    sh:description "Created At - The timestamp when the revenue record was created in Triple Whale (when the CSV was uploaded and processed). Example value: 2025-01-15T10:30:00.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/currency> ;
    sh:name "currency" ;
    sh:description "Source Currency - The original currency in which the revenue was recorded, before conversion to the shop's currency. All monetary values are automatically converted to the shop's selected currency for display. Example values: USD , GBP , EUR Note: All revenue metrics are automatically converted to your shop's selected currency for display." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/location> ;
    sh:name "location" ;
    sh:description "Location - The physical location or store where the revenue was generated. Example values: Downtown Store , Mall Location , Warehouse A" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/sourceName> ;
    sh:name "source name" ;
    sh:description "Source Name - Free-text identifier to name the specific revenue source. Example values: Downtown Store , Amazon B2B , Popup Shop )" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/sourceType> ;
    sh:name "source type" ;
    sh:description "Source Type - The type of revenue source. Possible values: retail : Retail revenue wholesale : Wholesale revenue pos : Point of Sale revenue offline : Offline revenue" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/state> ;
    sh:name "state" ;
    sh:description "State - The full state name where the revenue was generated. Example values: California , New York , Texas" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/stateCode> ;
    sh:name "state code" ;
    sh:description "State Code - The two-letter state code where the revenue was generated. Example values: CA , NY , TX" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/zip> ;
    sh:name "zip" ;
    sh:description "ZIP Code - The ZIP or postal code where the revenue was generated. Example values: 10001 , 90210 , 60601" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/amountTotal> ;
    sh:name "amount total" ;
    sh:description "Amount Total - The total revenue amount for the record." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Ga4Product Analytics
tw:Ga4ProductAnalyticsShape a sh:NodeShape ;
  sh:targetClass tw:Ga4ProductAnalytics ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day on which the purchase event occurred, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the purchase event occurred. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/itemId> ;
    sh:name "item id" ;
    sh:description "Item ID - The unique identifier for the product, as reported by GA4. Typically maps to the product or variant SKU. Example values: 57404707913 , sku123" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/grossItemRevenue> ;
    sh:name "gross item revenue" ;
    sh:description "Gross Item Revenue - The total revenue from items only, before any discounts, tax, shipping, or refunds. Gross Item Revenue = Item Price x Item Quantity" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/itemRevenue> ;
    sh:name "item revenue" ;
    sh:description "Item Revenue - The total revenue from items only, before tax and shipping (but after refunds). Item Revenue = Item Price x Item Quantity - Refunds" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/itemsAddedToCart> ;
    sh:name "items added to cart" ;
    sh:description "Items Added to Cart - The number of items added to a cart. Each unit counts separately." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/itemsCheckedOut> ;
    sh:name "items checked out" ;
    sh:description "Items Checked Out - The number of items in the cart when the checkout process was initiated. Each unit counts separately." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/itemsPurchased> ;
    sh:name "items purchased" ;
    sh:description "Items Purchased - The number of items included in purchase events. Each unit counts separately." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4ProductAnalytics/itemsViewed> ;
    sh:name "items viewed" ;
    sh:description "Items Viewed - The number of items that the customer viewed." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Ga4Sessions Agg
tw:Ga4SessionsAggShape a sh:NodeShape ;
  sh:targetClass tw:Ga4SessionsAgg ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day on which the GA4 session started, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the GA4 session started. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/firstUserPrimaryChannelGroup> ;
    sh:name "first user primary channel group" ;
    sh:description "First User Primary Channel Group - The Primary Channel Group attributed to the user's first session. Example values: Organic Search , Affiliates , SMS , Cross-network , Paid Other" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/sessionDefaultChannelGroup> ;
    sh:name "session default channel group" ;
    sh:description "Session Default Channel Group - The Default Channel Group assigned to the session. Example values: Organic Search , Referral , Direct , Paid Social , Unassigned" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/sessionSource> ;
    sh:name "session source" ;
    sh:description "Session Source - The raw traffic source that initiated the session, derived from UTM parameters or the referring domain. Example values: facebook , klaviyo-email-flow , awin" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/sessionSourceMedium> ;
    sh:name "session source medium" ;
    sh:description "Session Source / Medium - A combined representation of the session's traffic source and medium, used by GA4 to assign the session to a channel group. Example values: facebook / cpc , klaviyo-email-flow / email , awin / affiliate" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/activeUsers> ;
    sh:name "active users" ;
    sh:description "Active Users - The number of distinct users who had at least one engaged session during the selected time range. GA4 defines an engaged session as one that lasted at least 10 seconds, had a conversion event, or had 2 or more screen/page views." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/newUsers> ;
    sh:name "new users" ;
    sh:description "New Users - The number of users who interacted with your site or app for the first time." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/promotionViews> ;
    sh:name "promotion views" ;
    sh:description "Promotion Views - The number of times users viewed on-site or in-app promotions, such as banners or product carousels." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/screenPageViews> ;
    sh:name "screen page views" ;
    sh:description "Screen / Page Views - The total number of page views (for web) and screen views (for app) that occurred during sessions in the selected time range." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/sessions> ;
    sh:name "sessions" ;
    sh:description "Sessions - The total number of sessions that started during the selected date range. GA4 defines a session as beginning with a session_start event and ending after 30 minutes of inactivity by default." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/totalRevenue> ;
    sh:name "total revenue" ;
    sh:description "Total Revenue - The total revenue (after refunds) from purchases, in-app transactions, subscriptions and ads, during sessions in the selected time range. Total Revenue = Purchases + In-App Purchases + Subscriptions + Ad Revenue - Refunds" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4SessionsAgg/totalUsers> ;
    sh:name "total users" ;
    sh:description "Total Users - The number of distinct users who initiated at least one session during the selected time range, including both new and returning users." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Ga4Web Analytics
tw:Ga4WebAnalyticsShape a sh:NodeShape ;
  sh:targetClass tw:Ga4WebAnalytics ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day on which the GA4 session started, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the GA4 session started. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/browser> ;
    sh:name "browser" ;
    sh:description "Web Browser - The web browser of the session where the order originated. Example values: Chrome , Firefox , Safari" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/city> ;
    sh:name "city" ;
    sh:description "Session City - The city of the session where the order originated. Example values: San Francisco , Tel Aviv , Kyiv" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/country> ;
    sh:name "country" ;
    sh:description "Session Country - The country of the session. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/device> ;
    sh:name "device" ;
    sh:description "Device - The type of device used by the visitor for the session. Example values: mobile , desktop , tablet , wearable" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/landingPage> ;
    sh:name "landing page" ;
    sh:description "Landing Page - The URL path (without query parameters) of the page the visitor landed after clicking on an ad or link, indicating the first page viewed in a session. Example value: /myshop/collections/green_sweater" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/addToCarts> ;
    sh:name "add to carts" ;
    sh:description "Add To Carts - The number of Add To Cart events during sessions in the selected time range." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/orderRevenue> ;
    sh:name "order revenue" ;
    sh:description "Purchase Revenue - The total revenue (after refunds) from purchases and subscriptions, during sessions in the selected time range. Purchase Revenue = Purchases + Subscriptions - Refunds" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/ordersQuantity> ;
    sh:name "orders quantity" ;
    sh:description "Purchases - The total number of website and app purchases (orders) during sessions in the selected time range." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/sessions> ;
    sh:name "sessions" ;
    sh:description "Sessions - The total number of sessions that started during the selected date range. GA4 defines a session as beginning with a session_start event and ending after 30 minutes of inactivity by default." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ga4WebAnalytics/addToCartPercent> ;
    sh:name "add to cart percent" ;
    sh:description "Add To Cart Percent - The percentage of add-to-carts out of total sessions. Add To Cart Percent = Number of Add To Carts / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Id Graph
tw:IdGraphShape a sh:NodeShape ;
  sh:targetClass tw:IdGraph ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.IdGraph/customerIds> ;
    sh:name "customer ids" ;
    sh:description "Customer IDs - A list of customer identifiers collected from connected platforms (e.g., Shopify, Meta, Klaviyo) that have been matched as belonging to the same individual and associated with a single global_id . Example value: [5209503793328, 1308703745320]" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.IdGraph/emails> ;
    sh:name "emails" ;
    sh:description "Customer Emails - All email addresses collected across platforms and touchpoints (e.g., checkout, marketing platforms, forms, aliases, historical emails) that have been matched as belonging to the same individual and associated with a single global_id . Example value: [ [email protected] , [email protected] , [email protected] ]" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.IdGraph/globalId> ;
    sh:name "global id" ;
    sh:description "Global ID - The identifier assigned by Triple Whale to represent a single individual after probabilistically matching related customer IDs, emails, and Pixel triple_ids across platforms and devices. This is the primary identifier used for identity-level analysis. Example value: er74f7ca-34bd-4u70-mn90-2a7slh385e19" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.IdGraph/primaryEmail> ;
    sh:name "primary email" ;
    sh:description "Primary Customer Email - A single selected email address associated with the global_id , representing the most preferred or consistent email for that individual. Useful for deduplicated outreach and identity-based grouping. Example value: [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.IdGraph/tripleIds> ;
    sh:name "triple ids" ;
    sh:description "Triple Pixel IDs - A list of identifiers generated by the Triple Pixel that represent visits, sessions, or devices that have been matched as belonging to the same individual and associated with a single global_id . Example value: [eltlok4y634IRw62AZ, olthkk4y294WNw62PL]" ;
    sh:datatype xsd:string ;
  ] .

# Shape for Keyword
tw:KeywordShape a sh:NodeShape ;
  sh:targetClass tw:Keyword ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the keyword triggered an ad. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/accountId> ;
    sh:name "account id" ;
    sh:description "Ad Account ID - The unique ID for the ad account associated with the ad. Assigned by the ad platform. Example values: act_2168791943307744 , 18ce55770zl , 1986494684391480" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/accountName> ;
    sh:name "account name" ;
    sh:description "Ad Account Name - The name of the advertiser’s account as defined in the ad platform. Example values: Example Shop , example_shop , ES - International" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/adsetId> ;
    sh:name "adset id" ;
    sh:description "Ad Set ID - The unique ID for the ad set associated with the ad click. Assigned by the ad platform. Example value: 120210439890740003" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/adsetName> ;
    sh:name "adset name" ;
    sh:description "Ad Set Name - The name of the ad set within a campaign. Example values: Broad Audience , Bracelets , Wellness" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The unique ID for the marketing campaign associated with the ad. Assigned by the ad platform. Example values: 23852438666180053 , 531011533 , 20620285829" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/campaignName> ;
    sh:name "campaign name" ;
    sh:description "Campaign Name - The name of the marketing campaign associated with the ad. Example values: Catalog Retargeting , US Generic Search , Breakfast of Champions Campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform through which the ad was delivered. Example value: google-ads" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/currency> ;
    sh:name "currency" ;
    sh:description "Ad Platform Currency - The original currency used in the ad platform, before conversion to the shop's currency. All monetary values are automatically converted to the shop's selected currency for display. Example values: USD , GBP , EUR" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/keywordId> ;
    sh:name "keyword id" ;
    sh:description "Keyword ID - The unique ID assigned to the keyword by the ad platform. Example value: 313990984637674" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/keywordStatus> ;
    sh:name "keyword status" ;
    sh:description "Keyword Status - The status of the keyword. Example values: ENABLED , PAUSED , REMOVED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/keywordText> ;
    sh:name "keyword text" ;
    sh:description "Keyword Text - The text of the keyword as entered in the ad platform. Example values: running shoes , cheap flights , best coffee" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/matchType> ;
    sh:name "match type" ;
    sh:description "Match Type - How closely a user’s search query must match the keyword in order to trigger an ad. Example values: EXACT , PHRASE , BROAD" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/systemServingStatus> ;
    sh:name "system serving status" ;
    sh:description "System Serving Status - Indicates whether the keyword is currently eligible to serve ads. Example values: ELIGIBLE , RARELY_SERVED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/allConversionValue> ;
    sh:name "all conversion value" ;
    sh:description "All Conversion Value - Revenue generated from channel-reported conversions of all types (e.g. purchases, registrations, add-to-carts)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/allConversions> ;
    sh:name "all conversions" ;
    sh:description "All Conversions - The total number of channel-reported conversions of all types (e.g. purchases, registrations, add-to-carts)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/clicks> ;
    sh:name "clicks" ;
    sh:description "Clicks - Number of channel-reported clicks." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/conversionValue> ;
    sh:name "conversion value" ;
    sh:description "Channel-Reported Conversion Value - Revenue generated from channel-reported conversions (purchases)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/cpcBid> ;
    sh:name "cpc bid" ;
    sh:description "CPC Bid - The bid amount set for the keyword (cost-per-click). By default shown in the shop's currency." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/effectiveCpcBid> ;
    sh:name "effective cpc bid" ;
    sh:description "Effective CPC Bid - The effective CPC bid after platform bid adjustments are applied. By default shown in the shop's currency." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/impressions> ;
    sh:name "impressions" ;
    sh:description "Impressions - Number of channel-reported impressions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/qualityScore> ;
    sh:name "quality score" ;
    sh:description "Quality Score - The quality score assigned to the keyword by the ad platform (0 – 10, higher is better)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchAbsoluteTopImpressions> ;
    sh:name "search absolute top impressions" ;
    sh:description "Search Absolute Top Impressions - The number of impressions your ads received in the absolute top position (the very first ad above organic results)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchBudgetLostAbsoluteTopImpressions> ;
    sh:name "search budget lost absolute top impressions" ;
    sh:description "Search Budget Lost Absolute Top Impressions - The estimated number of absolute top impressions your ads missed due to low budget." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchBudgetLostTopImpressions> ;
    sh:name "search budget lost top impressions" ;
    sh:description "Search Budget Lost Top Impressions - The estimated number of top impressions your ads missed due to low budget." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchImpressions> ;
    sh:name "search impressions" ;
    sh:description "Search Impressions - The total number of impressions your ads received on the Search Network." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchRankLostImpressions> ;
    sh:name "search rank lost impressions" ;
    sh:description "Search Rank Lost Impressions - The estimated number of impressions your ads did not receive because Ad Rank was too low." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchRankLostTopImpressions> ;
    sh:name "search rank lost top impressions" ;
    sh:description "Search Rank Lost Top Impressions - The estimated number of top impressions your ads missed due to poor Ad Rank." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchTopImpressions> ;
    sh:name "search top impressions" ;
    sh:description "Search Top Impressions - The number of impressions your ads received in the top position (any position above organic results)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/spend> ;
    sh:name "spend" ;
    sh:description "Ad Spend - Channel-reported ad spend, excluding any custom expenses marked as ad spend." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchAbsoluteTopImpressionShare> ;
    sh:name "search absolute top impression share" ;
    sh:description "Search Absolute Top Impression Share - The percentage of impressions your ads received in the absolute top location (the very first ad above organic results). Search Absolute Top Impression Share = Search Absolute Top Impressions / Impressions Note: Accurate only when grouping by keyword." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchBudgetLostAbsoluteTopImpressionShare> ;
    sh:name "search budget lost absolute top impression share" ;
    sh:description "Search Budget Lost Absolute Top Impression Share - The percentage of absolute top impressions your ads did not receive because the campaign budget was limited. Search Budget Lost Absolute Top Impression Share = Search Budget Lost Absolute Top Impressions / Impressions Note: Accurate only when grouping by keyword." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchBudgetLostTopImpressionShare> ;
    sh:name "search budget lost top impression share" ;
    sh:description "Search Budget Lost Top Impression Share - The percentage of top impressions your ads did not receive because the campaign budget was limited. Search Budget Lost Top Impression Share = Search Budget Lost Top Impressions / Impressions Note: Accurate only when grouping by keyword." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchImpressionShare> ;
    sh:name "search impression share" ;
    sh:description "Search Impression Share - The percentage of impressions your ads received on the Search Network out of the total impressions they were eligible to receive. Search Impression Share = Search Impressions / Impressions Note: Accurate only when grouping by keyword." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchRankLostImpressionShare> ;
    sh:name "search rank lost impression share" ;
    sh:description "Search Rank Lost Impression Share - The percentage of impressions your ads did not receive because Ad Rank was too low. Search Rank Lost Impression Share = Search Rank Lost Impressions / Impressions Note: Accurate only when grouping by keyword." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchRankLostTopImpressionShare> ;
    sh:name "search rank lost top impression share" ;
    sh:description "Search Rank Lost Top Impression Share - The percentage of top impressions your ads did not receive because Ad Rank was too low. Search Rank Lost Top Impression Share = Search Rank Lost Top Impressions / Impressions Note: Accurate only when grouping by keyword." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Keyword/searchTopImpressionShare> ;
    sh:name "search top impression share" ;
    sh:description "Search Top Impression Share - The percentage of impressions your ads received in the top location (any position above organic results). Search Top Impression Share = Search Top Impressions / Impressions Note: Accurate only when grouping by keyword." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Order
tw:OrderShape a sh:NodeShape ;
  sh:targetClass tw:Order ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the order was placed, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the order was placed. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/amazonFulfillmentChannel> ;
    sh:name "amazon fulfillment channel" ;
    sh:description "Amazon Fulfillment Channel - The fulfillment channel of the Amazon order. Example values: FBA , FBM" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/amazonFulfillmentStatus> ;
    sh:name "amazon fulfillment status" ;
    sh:description "Amazon Fulfillment Status - The fulfillment status of the Amazon order. Example values: Pending , Unshipped , PartiallyShipped , Shipped , Canceled , Unfulfillable , InvoiceUnconfirmed , PendingAvailability" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/amazonIsBusinessOrder> ;
    sh:name "amazon is business order" ;
    sh:description "Amazon Is Business Order - Indicates if the order is a business order on Amazon. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/amazonMarketplaceId> ;
    sh:name "amazon marketplace id" ;
    sh:description "Amazon Marketplace ID - The Amazon marketplace ID for the marketplace associated with the order. See list of marketplace IDs ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/amazonMarketplaceName> ;
    sh:name "amazon marketplace name" ;
    sh:description "Amazon Marketplace Name - The human-readable name of the Amazon marketplace associated with the order (e.g., \"United States of America\", \"United Kingdom\")." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/amazonRegion> ;
    sh:name "amazon region" ;
    sh:description "Amazon Region - The Amazon region for the marketplace associated with the order (e.g., \"North America\", \"Europe\", \"Far East\")." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/billingCity> ;
    sh:name "billing city" ;
    sh:description "Billing City - The city of the customer's billing address. Example value: San Francisco" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/billingCountry> ;
    sh:name "billing country" ;
    sh:description "Billing Country - The full name of the customer's billing country. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/billingCountryCode> ;
    sh:name "billing country code" ;
    sh:description "Billing Country Code - The country code of the customer's billing address. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/billingProvince> ;
    sh:name "billing province" ;
    sh:description "Billing State - The state or province of the customer's billing address. Example values: Oregon , British Columbia , Michigan" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/cancelledAt> ;
    sh:name "cancelled at" ;
    sh:description "Canceled Date - The time at which the order was canceled. Formatted according to the ISO 8601 international standard . NULL if the order was not canceled. Example value: 2023-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/createdAt> ;
    sh:name "created at" ;
    sh:description "Order Created Date - The time at which the order record was created. Formatted according to the ISO 8601 international standard . Example value: 2022-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/currency> ;
    sh:name "currency" ;
    sh:description "Order Currency - The original currency of the order, before conversion to the shop's currency. All monetary values are automatically converted to the shop's selected currency for display. Example values: USD , GBP , EUR" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customerEmail> ;
    sh:name "customer email" ;
    sh:description "Customer Email - The customer's email address. Example value: [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customerFirstName> ;
    sh:name "customer first name" ;
    sh:description "Customer First Name - The customer's first name. Example value: John" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customerFromCity> ;
    sh:name "customer from city" ;
    sh:description "Customer City - The city of the customer's default address. Example value: San Francisco" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customerFromCountryCode> ;
    sh:name "customer from country code" ;
    sh:description "Customer Country Code - The country code of the customer's default address. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customerFromCountryName> ;
    sh:name "customer from country name" ;
    sh:description "Customer Country Name - The full name of the customer's country. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customerFromStateCode> ;
    sh:name "customer from state code" ;
    sh:description "Customer State Code - The state or province code of the customer's default address. Example value: CA" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customerId> ;
    sh:name "customer id" ;
    sh:description "Customer ID - The unique identifier for the customer, assigned by the main sales platform. Example value: 5209503793328" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customerIdKey> ;
    sh:name "customer id key" ;
    sh:description "Customer ID Key - Join key for connecting this table to the Customers table. Contains customer_id for Shopify shops and customer_email for non-Shopify shops (e.g., Amazon, BigCommerce, WooCommerce). Example values: 5209503793328 , [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customerLastName> ;
    sh:name "customer last name" ;
    sh:description "Customer Last Name - The last name of the customer. Example value: Doe" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customerTags> ;
    sh:name "customer tags" ;
    sh:description "Customer Tags - Tags associated with the customer, set in the main sales platform. Example values: Active Subscriber , PayPal_user , Login with FB" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/discountCode> ;
    sh:name "discount code" ;
    sh:description "Discount Code - The discount code or promotion name used in the order. Set by the seller in the main sales platform. Example values: WELCOME10 , Replacement for defective item , 807QRWMNK2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/discountType> ;
    sh:name "discount type" ;
    sh:description "Discount Type - The type of discount received by the customer in the order. Example values: fixed_amount , percentage" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/fulfillmentStatus> ;
    sh:name "fulfillment status" ;
    sh:description "Fulfillment Status - The fulfillment status of the order. Example values: fulfilled , partial , restocked" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/integrationShippingStatus> ;
    sh:name "integration shipping status" ;
    sh:description "Integration Shipping Status - The shipping status of the order, according to the integrated shipping provider. Example values: LabeledCreated , Completed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/isFirstOrderInSubscription> ;
    sh:name "is first order in subscription" ;
    sh:description "Is First Order in Subscription - True if the order is the first in a subscription series. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/isNewCustomer> ;
    sh:name "is new customer" ;
    sh:description "Is New Customer - True if this is the customer's first order. Possible values: true , false Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/isSubscriptionOrder> ;
    sh:name "is subscription order" ;
    sh:description "Is Subscription Order - True if the order is part of a subscription. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/metafields> ;
    sh:name "metafields" ;
    sh:description "Metafields - Custom key–value pairs attached to each order record, used to store additional structured or unstructured data beyond standard fields." ;
    sh:node tw:OrderMetafieldShape ;
    sh:class tw:OrderMetafield ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/orderId> ;
    sh:name "order id" ;
    sh:description "Order ID - The unique order ID, assigned by the main sales platform. Example value: 4930225799243" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/orderName> ;
    sh:name "order name" ;
    sh:description "Order Name - The name of the order as assigned by the seller on the main sales platform. Example values: #2188464 , Ex-2163819-9" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/platform> ;
    sh:name "platform" ;
    sh:description "Sales Platform - The sales platform where the order was processed. Example values: Shopify , BigCommerce , WooCommerce , Amazon" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/productsInfo> ;
    sh:name "products info" ;
    sh:description "Products - Details about the products associated with the order (at the level of the variant), including name, product ID, variant ID, type, SKU, etc. Returns the latest product information, not necessarily the data at the time the order was placed." ;
    sh:node tw:OrderProductsInfoShape ;
    sh:class tw:OrderProductsInfo ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shippingCity> ;
    sh:name "shipping city" ;
    sh:description "Shipping City - The city of the shipping address. Example value: San Francisco" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shippingCountryCode> ;
    sh:name "shipping country code" ;
    sh:description "Shipping Country Code - The country code of the shipping address. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shippingCountryName> ;
    sh:name "shipping country name" ;
    sh:description "Shipping Country Name - The full name of the shipping country. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shippingDate> ;
    sh:name "shipping date" ;
    sh:description "Shipping Date - The most recent shipping-related date (in case of multiple shipments for the same order), selected from fields supported by the connected shipping platform (e.g., shipped, fulfilled, or shipping label created). Example value: 2024-12-25" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shippingProviderId> ;
    sh:name "shipping provider id" ;
    sh:description "Shipping Provider - The integrated shipping provider that manages and processes the order's shipment. Example values: shipbob , shipstation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shippingState> ;
    sh:name "shipping state" ;
    sh:description "Shipping State - The province or state of the shipping address. Example value: California" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shippingStateCode> ;
    sh:name "shipping state code" ;
    sh:description "Shipping State Code - The province or state code of the shipping address. Example value: CA" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shippingZip> ;
    sh:name "shipping zip" ;
    sh:description "Shipping Zip Code - The zip/postal code of the customer's shipping address. Example values: 48104 , 18235-2239 , CH25 9BH" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shopTimezone> ;
    sh:name "shop timezone" ;
    sh:description "Shop Timezone - The designated timezone of the shop according to the timezone database ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/sourceName> ;
    sh:name "source name" ;
    sh:description "Source - The origin of the order as designated by the seller on the main sales platform. Example values: web , pos , tiktok" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/tags> ;
    sh:name "tags" ;
    sh:description "Tags - Tags associated with the order, assigned by the seller on the main sales platform. Example values: Upsell , Order Credits , discount_eligible" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/transactions> ;
    sh:name "transactions" ;
    sh:description "Transactions - Details about transactions associated with the order, including payment information and status." ;
    sh:node tw:OrderTransactionShape ;
    sh:class tw:OrderTransaction ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/amazonEstimatedFees> ;
    sh:name "amazon estimated fees" ;
    sh:description "Amazon Estimated Fees - The estimated fees to be charged by Amazon for the order, based on products purchased. Note that this amount is an estimate and is not final until Amazon reports on actual fees." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/costOfGoods> ;
    sh:name "cost of goods" ;
    sh:description "Cost of Goods (COGS) - The cost of goods for orders within the selected time frame (before refunds). Imported from the main sales platform, or edit these in Cost Settings > Cost of Goods." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/currencyRate> ;
    sh:name "currency rate" ;
    sh:description "Currency Rate - The rate used to convert monetary values to the shop's currency. If no conversion was applied, the value is 1 . To convert back to the original currency, divide by this rate." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customExpenses> ;
    sh:name "custom expenses" ;
    sh:description "Custom Expenses - Additional custom expenses associated with individual orders. Import using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customGrossProfit> ;
    sh:name "custom gross profit" ;
    sh:description "Custom Gross Profit - Custom gross profit for individual orders. Import using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customGrossSales> ;
    sh:name "custom gross sales" ;
    sh:description "Custom Gross Sales - Custom gross sales for individual orders. Import using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customNetRevenue> ;
    sh:name "custom net revenue" ;
    sh:description "Custom Net Revenue - Custom net revenue for individual orders. Import using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customOrdersQuantity> ;
    sh:name "custom orders quantity" ;
    sh:description "Custom Orders Quantity - The custom-defined quantity of orders to count for the single order_id . Possible values: 0 , 1 Import using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/customTotalItemsQuantity> ;
    sh:name "custom total items quantity" ;
    sh:description "Custom Total Items - The custom-defined total number of items in the order. Import using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/discountAmount> ;
    sh:name "discount amount" ;
    sh:description "Discounts - The total discount amount applied to the order, including shipping discounts." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/discountAmountForProduct> ;
    sh:name "discount amount for product" ;
    sh:description "Product Discount Amount - The total product discount amount applied to the order." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/discountAmountForShipping> ;
    sh:name "discount amount for shipping" ;
    sh:description "Shipping Discount Amount - The total shipping discount amount applied to the order." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/estimatedShippingCosts> ;
    sh:name "estimated shipping costs" ;
    sh:description "Estimated Shipping Costs - Estimated shipping costs paid by the seller for orders within the select timeframe. Edit these in: Cost Settings > Shipping" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/grossProductSales> ;
    sh:name "gross product sales" ;
    sh:description "Gross Sales - Gross sales revenue (before shipping, taxes, discounts, or refunds). Gross Sales = Product Price x Units Sold" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/handlingFees> ;
    sh:name "handling fees" ;
    sh:description "Handling Fees - Handling fees (e.g. boxing, packaging, or “pick & pack” services) paid by the seller for orders in the selected time frame. Edit these in Cost Settings > Cost of Goods." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/orderRevenue> ;
    sh:name "order revenue" ;
    sh:description "Order Revenue - Revenue earned after shipping, taxes, and discounts (before refunds). Order Revenue = Gross Sales + Shipping + Taxes − Discounts" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/paymentGatewayCosts> ;
    sh:name "payment gateway costs" ;
    sh:description "Payment Gateway Costs - Payment processing fees (not including currency conversion fees) paid by the seller. Edit these in Cost Settings > Gateway Costs." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/productQuantitySoldInOrder> ;
    sh:name "product quantity sold in order" ;
    sh:description "Units Sold - The total number of individual product units sold in the order." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/refundMoney> ;
    sh:name "refund money" ;
    sh:description "Refunds - Total amount returned to customers for refunded sales, refunded taxes, and refunded shipping. Calculated based on the order date. Note that Triple Whale does not track refunds from third-party return management apps (e.g., Loop), so totals may vary from the sales platform. Refunds = Refunded Sales + Refunded Shipping + Refunded Tax" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shippingCosts> ;
    sh:name "shipping costs" ;
    sh:description "Shipping Costs - Shipping costs paid by the seller for orders within the select timeframe. Edit these in Cost Settings > Shipping." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/shippingPrice> ;
    sh:name "shipping price" ;
    sh:description "Shipping Price - The total shipping price of the order (paid by the buyer), including shipping taxes and shipping discounts." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/taxes> ;
    sh:name "taxes" ;
    sh:description "Sale Taxes - Total amount customers paid in taxes, before refunds." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/aov> ;
    sh:name "aov" ;
    sh:description "Average Order Value - The average order value (before shipping or taxes), as reported by the sales platform. AOV = (Order Revenue - Shipping Price - Taxes) / Number of Orders" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/ltv> ;
    sh:name "ltv" ;
    sh:description "Lifetime Value - The average order revenue per customer, for orders placed within the selected timeframe. LTV = Order Revenue / Unique Customers" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/newCustomerOrders> ;
    sh:name "new customer orders" ;
    sh:description "New Customer Orders - The total number of orders placed by new customers within the selected time frame. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/newCustomerRevenue> ;
    sh:name "new customer revenue" ;
    sh:description "New Customer Revenue - The total revenue derived from orders by new customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/newCustomersPercent> ;
    sh:name "new customers percent" ;
    sh:description "New Customers Percent - The percentage of purchases made by new customers. New Customers % = Number of New Customer Orders / Total Orders Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/orders> ;
    sh:name "orders" ;
    sh:description "Orders - The total number of orders placed within the selected timeframe." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/ordersWithAmount> ;
    sh:name "orders with amount" ;
    sh:description "Non-Zero Orders - The total number of orders with a revenue greater than zero. Non-Zero Orders = Count of Orders where Order Revenue > $0" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/returningCustomerOrders> ;
    sh:name "returning customer orders" ;
    sh:description "Returning Customer Orders - Number of orders placed by Returning Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/returningCustomerRevenue> ;
    sh:name "returning customer revenue" ;
    sh:description "Returning Customer Revenue - Amount of revenue derived from Returning Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/returningCustomersPercent> ;
    sh:name "returning customers percent" ;
    sh:description "Returning Customers Percent - Percentage of orders placed by Returning Customers. Returning Customers % = Number of Returning Customer Orders / Total Orders Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/trueAov> ;
    sh:name "true aov" ;
    sh:description "True Average Order Value - The average non-zero order value (before shipping or taxes), as reported by the sales platform. True AOV = (Order Revenue - Shipping Price - Taxes) / Number of Orders > $0" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Order/uniqueCustomers> ;
    sh:name "unique customers" ;
    sh:description "Unique Customers - Number of unique customers who placed orders within the selected timeframe." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Metafield
tw:OrderMetafieldShape a sh:NodeShape ;
  sh:targetClass tw:OrderMetafield ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Metafield/metafieldId> ;
    sh:name "metafield id" ;
    sh:description "Metafield ID - The unique identifier of the metafield record. Example value: 44187839136031" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Metafield/key> ;
    sh:name "key" ;
    sh:description "Metafield Key - The unique key of the metafield within its namespace, indicating what data it holds. Example values: promised_delivery_date , zone , agree_to_terms" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Metafield/value> ;
    sh:name "value" ;
    sh:description "Metafield Value - The raw stored value of the metafield. Format depends on the metafield type (e.g., text, date, boolean, JSON). Example values: 2025-11-10 , true , #241194 , 5a" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Metafield/metafieldNamespace> ;
    sh:name "metafield namespace" ;
    sh:description "Metafield Namespace - Logical grouping used to organize metafields by source or purpose. Example values: custom , klaviyo , checkoutblocks" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Metafield/metafieldType> ;
    sh:name "metafield type" ;
    sh:description "Metafield Type - The data type of the metafield value (e.g., text, date, boolean, JSON, reference). Example values: date , boolean , json , single_line_text_field , customer_reference" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Metafield/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Metafield Updated Date - When the metafield was last updated, in shop time zone. Example value: 2025-10-21 07:08:01" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Metafield/createdAt> ;
    sh:name "created at" ;
    sh:description "Metafield Created Date - When the metafield was first created, in shop time zone. Example value: 2025-10-21 07:08:01" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Products Info
tw:OrderProductsInfoShape a sh:NodeShape ;
  sh:targetClass tw:OrderProductsInfo ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/productId> ;
    sh:name "product id" ;
    sh:description "Product ID - The unique ID of the product as set within the main sales platform. Example value: 3891505496131" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/productName> ;
    sh:name "product name" ;
    sh:description "Product Name - The name of the product as set within the main sales platform. Example values: Green Soft Socks 3-Pack , Paring Knife Travel Case , Gift Subscription" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/vendor> ;
    sh:name "vendor" ;
    sh:description "Product Vendor - The vendor of the product as set within the main sales platform. Example values: Acme , XYZ Corp , Brandless" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/productType> ;
    sh:name "product type" ;
    sh:description "Product Type - The product type as set within the main sales platform. Example values: Jackets , Coffee Mugs , Books" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/productTags> ;
    sh:name "product tags" ;
    sh:description "Product Tags - Tags associated with the product, set in the main sales platform. Example values: Upsell , Order Credits , discount_eligible" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/productSku> ;
    sh:name "product sku" ;
    sh:description "Product SKU - The SKU (Stock Keeping Unit) for the product as set within the main sales platform. Example values: GP-BACK-02 , A02630 , POP200NAVY" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/variantId> ;
    sh:name "variant id" ;
    sh:description "Product Variant ID - The unique identifier for a specific variant of a product as set within the main sales platform. Example value: 29275946877001" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/isGiftCard> ;
    sh:name "is gift card" ;
    sh:description "Is Gift Card - True if the product purchased is a gift card. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/properties> ;
    sh:name "properties" ;
    sh:description "Product Properties - Custom key–value properties attached to the product line item (e.g., personalization details, bundle metadata, app-specific fields)." ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/propertiesName> ;
    sh:name "properties name" ;
    sh:description "Product Property Name - The name or key of the product property." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/propertiesValue> ;
    sh:name "properties value" ;
    sh:description "Product Property Value - The value assigned to the product property." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/duties> ;
    sh:name "duties" ;
    sh:description "Product Duties - Import duties or tariffs applied to the product." ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/dutiesDutyId> ;
    sh:name "duties duty id" ;
    sh:description "Product Duty ID - The unique identifier of the duty applied to the product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/dutiesTaxLines> ;
    sh:name "duties tax lines" ;
    sh:description "Product Duty Tax Lines - Tax lines charged on the product duty." ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/dutiesTaxLinesPrice> ;
    sh:name "duties tax lines price" ;
    sh:description "Product Duty Tax Line Amount - The tax amount charged on the product duty per tax line." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/dutiesPrice> ;
    sh:name "duties price" ;
    sh:description "Product Duty Amount - The monetary amount of duty charged for the product.'" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/productNamePrice> ;
    sh:name "product name price" ;
    sh:description "Product Price - The price of a single product (to the buyer), before discounts. By default shown in the shop's currency. Note: Tax will be included in the product price if the seller has configured the sale to require taxes in the main sales platform." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/discountAmountForProduct> ;
    sh:name "discount amount for product" ;
    sh:description "Total Product Discount - The amount discounted from the product price, before taxes. By default shown in the shop's currency." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/netDiscountAmountForProduct> ;
    sh:name "net discount amount for product" ;
    sh:description "Net Product Discount - The amount discounted from the product price, after taxes. By default shown in the shop's currency." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/productNameQuantitySold> ;
    sh:name "product name quantity sold" ;
    sh:description "Product Units Sold - The total number of individual units sold for the product." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/singleProductCost> ;
    sh:name "single product cost" ;
    sh:description "Product Cost - The cost of a single product (to the seller). By default shown in the shop's currency." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Transaction
tw:OrderTransactionShape a sh:NodeShape ;
  sh:targetClass tw:OrderTransaction ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Transaction/createdAt> ;
    sh:name "created at" ;
    sh:description "Transaction Created Date - The time at which the transaction record was created. Formatted according to the ISO 8601 international standard . Example value: 2024-12-25 11:30:09" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Transaction/processedAt> ;
    sh:name "processed at" ;
    sh:description "Transaction Processed Date - The time at which the transaction was processed. Formatted according to the ISO 8601 international standard . Example value: 2024-12-25 11:30:09" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Transaction/paymentGatewayName> ;
    sh:name "payment gateway name" ;
    sh:description "Transaction Payment Gateway - The payment gateway used for the transaction. Example values: shopify_payments , paypal , gift_card" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Transaction/currency> ;
    sh:name "currency" ;
    sh:description "Transaction Currency - The currency in which the transaction was processed. Example values: USD , EUR" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Transaction/status> ;
    sh:name "status" ;
    sh:description "Transaction Status - The status of the transaction. Example values: SUCCESS , FAILURE , AWAITING_RESPONSE , PENDING , ERROR" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Transaction/amount> ;
    sh:name "amount" ;
    sh:description "Transaction Amount - The amount of the transaction." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.Transaction/fees> ;
    sh:name "fees" ;
    sh:description "Transaction Fees - The fees associated with the transaction." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Pixel Custom Conversion
tw:PixelCustomConversionShape a sh:NodeShape ;
  sh:targetClass tw:PixelCustomConversion ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the pixel custom conversion event occurred, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the pixel custom conversion event occurred. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/adId> ;
    sh:name "ad id" ;
    sh:description "Ad ID - The unique ad ID. Assigned by the ad platform. Example value: 120210439891110007" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/adsetId> ;
    sh:name "adset id" ;
    sh:description "Ad Set ID - The unique ID for the ad set associated with the ad click. Assigned by the ad platform. Example value: 120210439890740003" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/attributionWindow> ;
    sh:name "attribution window" ;
    sh:description "Attribution Window - The time frame for attributing conversions to the ad. By default lifetime . Example values: 1_day , 7_days , 14_days , 28_days , lifetime" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The unique ID for the marketing campaign associated with the ad. Assigned by the ad platform. Example values: 23852438666180053 , 531011533 , 20620285829" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform through which the ad was delivered. Example values: facebook-ads , google-ads , Direct" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/email> ;
    sh:name "email" ;
    sh:description "Customer Email - The customer's email address. Example value: [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventBody> ;
    sh:name "event body" ;
    sh:description "Pixel Custom Conversion Event Data - The full data payload in raw JSON format, including all event properties defined for the custom conversion event. Learn more about querying pixel custom conversion event data" ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventId> ;
    sh:name "event id" ;
    sh:description "Event ID - The unique ID assigned by Triple Pixel to the custom conversion event. Example value: 9m4rs48lg2elVB52xU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventName> ;
    sh:name "event name" ;
    sh:description "Event Name - The name assigned to the custom conversion event. Example values: form_fill , start_quiz , quiz_complete , order_sample , answer_question , request_consultation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventTimestamp> ;
    sh:name "event timestamp" ;
    sh:description "Event Timestamp - The time the custom conversion event occurred. Formatted according to the ISO 8601 international standard . Example value: 2022-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/attributionModel> ;
    sh:name "attribution model" ;
    sh:description "Attribution Model - The attribution model used. By default Triple Attribution . Possible values: Total Impact , Triple Attribution , Triple Attribution + Views , Clicks & Views , Linear All , Linear Paid , First Click , Last Click" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/sessionId> ;
    sh:name "session id" ;
    sh:description "Session ID - The unique session ID assigned by Triple Pixel. Example value: cltlok4y634IRw62AZ_1710700966152" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/tripleId> ;
    sh:name "triple id" ;
    sh:description "Triple Pixel ID - The unique ID assigned by Triple Pixel to track visitors across sessions. Example value: eltlok4y634IRw62AZ" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventValue> ;
    sh:name "event value" ;
    sh:description "Event Conversion Value - The monetary conversion value assigned to the custom conversion event." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/linearWeight> ;
    sh:name "linear weight" ;
    sh:description "Linear Weight - The weight assigned to the event when using linear attribution models." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Pixel Custom Event
tw:PixelCustomEventShape a sh:NodeShape ;
  sh:targetClass tw:PixelCustomEvent ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the pixel custom event occurred, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the pixel custom event occurred. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/data> ;
    sh:name "data" ;
    sh:description "Pixel Custom Event Data - The full data payload in raw JSON format, including all event properties defined for the custom event. Learn more about querying pixel custom event data" ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/eventName> ;
    sh:name "event name" ;
    sh:description "Event Name - The name assigned to the custom event. Example values: form_fill , start_quiz , quiz_complete , order_sample , answer_question , request_consultation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/eventTimestamp> ;
    sh:name "event timestamp" ;
    sh:description "Event Timestamp - The time the custom event occurred. Formatted according to the ISO 8601 international standard . Example value: 2022-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/pageViewEventId> ;
    sh:name "page view event id" ;
    sh:description "Page View Event ID - The unique ID for the page view event during which the custom event occurred. Assigned by Triple Pixel. Example value: 9m4rs48lg2elVB52xU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/tripleId> ;
    sh:name "triple id" ;
    sh:description "Triple Pixel ID - The unique ID assigned by Triple Pixel to track visitors across sessions. Example value: eltlok4y634IRw62AZ" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/count> ;
    sh:name "count" ;
    sh:description "Pixel Custom Events - The total number of pixel custom events recorded within the selected timeframe." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Pixel Joined
tw:PixelJoinedShape a sh:NodeShape ;
  sh:targetClass tw:PixelJoined ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/cityFilter> ;
    sh:name "city filter" ;
    sh:description "City Filter - Filters results by city." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/countryFilter> ;
    sh:name "country filter" ;
    sh:description "Country Filter - Filters results by country." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/includeCustomAdSpend> ;
    sh:name "include custom ad spend" ;
    sh:description "Include Custom Ad Spend - Includes custom ad spend in the spend column. Possible: true , false" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/orderTagsFilter> ;
    sh:name "order tags filter" ;
    sh:description "Order Tags Filter - Filters orders by tags. Matches any order containing the specified comma-separated tags." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/salesPlatformFilter> ;
    sh:name "sales platform filter" ;
    sh:description "Sales Platform Filter - Filter results by sales platform. Possible values: shopify , amazon , woocommerce , bigcommerce , walmart , tiktok-shops" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/subscriptionFilter> ;
    sh:name "subscription filter" ;
    sh:description "Subscription Filter - Filters results by subscription type. Possible values: subscription_first_order : Subscription First Order subscription_recurring_order : Subscription Recurring Order subscription_order : Subscription First Order + Subscription Recurring Order non_subscription_order : Non-Subscription Purchases non_subscription_recurring_order : Subscription First Order + Non-Subscription Purchases" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/useClickDate> ;
    sh:name "use click date" ;
    sh:description "Use Click Date - Uses click date instead of purchase date for event_date . Possible values: true , false" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day on which the ad was run or the order was placed, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the ad was run or the order was placed. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/accountId> ;
    sh:name "account id" ;
    sh:description "Ad Account ID - The unique ID for the ad account associated with the ad. Assigned by the ad platform. Example values: act_2168791943307744 , 18ce55770zl , 1986494684391480" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adBidAmount> ;
    sh:name "ad bid amount" ;
    sh:description "Ad Bid Amount - The bid amount for the ad. Example values: 15 , 28 , 30" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adCopy> ;
    sh:name "ad copy" ;
    sh:description "Ad Copy - The full text (copy) of the ad." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adId> ;
    sh:name "ad id" ;
    sh:description "Ad ID - The unique ad ID. Assigned by the ad platform. Example value: 120210439891110007" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adImageUrl> ;
    sh:name "ad image url" ;
    sh:description "Ad Image URL - The URL of the ad image. Example value: https://www.example.com/ad-image.jpg" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adManagerUrl> ;
    sh:name "ad manager url" ;
    sh:description "Ad Manager URL - Direct link to this ad in the advertising platform (Facebook, Google Ads, etc.) for quick access to campaign management and performance data. Example value: https://adwords.google.com/aw/overview?campaignId=9117023204" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adName> ;
    sh:name "ad name" ;
    sh:description "Ad Name - The internal name of the ad within the ad platform. Example values: Kids Ad 1 , Blog 03/12/2023 , 10460_video_black_#5" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adStatus> ;
    sh:name "ad status" ;
    sh:description "Ad Status - The status of the ad. Example values: ACTIVE , PAUSED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adTitle> ;
    sh:name "ad title" ;
    sh:description "Ad Title - The external, published title that viewers see when the ad is served. Example values: UP TO 50% OFF , The Hype Is Real , Trusted by 4 Million+ Women Worldwide" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adType> ;
    sh:name "ad type" ;
    sh:description "Ad Type - The format of the ad. Example values: video , image , carousel , link , VIDEO , GRAPHIC Currently available for Meta and Axon." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adsetBidAmount> ;
    sh:name "adset bid amount" ;
    sh:description "Ad Set Bid Amount - The bid amount for the ad set. Example values: 25 , 35 , 40" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adsetBidStrategy> ;
    sh:name "adset bid strategy" ;
    sh:description "Ad Set Bid Strategy - The bidding strategy for the ad set. Example values: LOWEST_COST_WITHOUT_CAP , LOWEST_COST_WITH_BID_CAP , COST_CAP , LOWEST_COST_WITH_MIN_ROAS" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adsetId> ;
    sh:name "adset id" ;
    sh:description "Ad Set ID - The unique ID for the ad set associated with the ad click. Assigned by the ad platform. Example value: 120210439890740003" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adsetName> ;
    sh:name "adset name" ;
    sh:description "Ad Set Name - The name of the ad set within a campaign. Example values: Broad Audience , Bracelets , Wellness" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adsetStatus> ;
    sh:name "adset status" ;
    sh:description "Ad Set Status - The status of the ad set. Example values: ACTIVE , PAUSED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/attributionWindow> ;
    sh:name "attribution window" ;
    sh:description "Attribution Window - The time frame for attributing conversions to the ad. By default lifetime . Example values: 1_day , 7_days , 14_days , 28_days , lifetime" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/campaignBidStrategy> ;
    sh:name "campaign bid strategy" ;
    sh:description "Campaign Bid Strategy - The bidding strategy for the campaign. Example values: LOWEST_COST_WITHOUT_CAP , LOWEST_COST_WITH_BID_CAP , COST_CAP , LOWEST_COST_WITH_MIN_ROAS" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The unique ID for the marketing campaign associated with the ad. Assigned by the ad platform. Example values: 23852438666180053 , 531011533 , 20620285829" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/campaignName> ;
    sh:name "campaign name" ;
    sh:description "Campaign Name - The name of the marketing campaign associated with the ad. Example values: Catalog Retargeting , US Generic Search , Breakfast of Champions Campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/campaignStatus> ;
    sh:name "campaign status" ;
    sh:description "Campaign Status - The status of the campaign. Example values: ACTIVE , PAUSED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/campaignType> ;
    sh:name "campaign type" ;
    sh:description "Campaign Type - The type of campaign. For Email/SMS data, this maps to report_type . Example values: PERFORMANCE_MAX , SEARCH , flow , campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform through which the ad was delivered. Example values: facebook-ads , google-ads , Direct" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/channelType> ;
    sh:name "channel type" ;
    sh:description "Messaging Channel Type - The messaging channel used to deliver the communication. Populated for email/SMS providers only; NULL for ad platforms. Example values: email , sms , push" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/country> ;
    sh:name "country" ;
    sh:description "Session Country - The country of the session where the order originated. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/msCountry> ;
    sh:name "ms country" ;
    sh:description "MS Session Country - The marketplace country code of the session. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/creativeCtaType> ;
    sh:name "creative cta type" ;
    sh:description "Creative CTA Type - The type of call-to-action (CTA) used in the ad. Example values: Shop Now , Learn More , Sign Up" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/creativeDistributionFormat> ;
    sh:name "creative distribution format" ;
    sh:description "Creative Distribution Format - The ad creative distribution format. Example values: Standard Ad , Dynamic Creative Ad , Unknown" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/creativeFormat> ;
    sh:name "creative format" ;
    sh:description "Creative Format - The format of the ad creative. Example values: SHARE , VIDEO" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/creativeId> ;
    sh:name "creative id" ;
    sh:description "Creative ID - The unique identifier assigned to the creative asset by the ad platform. Example value: 1326015151986179" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/destinationUrl> ;
    sh:name "destination url" ;
    sh:description "Destination URL - The destination URL where users land after clicking the ad. Currently available for Meta, Google, and Pinterest. Example value: https://www.myshop.com/products/productA" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/attributionModel> ;
    sh:name "attribution model" ;
    sh:description "Attribution Model - The attribution model used. By default Triple Attribution . Possible values: Total Impact , Triple Attribution , Triple Attribution + Views , Clicks & Views , Linear All , Linear Paid , First Click , Last Click" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/urlTemplate> ;
    sh:name "url template" ;
    sh:description "URL Template - A template URL used to dynamically populate ad URLs with relevant tracking parameters. Example value: utm_source=facebook&utm_campaign={{campaign.name}}" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/videoUrl> ;
    sh:name "video url" ;
    sh:description "Video URL - The URL of the ad video. Example value: https://www.youtube.com/embed/example" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/videoUrlIframe> ;
    sh:name "video url iframe" ;
    sh:description "Video URL Iframe - The iframe embed code for displaying the video ad within a web page or app. Example value: https://www.facebook.com/plugins/ video.phpwidth=1080&href=https:// www.facebook.com/123456789/videos/987654321" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/videoUrlSource> ;
    sh:name "video url source" ;
    sh:description "Video URL Source - The direct file path to the hosted video source, typically used for playback. Example value: https://video-ord5-2.xx.fbcdn.net/o1/v/t2/f2/m69/example-video.mp4?_nc_ht=video-ord5-2.xx.fbcdn.net&_nc_cat=111& oh=1234567890abcdef&oe=67C3D77F" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/addToCarts> ;
    sh:name "add to carts" ;
    sh:description "Pixel Add to Carts - The number of unique users who triggered an Add-to-Cart event, as reported by the Pixel." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/addresses> ;
    sh:name "addresses" ;
    sh:description "Address Details Submitted - The number of times users submitted address details during checkout." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adsetDailyBudget> ;
    sh:name "adset daily budget" ;
    sh:description "Ad Set Daily Budget - The daily budget (in cents) set for the ad set within a campaign. By default shown in the shop's currency. Example values: 1750 , 6000 , 40000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/adsetLifetimeBudget> ;
    sh:name "adset lifetime budget" ;
    sh:description "Ad Set Lifetime Budget - The total budget (in cents) set for the ad set within a campaign over its lifetime. By default shown in the shop's currency. Example values: 5000 , 10000 , 20000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/bounces> ;
    sh:name "bounces" ;
    sh:description "Pixel Bounces - The Pixel-reported number of single-page sessions where the visitor left the site after a single page view." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/campaignDailyBudget> ;
    sh:name "campaign daily budget" ;
    sh:description "Campaign Daily Budget - The daily budget (in cents) for the campaign. Example values: 8000 , 10000 , 15000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/campaignLifetimeBudget> ;
    sh:name "campaign lifetime budget" ;
    sh:description "Campaign Lifetime Budget - The lifetime budget (in cents) for the campaign. Example values: 5000 , 10000 , 20000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/channelReportedConversionValue> ;
    sh:name "channel reported conversion value" ;
    sh:description "Channel-Reported Conversion Value - Revenue generated from channel-reported conversions (purchases)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/channelReportedConversions> ;
    sh:name "channel reported conversions" ;
    sh:description "Channel-Reported Conversions (Purchases) - Number of channel-reported conversions (purchases)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/channelReportedOnsiteConversionValue> ;
    sh:name "channel reported onsite conversion value" ;
    sh:description "Channel-Reported Onsite Conversion Value - Revenue from channel-reported purchases made on the ad channel shop (e.g. Meta Shop, TikTok Shop)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/channelReportedOnsitePurchases> ;
    sh:name "channel reported onsite purchases" ;
    sh:description "Channel-Reported Onsite Purchases - Number of channel-reported purchases made on the ad channel shop (e.g. Meta Shop, TikTok Shop)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/channelReportedVisits> ;
    sh:name "channel reported visits" ;
    sh:description "Channel-Reported Visits - Number of channel-reported visits. Currently available for Criteo only." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/checkouts> ;
    sh:name "checkouts" ;
    sh:description "Checkouts Started - The number of checkout processes started." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/clicks> ;
    sh:name "clicks" ;
    sh:description "Clicks - Number of channel-reported clicks." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/cogs> ;
    sh:name "cogs" ;
    sh:description "Pixel Cost of Goods - The cost of goods for Pixel-reported purchases within the selected time frame (before refunds). Imported from the main sales platform, or edit these in Cost Settings > Cost of Goods. Note that COGS for Pixel data is set at attribution time and does not get updated subsequently, so may vary from COGS data in the Orders table." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/contacts> ;
    sh:name "contacts" ;
    sh:description "Add Contact Info - The number of times users submitted contact details during checkout." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/delivered> ;
    sh:name "delivered" ;
    sh:description "SMS Messages Delivered - The channel-reported number of messages that successfully reached the recipients' phones." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/emailSignups> ;
    sh:name "email signups" ;
    sh:description "Pixel Email Signups - The Pixel-reported total number of users who signed up for the mailing list during a session." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/grossProductSales> ;
    sh:name "gross product sales" ;
    sh:description "Pixel Gross Sales - Pixel-reported gross sales revenue (before shipping, taxes, discounts, or refunds). Gross Sales = Product Price x Units Sold" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/impressions> ;
    sh:name "impressions" ;
    sh:description "Impressions - Number of channel-reported impressions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/newCustomerCogs> ;
    sh:name "new customer cogs" ;
    sh:description "Pixel New Customer Cost of Goods - The cost of goods for Pixel-reported purchases by new customers within the selected time frame (before refunds). Imported from the main sales platform, or edit these in Cost Settings > Cost of Goods. Note that COGS for Pixel data is set at attribution time and does not get updated subsequently, so may vary from COGS data in the Orders table. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/newCustomerOrderRevenue> ;
    sh:name "new customer order revenue" ;
    sh:description "Pixel New Customer Conversion Value - Pixel-reported conversion value (order revenue) derived from New Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/newCustomerOrders> ;
    sh:name "new customer orders" ;
    sh:description "Pixel New Customer Purchases - Number of Pixel-reported orders placed by New Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/newVisitors> ;
    sh:name "new visitors" ;
    sh:description "Pixel New Visitors - The Pixel-reported number of first-time visitors to the site." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/oneDayViewConversionValue> ;
    sh:name "one day view conversion value" ;
    sh:description "One-Day View Conversion Value - The total value of channel-reported purchases made within one day of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/oneDayViewPurchases> ;
    sh:name "one day view purchases" ;
    sh:description "One-Day View Purchases - The total number of channel-reported purchases made within one day of viewing the ad." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/opened> ;
    sh:name "opened" ;
    sh:description "Opens - The channel-reported number of times the email/sms was opened by recipients." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/orderRevenue> ;
    sh:name "order revenue" ;
    sh:description "Pixel Conversion Value (CV) - Pixel-reported conversion value (order revenue) after shipping, taxes, and discounts (before refunds). Order Revenue = Gross Sales + Shipping + Taxes − Discounts" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/ordersQuantity> ;
    sh:name "orders quantity" ;
    sh:description "Pixel Purchases - The total number of Pixel-reported purchases (orders) within the selected timeframe. Note: This value is calculated based on the attribution model, and may be a fractional number." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/outboundClicks> ;
    sh:name "outbound clicks" ;
    sh:description "Outbound Clicks - Number of channel-reported outbound clicks." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/payments> ;
    sh:name "payments" ;
    sh:description "Add Payment Info - The number of times users submitted payment details during checkout." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/productQuantitySoldInOrder> ;
    sh:name "product quantity sold in order" ;
    sh:description "Units Sold - The total number of individual product units sold in the order." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/received> ;
    sh:name "received" ;
    sh:description "Received Messages - The channel-reported number of email messages successfully received by the target audience." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/refundMoney> ;
    sh:name "refund money" ;
    sh:description "Refunds - Total amount returned to customers for refunded sales, refunded taxes, and refunded shipping. Calculated based on the order date. Note that Triple Whale does not track refunds from third-party return management apps (e.g., Loop), so totals may vary from the sales platform. Refunds = Refunded Sales + Refunded Shipping + Refunded Tax" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/sent> ;
    sh:name "sent" ;
    sh:description "SMS Messages Sent - The channel-reported number of SMS messages sent in the campaign." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/sessionPageViews> ;
    sh:name "session page views" ;
    sh:description "Pixel Session Page Views - The Pixel-reported number of pages viewed during a website session." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/sessions> ;
    sh:name "sessions" ;
    sh:description "Pixel Sessions - The Pixel-reported number of online store sessions. Note that Triple Whale defines and tracks sessions differently from the main sales platform so there may be variance between the two. Learn how Triple Whale defines and tracks sessions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/shipping> ;
    sh:name "shipping" ;
    sh:description "Shipping Details Submitted - The number of times users submitted shipping details during checkout." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/spend> ;
    sh:name "spend" ;
    sh:description "Ad Spend - Channel-reported ad spend, excluding any custom expenses marked as ad spend." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/subscribedToList> ;
    sh:name "subscribed to list" ;
    sh:description "Subscribed to Mailing List - The channel-reported number of recipients subscribed to any mailing list." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/timeOnSite> ;
    sh:name "time on site" ;
    sh:description "Pixel Time on Site - The Pixel-reported time spent by users on the site during a session, measured in seconds." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/uniqueVisitors> ;
    sh:name "unique visitors" ;
    sh:description "Pixel Unique Visitors - The Pixel-reported number of unique visitors to the site." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/unsubscribed> ;
    sh:name "unsubscribed" ;
    sh:description "Unsubscribed - The channel-reported number of recipients who unsubscribed from any mailing list." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/websitePurchases> ;
    sh:name "website purchases" ;
    sh:description "Website Purchases - The total number of Pixel-reported purchases (orders) during a website session. Excludes recurring subscription purchases." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/averagePageViewsPerSession> ;
    sh:name "average page views per session" ;
    sh:description "Pixel Average Page Views Per Session - The average number of pages viewed by users during each session. Pixel Average Page Views Per Session = Session Page Views / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/averageSessionDuration> ;
    sh:name "average session duration" ;
    sh:description "Pixel Average Session Duration - The average time users spend on your site per session. Pixel Average Session Duration (in seconds) = Time on Site / (Number of Sessions - Number of Bounces)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/bounceRate> ;
    sh:name "bounce rate" ;
    sh:description "Pixel Bounce Rate - The percentage of single-page visits (bounces) out of total sessions. Pixel Bounce Rate = Number of Bounces / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/channelReportedAov> ;
    sh:name "channel reported aov" ;
    sh:description "Channel-Reported AOV - The average order value as reported by the advertising channel. Channel-Reported AOV = Channel-Reported Conversion Value / Number of Channel-Reported Conversions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/channelReportedConversionRate> ;
    sh:name "channel reported conversion rate" ;
    sh:description "Channel-Reported Conversion Rate - The percentage of visits that convert into orders, as reported by the channel. Channel-Reported Conversion Rate = Number of Channel-Reported Conversions / Number of Visits" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/channelReportedCpa> ;
    sh:name "channel reported cpa" ;
    sh:description "Channel-Reported Cost Per Acquisition - The cost to acquire a single conversion, as reported by the channel. Channel-Reported CPA = Ad Spend / Number of Channel-Reported Conversions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/channelReportedRoas> ;
    sh:name "channel reported roas" ;
    sh:description "Channel-Reported Return on Ad Spend - Revenue generated per dollar spent on ads, as reported by the channel. Channel-Reported ROAS = Channel-Reported Conversion Value / Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/cpc> ;
    sh:name "cpc" ;
    sh:description "Cost Per Click (CPC) - The average cost for each ad click. Cost Per Click (CPC) = Ad Spend / Clicks" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/cpm> ;
    sh:name "cpm" ;
    sh:description "Cost Per Mille (CPM) - The cost for 1,000 ad impressions. Cost Per Mille (CPM) = Ad Spend / Impressions x 1000" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/cpv> ;
    sh:name "cpv" ;
    sh:description "Cost Per Visit (CPV) - The cost for each visit driven by ads. Cost Per Visit (CPV) = Ad Spend / Number of Visits" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/ctr> ;
    sh:name "ctr" ;
    sh:description "Click-Through Rate - The percentage of impressions that result in a click. Click-Through Rate (CTR) = Clicks / Impressions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/emailSignupRate> ;
    sh:name "email signup rate" ;
    sh:description "Pixel Email Signup Rate - The percentage of sessions that result in email signups. Pixel Email SUR = Number of Email Signups / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/iroas> ;
    sh:name "iroas" ;
    sh:description "Pixel Incremental Return on Ad Spend - The additional revenue generated per dollar spent on advertising by comparing conversions between an exposed group (audience that sees the ad) and a holdout group (control group that does not see the ad). Isolates the incremental ROAS of an ad campaign on driving purchases." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/ncpa> ;
    sh:name "ncpa" ;
    sh:description "Pixel New Customer Cost Per Acquisition - The cost to acquire a new customer, as reported by Pixel. Pixel NCPA = Blended Ad Spend / Number of New Customer Orders Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/newCustomerRoas> ;
    sh:name "new customer roas" ;
    sh:description "Pixel New Customer ROAS - Revenue from new customers relative to ad spend. Pixel NC ROAS = New Customer Pixel Conversion Value / Ad Spend Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/newCustomersPercent> ;
    sh:name "new customers percent" ;
    sh:description "Pixel New Customers Percent - The percentage of Pixel-reported purchases made by new customers. Pixel New Customers % = Number of New Customer Pixel Purchases / Total Pixel Purchases Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/outboundCtr> ;
    sh:name "outbound ctr" ;
    sh:description "Outbound Click-Through Rate - The percentage of impressions that result in outbound clicks. Outbound CTR = Outbound Clicks / Impressions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelAov> ;
    sh:name "pixel aov" ;
    sh:description "Pixel AOV - The Pixel-reported average order value. Pixel AOV = Pixel Conversion Value / Number of Pixel Purchases" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelConversionRate> ;
    sh:name "pixel conversion rate" ;
    sh:description "Pixel Conversion Rate - The percentage of website sessions that result in purchases, as reported by Pixel. Conversion Rate = Number of Website Purchases / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelConversionValueDelta> ;
    sh:name "pixel conversion value delta" ;
    sh:description "Pixel Conversion Value Delta - The difference between Pixel-reported conversion value and channel-reported conversion value. Pixel CV Delta = Pixel Conversion Value - Channel-Reported Conversion Value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelCostPerAddToCart> ;
    sh:name "pixel cost per add to cart" ;
    sh:description "Pixel Cost Per Add To Cart - The cost associated with each add-to-cart action as reported by Pixel. Pixel Cost Per ATC = Ad Spend / Number of Add to Carts" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelCostPerEmailSignup> ;
    sh:name "pixel cost per email signup" ;
    sh:description "Pixel Cost Per Email Signup - The cost associated with each email signup as reported by Pixel. Pixel Cost Per ESU = Ad Spend / Number of Email Signups" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelCostPerNewVisitor> ;
    sh:name "pixel cost per new visitor" ;
    sh:description "Pixel Cost Per New Visitor - The cost to acquire a new visitor as reported by Pixel. Pixel Cost Per New Visitor = Ad Spend / Number of New Visitors" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelCostPerVisitor> ;
    sh:name "pixel cost per visitor" ;
    sh:description "Pixel Cost Per Visitor - The cost to acquire a unique visitor as reported by Pixel. Pixel Cost Per Visitor = Ad Spend / Number of Unique Visitors" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelCpa> ;
    sh:name "pixel cpa" ;
    sh:description "Pixel Cost Per Acquisition - The cost to acquire a purchase as reported by Pixel. Pixel CPA = Ad Spend / Number of Pixel Purchases" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelNcAov> ;
    sh:name "pixel nc aov" ;
    sh:description "Pixel New Customer Average Order Value - The average order value for new customers as reported by Pixel. Pixel NC AOV = New Customer Pixel Conversion Value / Number of New Customer Pixel Purchases Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelNcConversionRate> ;
    sh:name "pixel nc conversion rate" ;
    sh:description "Pixel New Customer Conversion Rate - The conversion rate for new customers as reported by Pixel. Pixel NC CR = Number of New Customer Pixel Purchases / Number of New Visitors Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelNewVisitorPercent> ;
    sh:name "pixel new visitor percent" ;
    sh:description "Pixel New Visitor Percent - The percentage of all visitors that are new as reported by Pixel. Pixel New Visitor % = Number of New Visitors / Number of Unique Visitors" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelProfit> ;
    sh:name "pixel profit" ;
    sh:description "Pixel Profit - The profit calculated as conversion value (order revenue) minus ad spend and cost of goods, as reported by Pixel. Pixel Profit = Pixel Conversion Value - Ad Spend - Pixel COGS" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/pixelRoas> ;
    sh:name "pixel roas" ;
    sh:description "Pixel Return on Ad Spend - Pixel-reported revenue relative to ad spend. Pixel ROAS = Pixel Conversion Value / Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/returningCustomerOrders> ;
    sh:name "returning customer orders" ;
    sh:description "Pixel Returning Customer Purchases - Number of Pixel-reported orders placed by Returning Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/returningCustomerRevenue> ;
    sh:name "returning customer revenue" ;
    sh:description "Pixel Returning Customer Revenue - Pixel-reported conversion value (order revenue) derived from Returning Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelJoined/returningCustomersPercent> ;
    sh:name "returning customers percent" ;
    sh:description "Pixel Returning Customers Percent - The percentage of Pixel-reported purchases made by Returning Customers. Pixel New Customers % = Number of Returning Customer Pixel Purchases / Total Pixel Purchases Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Pixel Keywords Joined
tw:PixelKeywordsJoinedShape a sh:NodeShape ;
  sh:targetClass tw:PixelKeywordsJoined ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day on which the ad was run or the order was placed, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the ad was run or the order was placed. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/accountId> ;
    sh:name "account id" ;
    sh:description "Ad Account ID - The unique ID for the ad account associated with the ad. Assigned by the ad platform. Example values: act_2168791943307744 , 18ce55770zl , 1986494684391480" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/adsetBidAmount> ;
    sh:name "adset bid amount" ;
    sh:description "Ad Set Bid Amount - The bid amount for the ad set. Example values: 25 , 35 , 40" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/adsetBidStrategy> ;
    sh:name "adset bid strategy" ;
    sh:description "Ad Set Bid Strategy - The bidding strategy for the ad set. Example values: LOWEST_COST_WITHOUT_CAP , LOWEST_COST_WITH_BID_CAP , COST_CAP , LOWEST_COST_WITH_MIN_ROAS" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/adsetId> ;
    sh:name "adset id" ;
    sh:description "Ad Set ID - The unique ID for the ad set associated with the ad click. Assigned by the ad platform. Example value: 120210439890740003" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/adsetName> ;
    sh:name "adset name" ;
    sh:description "Ad Set Name - The name of the ad set within a campaign. Example values: Broad Audience , Bracelets , Wellness" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/adsetStatus> ;
    sh:name "adset status" ;
    sh:description "Ad Set Status - The status of the ad set. Example values: ACTIVE , PAUSED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/attributionWindow> ;
    sh:name "attribution window" ;
    sh:description "Attribution Window - The time frame for attributing conversions to the ad. By default lifetime . Example values: 1_day , 7_days , 14_days , 28_days , lifetime" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/campaignBidStrategy> ;
    sh:name "campaign bid strategy" ;
    sh:description "Campaign Bid Strategy - The bidding strategy for the campaign. Example values: LOWEST_COST_WITHOUT_CAP , LOWEST_COST_WITH_BID_CAP , COST_CAP , LOWEST_COST_WITH_MIN_ROAS" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The unique ID for the marketing campaign associated with the ad. Assigned by the ad platform. Example values: 23852438666180053 , 531011533 , 20620285829" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/campaignName> ;
    sh:name "campaign name" ;
    sh:description "Campaign Name - The name of the marketing campaign associated with the ad. Example values: Catalog Retargeting , US Generic Search , Breakfast of Champions Campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/campaignStatus> ;
    sh:name "campaign status" ;
    sh:description "Campaign Status - The status of the campaign. Example values: ACTIVE , PAUSED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/campaignType> ;
    sh:name "campaign type" ;
    sh:description "Campaign Type - The type of campaign. For Email/SMS data, this maps to report_type . Example values: PERFORMANCE_MAX , SEARCH , flow , campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform through which the ad was delivered. Example values: facebook-ads , google-ads , Direct" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/country> ;
    sh:name "country" ;
    sh:description "Session Country - The country of the session where the order originated. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/msCountry> ;
    sh:name "ms country" ;
    sh:description "MS Session Country - The marketplace country code of the session. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/keywordId> ;
    sh:name "keyword id" ;
    sh:description "Keyword ID - The unique ID assigned to the keyword by the ad platform, captured by Triple Pixel from the ad URL. Example value: 313990984637674" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/keywordMatchType> ;
    sh:name "keyword match type" ;
    sh:description "Keyword Match Type - How closely a user’s search query must match the keyword. Possible values: EXACT , PHRASE , BROAD" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/keywordStatus> ;
    sh:name "keyword status" ;
    sh:description "Keyword Status - The status of the keyword. Possible values: ENABLED , PAUSED , REMOVED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/keywordSystemServingStatus> ;
    sh:name "keyword system serving status" ;
    sh:description "Keyword System Serving Status - Indicates whether the keyword is currently eligible to serve. Possible values: ELIGIBLE , RARELY_SERVED" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/keywordText> ;
    sh:name "keyword text" ;
    sh:description "Keyword Text - The text of the keyword as entered in the ad platform. Example values: running shoes , cheap flights , best coffee" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/attributionModel> ;
    sh:name "attribution model" ;
    sh:description "Attribution Model - The attribution model used. By default Triple Attribution . Possible values: Total Impact , Triple Attribution , Triple Attribution + Views , Clicks & Views , Linear All , Linear Paid , First Click , Last Click" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/addToCarts> ;
    sh:name "add to carts" ;
    sh:description "Pixel Add to Carts - The number of unique users who triggered an Add-to-Cart event, as reported by the Pixel." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/addresses> ;
    sh:name "addresses" ;
    sh:description "Address Details Submitted - The number of times users submitted address details during checkout." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/adsetDailyBudget> ;
    sh:name "adset daily budget" ;
    sh:description "Ad Set Daily Budget - The daily budget (in cents) set for the ad set within a campaign. By default shown in the shop's currency. Example values: 1750 , 6000 , 40000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/adsetLifetimeBudget> ;
    sh:name "adset lifetime budget" ;
    sh:description "Ad Set Lifetime Budget - The total budget (in cents) set for the ad set within a campaign over its lifetime. By default shown in the shop's currency. Example values: 5000 , 10000 , 20000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/bounces> ;
    sh:name "bounces" ;
    sh:description "Pixel Bounces - The Pixel-reported number of single-page sessions where the visitor left the site after a single page view." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/campaignDailyBudget> ;
    sh:name "campaign daily budget" ;
    sh:description "Campaign Daily Budget - The daily budget (in cents) for the campaign. Example values: 8000 , 10000 , 15000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/campaignLifetimeBudget> ;
    sh:name "campaign lifetime budget" ;
    sh:description "Campaign Lifetime Budget - The lifetime budget (in cents) for the campaign. Example values: 5000 , 10000 , 20000" ;
    sh:datatype xsd:long ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/channelReportedConversionValue> ;
    sh:name "channel reported conversion value" ;
    sh:description "Channel-Reported Conversion Value - Revenue generated from channel-reported conversions (purchases)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/checkouts> ;
    sh:name "checkouts" ;
    sh:description "Checkouts Started - The number of checkout processes started." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/clicks> ;
    sh:name "clicks" ;
    sh:description "Clicks - Number of channel-reported clicks." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/cogs> ;
    sh:name "cogs" ;
    sh:description "Pixel Cost of Goods - The cost of goods for Pixel-reported purchases within the selected time frame (before refunds). Imported from the main sales platform, or edit these in Cost Settings > Cost of Goods. Note that COGS for Pixel data is set at attribution time and does not get updated subsequently, so may vary from COGS data in the Orders table." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/contacts> ;
    sh:name "contacts" ;
    sh:description "Add Contact Info - The number of times users submitted contact details during checkout." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/emailSignups> ;
    sh:name "email signups" ;
    sh:description "Pixel Email Signups - The Pixel-reported total number of users who signed up for the mailing list during a session." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/grossProductSales> ;
    sh:name "gross product sales" ;
    sh:description "Pixel Gross Sales - Pixel-reported gross sales revenue (before shipping, taxes, discounts, or refunds). Gross Sales = Product Price x Units Sold" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/impressions> ;
    sh:name "impressions" ;
    sh:description "Impressions - Number of channel-reported impressions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/keywordCpcBid> ;
    sh:name "keyword cpc bid" ;
    sh:description "Keyword CPC Bid - The bid amount set for the keyword (cost-per-click). By default shown in the shop's currency. Example values: 1500 , 10,000 , 28,000" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/keywordEffectiveCpcBid> ;
    sh:name "keyword effective cpc bid" ;
    sh:description "Keyword Effective CPC Bid - The effective CPC bid after platform bid adjustments are applied. By default shown in the shop's currency. Example values: 1500 , 10,000 , 28,000" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/keywordQualityScore> ;
    sh:name "keyword quality score" ;
    sh:description "Keyword Quality Score - The quality score assigned to the keyword by the ad platform (0 – 10, higher is better)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/newCustomerCogs> ;
    sh:name "new customer cogs" ;
    sh:description "Pixel New Customer Cost of Goods - The cost of goods for Pixel-reported purchases by new customers within the selected time frame (before refunds). Imported from the main sales platform, or edit these in Cost Settings > Cost of Goods. Note that COGS for Pixel data is set at attribution time and does not get updated subsequently, so may vary from COGS data in the Orders table. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/newCustomerOrderRevenue> ;
    sh:name "new customer order revenue" ;
    sh:description "Pixel New Customer Conversion Value - Pixel-reported conversion value (order revenue) derived from New Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/newCustomerOrders> ;
    sh:name "new customer orders" ;
    sh:description "Pixel New Customer Purchases - Number of Pixel-reported orders placed by New Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/newVisitors> ;
    sh:name "new visitors" ;
    sh:description "Pixel New Visitors - The Pixel-reported number of first-time visitors to the site." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/orderRevenue> ;
    sh:name "order revenue" ;
    sh:description "Pixel Conversion Value (CV) - Pixel-reported conversion value (order revenue) after shipping, taxes, and discounts (before refunds).Order Revenue = Gross Sales + Shipping + Taxes − Discounts Order Revenue = Gross Sales - Discounts + Shipping + Tax" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/ordersQuantity> ;
    sh:name "orders quantity" ;
    sh:description "Pixel Purchases - The total number of Pixel-reported purchases (orders) within the selected timeframe. Note: This value is calculated based on the attribution model, and may be a fractional number." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/payments> ;
    sh:name "payments" ;
    sh:description "Add Payment Info - The number of times users submitted payment details during checkout." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/productQuantitySoldInOrder> ;
    sh:name "product quantity sold in order" ;
    sh:description "Units Sold - The total number of individual product units sold in the order." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/refundMoney> ;
    sh:name "refund money" ;
    sh:description "Refunds - Total amount returned to customers for refunded sales, refunded taxes, and refunded shipping. Calculated based on the order date. Note that Triple Whale does not track refunds from third-party return management apps (e.g., Loop), so totals may vary from the sales platform. Refunds = Refunded Sales + Refunded Shipping + Refunded Tax" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/sessionPageViews> ;
    sh:name "session page views" ;
    sh:description "Pixel Session Page Views - The Pixel-reported number of pages viewed during a website session." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/sessions> ;
    sh:name "sessions" ;
    sh:description "Pixel Sessions - The Pixel-reported number of online store sessions. Note that Triple Whale defines and tracks sessions differently from the main sales platform so there may be variance between the two. Learn how Triple Whale defines and tracks sessions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/shipping> ;
    sh:name "shipping" ;
    sh:description "Shipping Details Submitted - The number of times users submitted shipping details during checkout." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/spend> ;
    sh:name "spend" ;
    sh:description "Ad Spend - Channel-reported ad spend, excluding any custom expenses marked as ad spend." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/timeOnSite> ;
    sh:name "time on site" ;
    sh:description "Pixel Time on Site - The Pixel-reported time spent by users on the site during a session, measured in seconds." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/uniqueVisitors> ;
    sh:name "unique visitors" ;
    sh:description "Pixel Unique Visitors - The Pixel-reported number of unique visitors to the site." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/websitePurchases> ;
    sh:name "website purchases" ;
    sh:description "Website Purchases - The total number of Pixel-reported purchases (orders) during a website session. Excludes recurring subscription purchases." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/averagePageViewsPerSession> ;
    sh:name "average page views per session" ;
    sh:description "Pixel Average Page Views Per Session - The average number of pages viewed by users during each session. Pixel Average Page Views Per Session = Session Page Views / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/averageSessionDuration> ;
    sh:name "average session duration" ;
    sh:description "Pixel Average Session Duration - The average time users spend on your site per session. Pixel Average Session Duration (in seconds) = Time on Site / (Number of Sessions - Number of Bounces)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/bounceRate> ;
    sh:name "bounce rate" ;
    sh:description "Pixel Bounce Rate - The percentage of single-page visits (bounces) out of total sessions. Pixel Bounce Rate = Number of Bounces / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/channelReportedRoas> ;
    sh:name "channel reported roas" ;
    sh:description "Channel-Reported Return on Ad Spend - Revenue generated per dollar spent on ads, as reported by the channel. Channel-Reported ROAS = Channel-Reported Conversion Value / Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/cpc> ;
    sh:name "cpc" ;
    sh:description "Cost Per Click (CPC) - The average cost for each ad click. Cost Per Click (CPC) = Ad Spend / Clicks" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/cpm> ;
    sh:name "cpm" ;
    sh:description "Cost Per Mille (CPM) - The cost for 1,000 ad impressions. Cost Per Mille (CPM) = Ad Spend / Impressions x 1000" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/ctr> ;
    sh:name "ctr" ;
    sh:description "Click-Through Rate - The percentage of impressions that result in a click. Click-Through Rate (CTR) = Clicks / Impressions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/emailSignupRate> ;
    sh:name "email signup rate" ;
    sh:description "Pixel Email Signup Rate - The percentage of sessions that result in email signups. Pixel Email SUR = Number of Email Signups / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/iroas> ;
    sh:name "iroas" ;
    sh:description "Pixel Incremental Return on Ad Spend - The additional revenue generated per dollar spent on advertising by comparing conversions between an exposed group (audience that sees the ad) and a holdout group (control group that does not see the ad). Isolates the incremental ROAS of an ad campaign on driving purchases." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/ncpa> ;
    sh:name "ncpa" ;
    sh:description "Pixel New Customer Cost Per Acquisition - The cost to acquire a new customer, as reported by Pixel. Note that Triple Whale classifies all customers as either new or returning, while the main sales platform may leave some unclassified, potentially leading to discrepancies. Pixel NCPA = Blended Ad Spend / Number of New Customer Orders" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/newCustomerRoas> ;
    sh:name "new customer roas" ;
    sh:description "Pixel New Customer ROAS - Revenue from new customers relative to ad spend. Pixel NC ROAS = New Customer Pixel Conversion Value / Ad Spend Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/newCustomersPercent> ;
    sh:name "new customers percent" ;
    sh:description "Pixel New Customers Percent - The percentage of Pixel-reported purchases made by new customers. Pixel New Customers % = Number of New Customer Pixel Purchases / Total Pixel Purchases Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelAov> ;
    sh:name "pixel aov" ;
    sh:description "Pixel AOV - The Pixel-reported average order value. Pixel AOV = Pixel Conversion Value / Number of Pixel Purchases" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelConversionRate> ;
    sh:name "pixel conversion rate" ;
    sh:description "Pixel Conversion Rate - The percentage of website sessions that result in purchases, as reported by Pixel. Conversion Rate = Number of Website Purchases / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelConversionValueDelta> ;
    sh:name "pixel conversion value delta" ;
    sh:description "Pixel Conversion Value Delta - The difference between Pixel-reported conversion value and channel-reported conversion value. Pixel CV Delta = Pixel Conversion Value - Channel-Reported Conversion Value" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelCostPerAddToCart> ;
    sh:name "pixel cost per add to cart" ;
    sh:description "Pixel Cost Per Add To Cart - The cost associated with each add-to-cart action as reported by Pixel. Pixel Cost Per ATC = Ad Spend / Number of Add to Carts" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelCostPerEmailSignup> ;
    sh:name "pixel cost per email signup" ;
    sh:description "Pixel Cost Per Email Signup - The cost associated with each email signup as reported by Pixel. Pixel Cost Per ESU = Ad Spend / Number of Email Signups" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelCostPerNewVisitor> ;
    sh:name "pixel cost per new visitor" ;
    sh:description "Pixel Cost Per New Visitor - The cost to acquire a new visitor as reported by Pixel. Pixel Cost Per New Visitor = Ad Spend / Number of New Visitors" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelCostPerVisitor> ;
    sh:name "pixel cost per visitor" ;
    sh:description "Pixel Cost Per Visitor - The cost to acquire a unique visitor as reported by Pixel. Pixel Cost Per Visitor = Ad Spend / Number of Unique Visitors" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelCpa> ;
    sh:name "pixel cpa" ;
    sh:description "Pixel Cost Per Acquisition - The cost to acquire a purchase as reported by Pixel. Pixel CPA = Ad Spend / Number of Pixel Purchases" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelNcAov> ;
    sh:name "pixel nc aov" ;
    sh:description "Pixel New Customer Average Order Value - The average order value for new customers as reported by Pixel. Note that Triple Whale classifies all customers as either new or returning, while the main sales platform may leave some unclassified, potentially leading to discrepancies. Pixel NC AOV = New Customer Pixel Conversion Value / Number of New Customer Pixel Purchases" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelNcConversionRate> ;
    sh:name "pixel nc conversion rate" ;
    sh:description "Pixel New Customer Conversion Rate - The conversion rate for new customers as reported by Pixel. Note that Triple Whale classifies all customers as either new or returning, while the main sales platform may leave some unclassified, potentially leading to discrepancies. Pixel NC CR = Number of New Customer Pixel Purchases / Number of New Visitors" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelNewVisitorPercent> ;
    sh:name "pixel new visitor percent" ;
    sh:description "Pixel New Visitor Percent - The percentage of all visitors that are new as reported by Pixel. Pixel New Visitor % = Number of New Visitors / Number of Unique Visitors" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelProfit> ;
    sh:name "pixel profit" ;
    sh:description "Pixel Profit - The profit calculated as conversion value (order revenue) minus ad spend and cost of goods, as reported by Pixel. Pixel Profit = Pixel Conversion Value - Ad Spend - Pixel COGS" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/pixelRoas> ;
    sh:name "pixel roas" ;
    sh:description "Pixel Return on Ad Spend - Pixel-reported revenue relative to ad spend. Pixel ROAS = Pixel Conversion Value / Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/returningCustomerOrders> ;
    sh:name "returning customer orders" ;
    sh:description "Pixel Returning Customer Purchases - Number of Pixel-reported orders placed by Returning Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/returningCustomerRevenue> ;
    sh:name "returning customer revenue" ;
    sh:description "Pixel Returning Customer Revenue - Pixel-reported conversion value (order revenue) derived from Returning Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelKeywordsJoined/returningCustomersPercent> ;
    sh:name "returning customers percent" ;
    sh:description "Pixel Returning Customers Percent - The percentage of Pixel-reported purchases made by Returning Customers. Pixel New Customers % = Number of Returning Customer Pixel Purchases / Total Pixel Purchases Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Pixel Order
tw:PixelOrderShape a sh:NodeShape ;
  sh:targetClass tw:PixelOrder ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the order was placed, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the order was placed. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/accountId> ;
    sh:name "account id" ;
    sh:description "Ad Account ID - The unique ID for the ad account associated with the ad. Assigned by the ad platform. Example values: act_2168791943307744 , 18ce55770zl , 1986494684391480" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/adId> ;
    sh:name "ad id" ;
    sh:description "Ad ID - The unique ad ID. Assigned by the ad platform. Example value: 120210439891110007" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/adName> ;
    sh:name "ad name" ;
    sh:description "Ad Name - The name of the ad. Example values: Kids Ad 1 , Read Our Latest Blog 03/12/2023 , 8 best fall looks" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/adsetId> ;
    sh:name "adset id" ;
    sh:description "Ad Set ID - The unique ID for the ad set associated with the ad click. Assigned by the ad platform. Example value: 120210439890740003" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/adsetName> ;
    sh:name "adset name" ;
    sh:description "Ad Set Name - The name of the ad set within a campaign. Example values: Broad Audience , Bracelets , Wellness" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/attributionWindow> ;
    sh:name "attribution window" ;
    sh:description "Attribution Window - The time frame for attributing conversions to the ad. By default lifetime . Example values: 1_day , 7_days , 14_days , 28_days , lifetime Note: group by attribution_window is unavailable on the Pixel Orders table." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/billingCity> ;
    sh:name "billing city" ;
    sh:description "Billing City - The city of the customer's billing address. Example value: San Francisco" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/billingCountry> ;
    sh:name "billing country" ;
    sh:description "Billing Country - The full name of the customer's billing country. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/billingCountryCode> ;
    sh:name "billing country code" ;
    sh:description "Billing Country Code - The country code of the customer's billing address. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/billingProvince> ;
    sh:name "billing province" ;
    sh:description "Billing State - The state or province of the customer's billing address. Example values: Oregon , British Columbia , Michigan" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/browser> ;
    sh:name "browser" ;
    sh:description "Web Browser - The web browser of the session where the order originated. Example values: Chrome , Firefox , Safari" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The unique ID for the marketing campaign associated with the ad. Assigned by the ad platform. Example values: 23852438666180053 , 531011533 , 20620285829" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/campaignName> ;
    sh:name "campaign name" ;
    sh:description "Campaign Name - The name of the marketing campaign associated with the ad. Example values: Catalog Retargeting , US Generic Search , Breakfast of Champions Campaign" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/campaignType> ;
    sh:name "campaign type" ;
    sh:description "Campaign Type - The type of campaign. Example values: PERFORMANCE_MAX , SEARCH , VIDEO , DEMAND_GEN" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/cancelledAt> ;
    sh:name "cancelled at" ;
    sh:description "Cancelled Date - The time at which the order was canceled. Formatted according to the ISO 8601 international standard . NULL if the order was not canceled. \\n \\nExample value: 2022-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform through which the ad was delivered. Example values: facebook-ads , tiktok-ads , Direct" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/clickDate> ;
    sh:name "click date" ;
    sh:description "Click Date - The date the ad was clicked. Based on the shop time zone at the moment of the click. Example value: 2024-10-26" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/clickTs> ;
    sh:name "click ts" ;
    sh:description "Click Timestamp - The time at which the ad was clicked. Formatted according to the ISO 8601 international standard . Example value: 2024-10-26 20:03:48" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/createdAt> ;
    sh:name "created at" ;
    sh:description "Order Created Date - The time at which the order record was created. Formatted according to the ISO 8601 international standard . Example value: 2022-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/currency> ;
    sh:name "currency" ;
    sh:description "Order Currency - The original currency of the order, before conversion to the shop's currency. All monetary values are automatically converted to the shop's selected currency for display. Example values: USD , GBP , EUR" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customerEmail> ;
    sh:name "customer email" ;
    sh:description "Customer Email - The customer's email address. Example value: [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customerFirstName> ;
    sh:name "customer first name" ;
    sh:description "Customer First Name - The customer's first name. Example value: John" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customerFromCity> ;
    sh:name "customer from city" ;
    sh:description "Customer City - The city of the customer's shipping address. Example value: San Francisco" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customerFromCountryCode> ;
    sh:name "customer from country code" ;
    sh:description "Customer Country - The country code of the customer's default address. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customerFromCountryName> ;
    sh:name "customer from country name" ;
    sh:description "Customer Country Name - The full name of the customer's country. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customerFromStateCode> ;
    sh:name "customer from state code" ;
    sh:description "Customer State - The state or province of the customer's shipping address. Example value: CA" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customerId> ;
    sh:name "customer id" ;
    sh:description "Customer ID - The unique identifier for the customer, assigned by the main sales platform. Example value: 5209503793328" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customerIdKey> ;
    sh:name "customer id key" ;
    sh:description "Customer ID Key - Join key for connecting this table to the Customers table. Contains customer_id for Shopify shops and customer_email for non-Shopify shops (e.g., Amazon, BigCommerce, WooCommerce). Example values: 5209503793328 , [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customerLastName> ;
    sh:name "customer last name" ;
    sh:description "Customer Last Name - The last name of the customer. Example value: Doe" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customerTags> ;
    sh:name "customer tags" ;
    sh:description "Customer Tags - Tags associated with the customer, set in the main sales platform. Example values: Active Subscriber , PayPal_user , Login with FB" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/device> ;
    sh:name "device" ;
    sh:description "Device - The type of device used by the visitor for the session. Example values: mobile , desktop , tablet , wearable" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/discountCode> ;
    sh:name "discount code" ;
    sh:description "Discount Code - The discount code or promotion name used in the order. Set by the seller in the main sales platform. Example values: WELCOME10 , Replacement for defective item , 807QRWMNK2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/fulfillmentStatus> ;
    sh:name "fulfillment status" ;
    sh:description "Fulfillment Status - The fulfillment status of the order. Example values: fulfilled , partial , restocked" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/isFirstOrderInSubscription> ;
    sh:name "is first order in subscription" ;
    sh:description "Is First Order in Subscription - True if the order is the first in a subscription series. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/isNewCustomer> ;
    sh:name "is new customer" ;
    sh:description "Is New Customer - True if this is the customer's first order. Possible values: true , false Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/isSubscriptionOrder> ;
    sh:name "is subscription order" ;
    sh:description "Is Subscription Order - True if the order is part of a subscription. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/landingPage> ;
    sh:name "landing page" ;
    sh:description "Landing Page - The URL path (without query parameters) of the page the visitor landed after clicking on an ad or link, indicating the first page viewed in a session. Example value: /myshop/collections/green_sweater" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/attributionModel> ;
    sh:name "attribution model" ;
    sh:description "Attribution Model - The attribution model used. By default Triple Attribution . Possible values: Total Impact , Triple Attribution , Triple Attribution + Views , Clicks & Views , Linear All , Linear Paid , First Click , Last Click Note that Total Impact is not available on the Pixel Orders table." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/orderId> ;
    sh:name "order id" ;
    sh:description "Order ID - The unique order ID, assigned by the main sales platform. Example value: 4930225799243" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/orderName> ;
    sh:name "order name" ;
    sh:description "Order Name - The name of the order as assigned by the seller on the main sales platform. Example values: #2188464 , Ex-2163819-9" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/platform> ;
    sh:name "platform" ;
    sh:description "Sales Platform - The sales platform where the order was processed. Example values: Shopify , Amazon" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/productsInfo> ;
    sh:name "products info" ;
    sh:description "Products - Details about the products associated with the order (at the level of the variant), including name, product ID, variant ID, type, SKU, etc. Returns the latest product information, not necessarily the data at the time the order was placed." ;
    sh:node tw:PixelOrderProductsInfoShape ;
    sh:class tw:PixelOrderProductsInfo ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/sessionCity> ;
    sh:name "session city" ;
    sh:description "Session City - The city of the session where the order originated. Example values: San Francisco , Tel Aviv , Kyiv" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/sessionCountry> ;
    sh:name "session country" ;
    sh:description "Session Country - The country of the session where the order originated. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/sessionId> ;
    sh:name "session id" ;
    sh:description "Session ID - The unique session ID assigned by Triple Pixel. Note: Only sessions with an order are included in the Pixel Orders table. For data on all sessions, use the Sessions table. Example value: cltlok4y634IRw62AZ_1710700966152" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/shippingCity> ;
    sh:name "shipping city" ;
    sh:description "Shipping City - The city of the shipping address. Example value: San Francisco" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/shippingCountryCode> ;
    sh:name "shipping country code" ;
    sh:description "Shipping Country Code - The country code of the shipping address. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/shippingCountryName> ;
    sh:name "shipping country name" ;
    sh:description "Shipping Country Name - The full name of the shipping country. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/shippingState> ;
    sh:name "shipping state" ;
    sh:description "Shipping State - The province or state of the shipping address. Example value: California" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/shippingStateCode> ;
    sh:name "shipping state code" ;
    sh:description "Shipping State Code - The province or state code of the shipping address. Example value: CA" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/shippingZip> ;
    sh:name "shipping zip" ;
    sh:description "Shipping Zip Code - The zip/postal code of the customer's shipping address. Example values: 48104 , 18235-2239 , CH25 9BH" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/shopTimezone> ;
    sh:name "shop timezone" ;
    sh:description "Shop Timezone - The designated timezone of the shop according to the tz database ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/sourceName> ;
    sh:name "source name" ;
    sh:description "Source - The origin of the order as designated by the seller on the main sales platform. Example values: web , pos , tiktok" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/tags> ;
    sh:name "tags" ;
    sh:description "Tags - Tags associated with the order, assigned by the seller in the main sales platform. Example values: Upsell , Order Credits , discount_eligible" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/tripleId> ;
    sh:name "triple id" ;
    sh:description "Triple Pixel ID - The unique ID assigned by Triple Pixel to track visitors across sessions. Example value: cltlok4y634IRw62AZ" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/utmMedium> ;
    sh:name "utm medium" ;
    sh:description "UTM Medium - The UTM medium parameter captured by Triple Pixel from the ad URL Example values: sponsored , paid , profile_link" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/utmSource> ;
    sh:name "utm source" ;
    sh:description "UTM Source - The UTM source parameter captured by Triple Pixel from the ad URL. Example values: web , pos , tiktok , facebook , google , newsletter" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/costOfGoods> ;
    sh:name "cost of goods" ;
    sh:description "Cost of Goods (COGS) - The cost of goods for Pixel-reported purchases within the selected time frame (before refunds). Imported from the main sales platform, or edit these in Cost Settings > Cost of Goods. Note that COGS for Pixel data is set at attribution time and does not get updated subsequently, so may vary from COGS in the Orders table." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/currencyRate> ;
    sh:name "currency rate" ;
    sh:description "Currency Rate - The rate used to convert monetary values to the shop's currency. If no conversion was applied, the value is 1 . To convert back to the original currency, divide by this rate." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customExpenses> ;
    sh:name "custom expenses" ;
    sh:description "Order-Level Custom Expenses - Additional custom expenses associated with individual orders. Import these using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customGrossProfit> ;
    sh:name "custom gross profit" ;
    sh:description "Custom Gross Profit - Custom gross profit for individual orders. Import using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customGrossSales> ;
    sh:name "custom gross sales" ;
    sh:description "Custom Gross Sales - Custom gross sales for individual orders. Import using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customNetRevenue> ;
    sh:name "custom net revenue" ;
    sh:description "Custom Net Revenue - Custom net revenue for individual orders. Import using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customOrdersQuantity> ;
    sh:name "custom orders quantity" ;
    sh:description "Custom Orders Quantity - The custom-defined quantity of orders to count for the single order_id . Possible values: 0 , 1 Import using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/customTotalItemsQuantity> ;
    sh:name "custom total items quantity" ;
    sh:description "Custom Total Items - The custom-defined total number of items in the order. Import using the Enrich Orders Data API endpoint." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/discountAmount> ;
    sh:name "discount amount" ;
    sh:description "Discounts - The total discount amount applied to the order, including shipping discounts." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/discountAmountForProduct> ;
    sh:name "discount amount for product" ;
    sh:description "Product Discount Amount - The total product discount amount applied to the order." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/discountAmountForShipping> ;
    sh:name "discount amount for shipping" ;
    sh:description "Shipping Discount Amount - The total shipping discount amount applied to the order." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/grossProductSales> ;
    sh:name "gross product sales" ;
    sh:description "Gross Sales - Gross sales revenue (before shipping, taxes, discounts, or refunds). Gross Sales = Product Price x Units Sold" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/handlingFees> ;
    sh:name "handling fees" ;
    sh:description "Handling Fees - Handling fees (e.g. boxing, packaging, or “pick & pack” services) paid by the seller for orders in the selected time frame. Edit these in Cost Settings > Cost of Goods." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/orderRevenue> ;
    sh:name "order revenue" ;
    sh:description "Order Revenue - Revenue earned after shipping, taxes, and discounts (before refunds). Order Revenue = Gross Sales + Shipping + Taxes − Discounts" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/ordersQuantity> ;
    sh:name "orders quantity" ;
    sh:description "Pixel Purchases - The total number of Pixel-reported purchases (orders) within the selected timeframe. Note: This value is calculated based on the attribution model, and may be a fractional number." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/paymentGatewayCosts> ;
    sh:name "payment gateway costs" ;
    sh:description "Payment Gateway Costs - Payment processing fees (not including currency conversion fees) paid by the seller. Edit these in Cost Settings > Gateway Costs." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/productQuantitySoldInOrder> ;
    sh:name "product quantity sold in order" ;
    sh:description "Units Sold - The total number of individual product units sold in the order." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/refundMoney> ;
    sh:name "refund money" ;
    sh:description "Refunds - Total amount returned to customers for refunded sales, refunded taxes, and refunded shipping. Calculated based on the order date. Note that Triple Whale does not track refunds from third-party return management apps (e.g., Loop), so totals may vary from the sales platform. Refunds = Refunded Sales + Refunded Shipping + Refunded Tax" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/shippingCosts> ;
    sh:name "shipping costs" ;
    sh:description "Shipping Costs - Shipping costs paid by the seller for orders within the select timeframe. Edit these in Cost Settings > Shipping." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/shippingPrice> ;
    sh:name "shipping price" ;
    sh:description "Shipping Price - The total shipping price of the order, including shipping taxes and shipping discounts." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/taxes> ;
    sh:name "taxes" ;
    sh:description "Taxes - Amount customers paid in taxes (excluding refunded taxes)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/aov> ;
    sh:name "aov" ;
    sh:description "Pixel Average Order Value - The Pixel-reported average order value. Pixel AOV = Pixel Conversion Value / Number of Pixel Purchases" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/ltv> ;
    sh:name "ltv" ;
    sh:description "Lifetime Value - The average order revenue per customer, for orders placed within the selected timeframe. LTV = Order Revenue / Unique Customers" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/newCustomerOrders> ;
    sh:name "new customer orders" ;
    sh:description "Pixel New Customer Purchases - The total number of orders placed by new customers within the selected time frame. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/newCustomerRevenue> ;
    sh:name "new customer revenue" ;
    sh:description "Pixel New Customer Revenue - The total revenue derived from orders by new customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/newCustomersPercent> ;
    sh:name "new customers percent" ;
    sh:description "Pixel New Customers Percent - The percentage of Pixel-reported purchases made by new customers. Pixel New Customers % = Number of New Customer Pixel Purchases / Total Pixel Purchases Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/ordersWithAmount> ;
    sh:name "orders with amount" ;
    sh:description "Non-Zero Pixel Purchases - The total number of Pixel-reported purchases with a revenue greater than zero. Non-Zero Pixel Purchases = Count of Pixel Purchases where Order Revenue > $0" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/returningCustomerOrders> ;
    sh:name "returning customer orders" ;
    sh:description "Pixel Returning Customer Purchases - Number of Pixel-reported orders placed by Returning Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/returningCustomerRevenue> ;
    sh:name "returning customer revenue" ;
    sh:description "Pixel Returning Customer Revenue - Pixel-reported conversion value (order revenue) derived from Returning Customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/returningCustomersPercent> ;
    sh:name "returning customers percent" ;
    sh:description "Pixel Returning Customers Percent - The percentage of Pixel-reported purchases made by Returning Customers. Pixel New Customers % = Number of Returning Customer Pixel Purchases / Total Pixel Purchases Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/trueAov> ;
    sh:name "true aov" ;
    sh:description "Pixel True Average Order Value - The average non-zero order value (before shipping or taxes), as reported by the sales platform. True AOV = (Order Revenue - Shipping Price - Taxes) / Number of Orders > $0" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrder/uniqueCustomers> ;
    sh:name "unique customers" ;
    sh:description "Unique Customers - Number of unique customers who placed orders within the selected timeframe." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Products Info
tw:PixelOrderProductsInfoShape a sh:NodeShape ;
  sh:targetClass tw:PixelOrderProductsInfo ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/productId> ;
    sh:name "product id" ;
    sh:description "Product ID - The unique ID of the product as set within the main sales platform. Example value: 3891505496131" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/productName> ;
    sh:name "product name" ;
    sh:description "Product Name - The name of the product as set within the main sales platform. Example values: Green Soft Socks 3-Pack , Paring Knife Travel Case , Gift Subscription" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/vendor> ;
    sh:name "vendor" ;
    sh:description "Product Vendor - The vendor of the product as set within the main sales platform. Example values: Acme , XYZ Corp , Brandless" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/productType> ;
    sh:name "product type" ;
    sh:description "Product Type - The product type as set within the main sales platform. Example values: Jackets , Coffee Mugs , Books" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/productTags> ;
    sh:name "product tags" ;
    sh:description "Product Tags - Tags associated with the product, set in the main sales platform. Example values: Upsell , Order Credits , discount_eligible" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/productSku> ;
    sh:name "product sku" ;
    sh:description "Product SKU - The SKU (Stock Keeping Unit) for the product as set within the main sales platform. Example values: GP-BACK-02 , A02630 , POP200NAVY" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/variantId> ;
    sh:name "variant id" ;
    sh:description "Product Variant ID - The unique ID for a specific variant of a product as set within the main sales platform. Example value: 29275946877001" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/isGiftCard> ;
    sh:name "is gift card" ;
    sh:description "Is Gift Card - True if the product purchased is a gift card. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/properties> ;
    sh:name "properties" ;
    sh:description "Product Properties - Custom key–value properties attached to the product line item (e.g., personalization details, bundle metadata, app-specific fields)." ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/propertiesName> ;
    sh:name "properties name" ;
    sh:description "Product Property Name - The name or key of the product property." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/propertiesValue> ;
    sh:name "properties value" ;
    sh:description "Product Property Value - The value assigned to the product property." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/duties> ;
    sh:name "duties" ;
    sh:description "Product Duties - Import duties or tariffs applied to the product." ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/dutiesDutyId> ;
    sh:name "duties duty id" ;
    sh:description "Product Duty ID - The unique identifier of the duty applied to the product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines> ;
    sh:name "duties tax lines" ;
    sh:description "Product Duty Tax Lines - Tax lines charged on the product duty." ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLinesPrice> ;
    sh:name "duties tax lines price" ;
    sh:description "Product Duty Tax Line Amount - The tax amount charged on the product duty per tax line." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/dutiesPrice> ;
    sh:name "duties price" ;
    sh:description "Product Duty Amount - The monetary amount of duty charged for the product.'" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/productNamePrice> ;
    sh:name "product name price" ;
    sh:description "Product Price - The price of a single product (to the buyer)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/discountAmountForProduct> ;
    sh:name "discount amount for product" ;
    sh:description "Total Product Discount - The amount discounted from the product price, before taxes. By default shown in the shop's currency." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/netDiscountAmountForProduct> ;
    sh:name "net discount amount for product" ;
    sh:description "Net Product Discount - The amount discounted from the product price, after taxes. By default shown in the shop's currency." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/productNameQuantitySold> ;
    sh:name "product name quantity sold" ;
    sh:description "Product Units Sold - The total number of individual units sold for the product." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/singleProductCost> ;
    sh:name "single product cost" ;
    sh:description "Product Cost - The cost of a single product (to the seller)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Post Purchase Survey
tw:PostPurchaseSurveyShape a sh:NodeShape ;
  sh:targetClass tw:PostPurchaseSurvey ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the post-purchase survey was submitted, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the post-purchase survey was submitted. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/answer> ;
    sh:name "answer" ;
    sh:description "Answer - The response provided by the customer to the survey question. Example values: Online search , Social media , From a friend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/customerEmail> ;
    sh:name "customer email" ;
    sh:description "Customer Email - The customer’s email address. Example value: [email protected]" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/customerId> ;
    sh:name "customer id" ;
    sh:description "Customer ID - The unique customer ID. Assigned by the main shop platform. Example value: 5209503793328" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/customerPhone> ;
    sh:name "customer phone" ;
    sh:description "Customer Phone - The customer's phone number. Example value: 18005550199" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/orderId> ;
    sh:name "order id" ;
    sh:description "Order ID - The unique order ID. Assigned by the main shop platform. Example value: 4930225799243" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/question> ;
    sh:name "question" ;
    sh:description "Survey Question - The specific survey question asked to the customer. Example value: How did you first hear about us?" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/questionType> ;
    sh:name "question type" ;
    sh:description "Question Type - The type of the question asked. Example values: standard , custom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/source> ;
    sh:name "source" ;
    sh:description "Source - The traffic source or referral channel that directed the customer to the survey. Example values: google-ads , facebook-ads , snapchat-ads See full list of standardized PPS source IDs" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PostPurchaseSurvey/surveyType> ;
    sh:name "survey type" ;
    sh:description "Survey Type (Platform) - The post-purchase survey platform used. Example values: KNO , TW-survey , FAIRING" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Product Analytics
tw:ProductAnalyticsShape a sh:NodeShape ;
  sh:targetClass tw:ProductAnalytics ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/includeAmazon> ;
    sh:name "include amazon" ;
    sh:description "Include Amazon - Includes Amazon sales data in the results, in addition to the main sales platform. Possible values: true , false Defaults to false ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/includeFreeProducts> ;
    sh:name "include free products" ;
    sh:description "Include Free Products - Includes products considered \"free\" based on multi-item discounts. Possible values: true , false Defaults to false . Set to true to match order-based totals with the Summary page. Note: Some discounts are spread across multiple items in an order; if the discount fully covers the price of some of the items, those items are counted as “free\"." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/includeNonActiveProducts> ;
    sh:name "include non active products" ;
    sh:description "Include Non-Active Products - Includes non-active (e.g. draft or pending) products. Possible values: true , false Defaults to false . Set to true to match order-based totals with the Summary page." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the order was placed. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/collectionId> ;
    sh:name "collection id" ;
    sh:description "Collection ID - The unique ID of the collection as defined in the sales platform. Example value: 123456789" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/collectionName> ;
    sh:name "collection name" ;
    sh:description "Collection Name - The name of the collection as defined in the sales platform. Example values: Summer Gift Guide , Long-Sleeve Packs , Christmas Collection" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/entity> ;
    sh:name "entity" ;
    sh:description "Entity Type - The entity type of the item. Example values: product , variant , product_collection" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/id> ;
    sh:name "id" ;
    sh:description "ID - The unique ID of the item for the current row. The value depends on the granularity level of the query (variant-level granularity → variant_id ; product-level granularity → product_id ; collection-level granularity → collection_id ). Example value: 3891505496131" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/inventoryQuantity> ;
    sh:name "inventory quantity" ;
    sh:description "Inventory Quantity - The current inventory quantity of the product or variant. Example values: 21749 , 57 , 332" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/name> ;
    sh:name "name" ;
    sh:description "Name - The name of the item for the current row. The value depends on the granularity level of the query (variant-level granularity → variant_name ; product-level granularity → product_name ; collection-level granularity → collection_name ). Example values: Paring Knife Travel Case , Forest Green , Christmas Collection" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/productId> ;
    sh:name "product id" ;
    sh:description "Product ID - The unique ID of the product as defined in the sales platform. Example value: 3891505496131" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/productImageUrl> ;
    sh:name "product image url" ;
    sh:description "Product Image URL - The URL of the product image." ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/productName> ;
    sh:name "product name" ;
    sh:description "Product Name - The name of the product as defined in the sales platform. This value is always product-level (e.g., “T-Shirt”, “Hoodie”) even when querying variant-level granularity, ensuring each variant row also shows the product it belongs to. Example values: Green Soft Socks 3-Pack , Paring Knife Travel Case , Gift Subscription" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/productTags> ;
    sh:name "product tags" ;
    sh:description "Product Tags - Tags associated with the product, assigned by the seller in the sales platform. Example values: 3-pack , Sale , discount_eligible" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/sku> ;
    sh:name "sku" ;
    sh:description "SKU - The SKU (Stock Keeping Unit) for the product or variant as set within the main sales platform. Example values: GP-BACK-02 , A02630 , POP200NAVY" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/variantId> ;
    sh:name "variant id" ;
    sh:description "Variant ID - The unique ID of the variant as set within the main sales platform. Example value: 33193425920151" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/variantName> ;
    sh:name "variant name" ;
    sh:description "Variant Name - The name of the variant as defined in the main sales platform. Example values: Forest Green , M , iPhone 14 Pro" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/vendor> ;
    sh:name "vendor" ;
    sh:description "Vendor - The vendor of the product or variant. Example values: Route , Canon , Corso , MyShop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/addedToCartEvents> ;
    sh:name "added to cart events" ;
    sh:description "Added to Cart Events - Number of times the product or variant was added to a cart. Adding multiple units in a single action counts as one event." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/addedToCartItems> ;
    sh:name "added to cart items" ;
    sh:description "Added to Cart Items - Total quantity of the product or variant added to carts. Each unit counts individually, even when multiple units are added in a single action." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/clicks> ;
    sh:name "clicks" ;
    sh:description "Clicks - Total number of ad clicks attributed to the product or variant, based on its share of units sold per ad. Clicks for Product = (Units Sold for Product / Units Sold for Ad) × Clicks for Ad, summed across all relevant ads and campaigns." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/customers> ;
    sh:name "customers" ;
    sh:description "Customers - Total number of unique customers who purchased the product or variant." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/fulfillmentCosts> ;
    sh:name "fulfillment costs" ;
    sh:description "Fulfillment Costs - Total costs associated with fulfilling orders that include the product or variant. By default shown in the shop's currency. Fulfillment Costs = Cost of Goods + Handling Fees + (Shipping Price + Payment Gateway Costs) / Total Items in Order × Units Sold Cost of Goods, Handling Fees, and Payment Gateway Costs are configured in Cost Settings . Shipping Price is the amount the customer paid at checkout." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/impressions> ;
    sh:name "impressions" ;
    sh:description "Impressions - Total number of ad impressions attributed to the product or variant, based on its share of units sold per ad. Impressions for Product = (Units Sold for Product / Units Sold for Ad) × Impressions for Ad, summed across all relevant ads and campaigns." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/newCustomerFulfillmentCosts> ;
    sh:name "new customer fulfillment costs" ;
    sh:description "New Customer Fulfillment Costs - Total costs associated with fulfilling orders that include the product or variant, for orders placed by new customers. By default shown in the shop's currency. Fulfillment Costs = Cost of Goods + Handling Fees + (Shipping Price + Payment Gateway Costs) / Total Items in Order × Units Sold Cost of Goods, Handling Fees, and Payment Gateway Costs are configured in Cost Settings . Shipping Price is the amount the customer paid at checkout. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/newCustomerOrders> ;
    sh:name "new customer orders" ;
    sh:description "New Customer Orders - The total number of orders by new customers that contain the product or variant. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/newCustomerRevenue> ;
    sh:name "new customer revenue" ;
    sh:description "New Customer Revenue - The total revenue derived from orders by new customers that contain the product or variant. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/newCustomerTotalItemsSold> ;
    sh:name "new customer total items sold" ;
    sh:description "New Customer Units Sold - Total quantity of the product or variant ordered by new customers. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/newCustomerTotalOrderValue> ;
    sh:name "new customer total order value" ;
    sh:description "New Customer Total Order Value - The total revenue of orders by new customers that contain the product or variant, before shipping, taxes, discounts, or refunds. Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/numberOfAds> ;
    sh:name "number of ads" ;
    sh:description "Ads - Total number of ads contributing to orders containing the product or variant." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/orders> ;
    sh:name "orders" ;
    sh:description "Orders - The total number of orders that contain the product or variant." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/repeatCustomer> ;
    sh:name "repeat customer" ;
    sh:description "Repeat Customers - Total number of unique customers who purchased the product or variant more than once." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/returns> ;
    sh:name "returns" ;
    sh:description "Returns - The total number of product or variant units returned." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/revenue> ;
    sh:name "revenue" ;
    sh:description "Product Revenue - The total product-specific revenue from orders that contain the product or variant, after product discounts (before shipping, taxes, or refunds). Product Revenue = (Product Price × Quantity) − Product Discounts" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/spend> ;
    sh:name "spend" ;
    sh:description "Ad Spend - Total ad spend attributed to the product or variant based on its proportional share of units sold in each ad. This does not include custom ad spend or adjustments for returns. Ad Spend for Product = (Units Sold for Product / Units Sold for Ad) × Ad Spend for Ad, summed across all relevant ads and campaigns." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/totalItemsSold> ;
    sh:name "total items sold" ;
    sh:description "Units Sold - The total number of individual units sold for the product or variant." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/totalOrderValue> ;
    sh:name "total order value" ;
    sh:description "Total Order Value - The total revenue of orders that contain the product or variant, after shipping, taxes, and discounts. Total Order Value = Order Revenue (Gross Sales + Shipping + Taxes - Discounts) for each order containing the product or variant. Note: The full order amount is counted for each product in that order, even if the order contains multiple products." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/visits> ;
    sh:name "visits" ;
    sh:description "Visits - Total number of sessions attributed to the product or variant, based on its share of units sold per ad. Visits for Product = (Units Sold for Product / Units Sold for Ad) × Sessions for Ad, summed across all relevant ads and campaigns." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/avgPurchasePrice> ;
    sh:name "avg purchase price" ;
    sh:description "Average Purchase Price - The average price per item sold. Average Purchase Price = Order Revenue / Units Sold" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/contributionMargin> ;
    sh:name "contribution margin" ;
    sh:description "Contribution Margin - The total profit contribution after subtracting fulfillment costs and ad spend from total revenue. Contribution Margin = Order Revenue - Fulfillment Costs - Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/contributionMarginPerItem> ;
    sh:name "contribution margin per item" ;
    sh:description "Contribution Margin Per Item - The profit contribution for each item sold. Contribution Margin Per Item = (Order Revenue - Fulfillment Costs - Ad Spend) / Units Sold" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/cpa> ;
    sh:name "cpa" ;
    sh:description "Cost Per Acquisition (CPA) - The cost to acquire a single order. CPA = Total Ad Spend / Total Orders" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/cpc> ;
    sh:name "cpc" ;
    sh:description "Cost Per Click (CPC) - The average cost for each click on an ad. CPC = Total Ad Spend / Total Clicks" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/cpm> ;
    sh:name "cpm" ;
    sh:description "Cost Per Thousand Impressions (CPM) - The cost to reach 1,000 ad impressions. CPM = Total Ad Spend / (Total Impressions / 1,000)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/ctr> ;
    sh:name "ctr" ;
    sh:description "Click-Through Rate (CTR) - The percentage of ad impressions that resulted in clicks. CTR = Total Clicks / Total Impressions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/grossProfit> ;
    sh:name "gross profit" ;
    sh:description "Gross Profit - The total profit excluding fulfillment costs. Gross Profit = Revenue - Fulfillment Costs" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/newCustomerAov> ;
    sh:name "new customer aov" ;
    sh:description "New Customer AOV - The average order value for new customers, indicating the average spend per order by new customers. New Customer AOV = New Customer Total Order Value / New Customer Orders Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/newCustomerCpa> ;
    sh:name "new customer cpa" ;
    sh:description "New Customer CPA - The cost to acquire a single new paying customer. New Customer CPA = Total Ad Spend / New Customer Orders Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/newCustomerGrossProfit> ;
    sh:name "new customer gross profit" ;
    sh:description "New Customer Gross Profit - The gross profit generated from new customers. New Customer Gross Profit = New Customer Revenue - New Customer Fulfillment Costs Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/newCustomerRoas> ;
    sh:name "new customer roas" ;
    sh:description "New Customer ROAS - Revenue generated from new customers relative to ad spend. New Customer ROAS = New Customer Revenue / Ad Spend Learn how Triple Whale classifies new/returning customers ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/pixelConversionRate> ;
    sh:name "pixel conversion rate" ;
    sh:description "Pixel Conversion Rate - The percentage of visits who made a purchase. Pixel Conversion Rate = Total Orders / Total Visits" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/productAov> ;
    sh:name "product aov" ;
    sh:description "Product AOV - The average order value for products, representing the average amount spent per order. Product AOV = Total Order Value / Total Orders" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/returnRate> ;
    sh:name "return rate" ;
    sh:description "Return Rate - The percentage of purchased items that customers return. Return Rate = Returns / Units Sold" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/roas> ;
    sh:name "roas" ;
    sh:description "Return on Ad Spend (ROAS) - The total revenue generated relative to ad spend. ROAS = Order Revenue / Ad Spend" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ProductAnalytics/rpr> ;
    sh:name "rpr" ;
    sh:description "Repeat Purchase Rate - The percent of purchases made by returning customers. RPR = Repeat Customers / Total Orders" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Product
tw:ProductShape a sh:NodeShape ;
  sh:targetClass tw:Product ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/collections> ;
    sh:name "collections" ;
    sh:description "Collections - Collections the product belongs to, as set within the main sales platform. Example values: Summer Gift Guide , Long-Sleeve Packs , Christmas Collection" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/images> ;
    sh:name "images" ;
    sh:description "Product Images - Images associated with the product, with details such as image position, dimensions, and source URL." ;
    sh:node tw:ProductImageShape ;
    sh:class tw:ProductImage ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/integrationId> ;
    sh:name "integration id" ;
    sh:description "Integration ID - The unique identifier for the integration (store connection) that this product belongs to." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/platform> ;
    sh:name "platform" ;
    sh:description "Platform - The platform or marketplace where the product is listed. Example values: shopify , amazon , custom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/productDescription> ;
    sh:name "product description" ;
    sh:description "Product Description - The description of the product as written by the seller. Example values: Classic everyday denim designed for comfort and versatility, featuring premium stretch fabric, durable stitching, and a timeless silhouette suitable for any wardrobe." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/productId> ;
    sh:name "product id" ;
    sh:description "Product ID - The unique ID of the product as set within the main sales platform. Example value: 3891505496131" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/productImageUrl> ;
    sh:name "product image url" ;
    sh:description "Primary Product Image - The URL of the primary product image. Example values: https://cdn.shopify.com/.../product1.jpg , https://m.media-amazon.com/.../image1.jpg" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/productName> ;
    sh:name "product name" ;
    sh:description "Product Name - The name (or title) of the product as set within the main sales platform. Example values: Green Soft Socks 3-Pack , Paring Knife Travel Case , Gift Subscription" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/productStatus> ;
    sh:name "product status" ;
    sh:description "Product Status - The status of the product. Example values: active , draft , archived" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/productTags> ;
    sh:name "product tags" ;
    sh:description "Product Tags - Tags associated with the product, assigned by the seller in the main sales platform. Example values: 3-pack , Sale , discount_eligible" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/productType> ;
    sh:name "product type" ;
    sh:description "Product Type - The product type as set within the main sales platform. Example values: Jackets , Coffee Mugs , Books" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/variants> ;
    sh:name "variants" ;
    sh:description "Product Variants - Details about the product variants associated with the order." ;
    sh:node tw:ProductVariantShape ;
    sh:class tw:ProductVariant ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/vendor> ;
    sh:name "vendor" ;
    sh:description "Vendor - The vendor of the product variant. Example values: Route , Canon , Corso , MyShop" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Product/productInventoryQuantity> ;
    sh:name "product inventory quantity" ;
    sh:description "Product Inventory Quantity - The number of items in stock for the product. Example values: 100 , 50 , 0" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Image
tw:ProductImageShape a sh:NodeShape ;
  sh:targetClass tw:ProductImage ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Products.Image/imagePosition> ;
    sh:name "image position" ;
    sh:description "Image Position - The position of the image in the product gallery. Example values: 1 , 5 , 19 , 43" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Products.Image/imageWidth> ;
    sh:name "image width" ;
    sh:description "Image Width - The width of the image in pixels. Example values: 500 , 1080 , 1500 , 2048" ;
    sh:datatype xsd:nonNegativeInteger ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Products.Image/imageHeight> ;
    sh:name "image height" ;
    sh:description "Image Height - The height of the image in pixels. Example values: 500 , 1080 , 1500 , 2048" ;
    sh:datatype xsd:nonNegativeInteger ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Products.Image/imageSrc> ;
    sh:name "image src" ;
    sh:description "Image Source - The URL of the product image. Example values: https://cdn.shopify.com/.../product1.jpg , https://m.media-amazon.com/.../image1.jpg" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] .

# Shape for Variant
tw:ProductVariantShape a sh:NodeShape ;
  sh:targetClass tw:ProductVariant ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Products.Variant/variantId> ;
    sh:name "variant id" ;
    sh:description "Variant ID - The unique ID of the product variant as set within the main sales platform. Example value: 47095335813393" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Products.Variant/variantName> ;
    sh:name "variant name" ;
    sh:description "Variant Name - The name (or title) of the product variant as set within the main sales platform. Example values: 36 S , Titanium / Mild , Black Leather" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Products.Variant/variantDescription> ;
    sh:name "variant description" ;
    sh:description "Variant Description - The description of the product variant. Only supported for Amazon products. Example values: High-rise skinny fit in stretch denim, designed to sit at the natural waist for a flattering, sculpted silhouette." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Products.Variant/sku> ;
    sh:name "sku" ;
    sh:description "Variant SKU - The SKU (Stock Keeping Unit) for the product variant as set within the main sales platform. Example values: GP-BACK-02 , A02630 , POP200NAVY" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Products.Variant/variantPrice> ;
    sh:name "variant price" ;
    sh:description "Variant Price - The price of a single product variant (to the buyer). Example values: 69.99 , 10 , 1200" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Products.Variant/variantInventoryQuantity> ;
    sh:name "variant inventory quantity" ;
    sh:description "Variant Inventory Quantity - The number of items in stock for the product variant. Example values: 100 , 50 , 0" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Refund
tw:RefundShape a sh:NodeShape ;
  sh:targetClass tw:Refund ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the refund was processed, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the refund was processed. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/orderDate> ;
    sh:name "order date" ;
    sh:description "Order Date - The date the original order was processed. Example value: 2025-02-12" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/orderId> ;
    sh:name "order id" ;
    sh:description "Order ID - The unique ID for the original order that was issued a refund. Assigned by the shop platform. Example value: 6024492815432" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/platform> ;
    sh:name "platform" ;
    sh:description "Sales Platform - The sales platform where the order was processed. Example values: Shopify , BigCommerce , WooCommerce , Amazon" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/productsInfo> ;
    sh:name "products info" ;
    sh:description "Products - Details about the products associated with the order (at the level of the variant), including name, product ID, variant ID, type, SKU, etc. Returns the latest product information, not necessarily the data at the time the order was placed." ;
    sh:node tw:RefundProductsInfoShape ;
    sh:class tw:RefundProductsInfo ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/refundOrderAdjustment> ;
    sh:name "refund order adjustment" ;
    sh:description "Refund Order Adjustments - List of refund order adjustments applied to the order. There may be multiple adjustments per order." ;
    sh:node tw:RefundOrderAdjustmentShape ;
    sh:class tw:RefundOrderAdjustment ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/sourceName> ;
    sh:name "source name" ;
    sh:description "Source - The origin of the order as designated by the seller on the main sales platform. Example values: web , pos , tiktok" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/tags> ;
    sh:name "tags" ;
    sh:description "Tags - Tags associated with the order, assigned by the seller on the main sales platform. Example values: Upsell , Order Credits , discount_eligible" ;
    sh:datatype xsd:string ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Updated At - The time at which the refund record was last updated. Formatted according to the ISO 8601 international standard . Example value: 2022-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/totalRefundedCogs> ;
    sh:name "total refunded cogs" ;
    sh:description "Refunded COGS - Refunded cost of goods (COGS) amount for the selected time period. Calculated based on the refund date." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/totalRefundedPrice> ;
    sh:name "total refunded price" ;
    sh:description "Refunded Sales - Refunded sales amount for the selected time period. Calculated based on the refund date. Note that Triple Whale does not track refunds from third-party return management apps (e.g., Loop), so totals may vary from the sales platform." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/totalRefundedShipping> ;
    sh:name "total refunded shipping" ;
    sh:description "Refunded Shipping - Refunded shipping amount for the selected time period. Calculated based on the refund date." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refund/totalRefundedTax> ;
    sh:name "total refunded tax" ;
    sh:description "Refunded Tax - Refunded tax amount for the selected time period. Calculated based on the refund date." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Products Info
tw:RefundProductsInfoShape a sh:NodeShape ;
  sh:targetClass tw:RefundProductsInfo ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/productId> ;
    sh:name "product id" ;
    sh:description "Product ID - The unique ID of the product as set within the main sales platform. Example value: 3891505496131" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/productName> ;
    sh:name "product name" ;
    sh:description "Product Name - The name of the product as set within the main sales platform. Example values: Green Soft Socks 3-Pack , Paring Knife Travel Case , Gift Subscription" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/productSku> ;
    sh:name "product sku" ;
    sh:description "Product SKU - The SKU (Stock Keeping Unit) for the product, as set within the main sales platform. Example values: GP-BACK-02 , A02630 , POP200NAVY" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/variantId> ;
    sh:name "variant id" ;
    sh:description "Product Variant ID - The unique identifier for a specific variant of a product as set within the main sales platform. Example value: 29275946877001" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/isGiftCard> ;
    sh:name "is gift card" ;
    sh:description "Is Gift Card - True if the product purchased is a gift card. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/properties> ;
    sh:name "properties" ;
    sh:description "Product Properties" ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/propertiesName> ;
    sh:name "properties name" ;
    sh:description "Product Property Name - The name or key of the product property." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/propertiesValue> ;
    sh:name "properties value" ;
    sh:description "Product Property Value - The value assigned to the product property." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/duties> ;
    sh:name "duties" ;
    sh:description "Product Duties - Import duties or tariffs applied to the product." ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/dutiesDutyId> ;
    sh:name "duties duty id" ;
    sh:description "Product Duty ID - The unique identifier of the duty applied to the product." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/dutiesPrice> ;
    sh:name "duties price" ;
    sh:description "Product Duty Amount - The monetary amount of duty charged for the product.'" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines> ;
    sh:name "duties tax lines" ;
    sh:description "Product Duty Tax Lines - Tax lines charged on the product duty." ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/ContainerShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/Container> ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/dutiesTaxLinesPrice> ;
    sh:name "duties tax lines price" ;
    sh:description "Product Duty Tax Line Amount - The tax amount charged on the product duty per tax line." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/productNamePrice> ;
    sh:name "product name price" ;
    sh:description "Product Price - The price of a single product (to the buyer), before discounts. By default shown in the shop's currency. Note: Tax will be included in the product price if the seller has configured the sale to require taxes in the main sales platform." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/discountAmountForProduct> ;
    sh:name "discount amount for product" ;
    sh:description "Total Product Discount - The amount discounted from the product price, before taxes. By default shown in the shop's currency." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/productNameQuantitySold> ;
    sh:name "product name quantity sold" ;
    sh:description "Product Units Sold - The total number of individual units sold for the product." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/singleProductCost> ;
    sh:name "single product cost" ;
    sh:description "Product Cost - The cost of a single product (to the seller). By default shown in the shop's currency." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Refund Order Adjustment
tw:RefundOrderAdjustmentShape a sh:NodeShape ;
  sh:targetClass tw:RefundOrderAdjustment ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.RefundOrderAdjustment/kind> ;
    sh:name "kind" ;
    sh:description "Order Adjustment Type - The order adjustment type. Valid values: shipping_refund : Refunds related to shipping charges. refund_discrepancy : Discrepancies in the refund amount." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.RefundOrderAdjustment/orderAdjustmentTaxAmount> ;
    sh:name "order adjustment tax amount" ;
    sh:description "Order Adjustment Tax Amount - The taxes that are added to the order adjustment amount, such as applicable shipping taxes added to a shipping refund." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.RefundOrderAdjustment/orderAdjustmentAmount> ;
    sh:name "order adjustment amount" ;
    sh:description "Order Adjustment Amount - The value of the discrepancy between the calculated refund and the actual refund. If the kind property's value is shipping_refund , then amount returns the value of shipping charges refunded to the customer." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Review
tw:ReviewShape a sh:NodeShape ;
  sh:targetClass tw:Review ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the review was submitted. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/attributesWithRating> ;
    sh:name "attributes with rating" ;
    sh:description "Attributes with Rating - A list of rating attributes within the review. Set in the reviews platform." ;
    sh:node tw:AttributesWithRatingShape ;
    sh:class tw:AttributesWithRating ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/containsProfanity> ;
    sh:name "contains profanity" ;
    sh:description "Contains Profanity - True if the review contains profanity. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/content> ;
    sh:name "content" ;
    sh:description "Content - The text content of the review. Example values: Fits nicely , Better quality than it looked in the pictures" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/id> ;
    sh:name "id" ;
    sh:description "Review ID - The unique identifier for the review. Example value: 948f450e-5b38-4a2e-ace6-470b7b5535cf" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/isRecommended> ;
    sh:name "is recommended" ;
    sh:description "Is Recommended - True if the product is recommended by the reviewer. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/marketplace> ;
    sh:name "marketplace" ;
    sh:description "Marketplace - The marketplace where the review was submitted. Example value: shopify" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/orderId> ;
    sh:name "order id" ;
    sh:description "Order ID - The unique identifier for the order associated with the review. Example value: 4930225799243" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/platform> ;
    sh:name "platform" ;
    sh:description "Platform - The platform through which the review was submitted. Example values: okendo , yotpo" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/productId> ;
    sh:name "product id" ;
    sh:description "Product ID - The unique identifier of the reviewed product. Example value: 3891505496131" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/productName> ;
    sh:name "product name" ;
    sh:description "Product Name - The name of the reviewed product. Example values: Green Soft Socks 3-Pack , Paring Knife Travel Case , Gift Subscription" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/reviewType> ;
    sh:name "review type" ;
    sh:description "Review Type - The type of review submitted. Example value: product" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/reviewerAttributes> ;
    sh:name "reviewer attributes" ;
    sh:description "Reviewer Attributes - Attributes associated with the reviewer." ;
    sh:node tw:ReviewerAttributeShape ;
    sh:class tw:ReviewerAttribute ;
    sh:nodeKind sh:BlankNodeOrIRI ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/reviewerCountryCode> ;
    sh:name "reviewer country code" ;
    sh:description "Reviewer Country Code - The country code of the reviewer. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/reviewerCountryName> ;
    sh:name "reviewer country name" ;
    sh:description "Reviewer Country Name - The full name of the reviewer's country. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/reviewerDisplayName> ;
    sh:name "reviewer display name" ;
    sh:description "Reviewer Display Name - The display name of the reviewer." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/reviewerEmail> ;
    sh:name "reviewer email" ;
    sh:description "Reviewer Email - The email address of the reviewer." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/reviewerIsVerified> ;
    sh:name "reviewer is verified" ;
    sh:description "Reviewer Is Verified - True if the reviewer is a verified customer. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/reviewerName> ;
    sh:name "reviewer name" ;
    sh:description "Reviewer Name - The name of the reviewer." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/reviewerVerifiedStatus> ;
    sh:name "reviewer verified status" ;
    sh:description "Reviewer Verified Status - The verification status of the reviewer." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/sentiment> ;
    sh:name "sentiment" ;
    sh:description "Sentiment - The sentiment analysis result for the review content. Example values: positive , mixed , negative" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/status> ;
    sh:name "status" ;
    sh:description "Status - The status of the review. Example values: approved , published , unpublished" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/title> ;
    sh:name "title" ;
    sh:description "Title - The title of the review. Example values: Almost perfect , Would not recommend , Absolutely beautiful!" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/variantId> ;
    sh:name "variant id" ;
    sh:description "Variant ID - The unique identifier of the reviewed product variant. Example value: 29275946877001" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/helpfulCount> ;
    sh:name "helpful count" ;
    sh:description "Helpful Count - The number of helpful votes the review has received." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/rating> ;
    sh:name "rating" ;
    sh:description "Rating - The rating score assigned by the reviewer." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Review/unhelpfulCount> ;
    sh:name "unhelpful count" ;
    sh:description "Unhelpful Count - The number of unhelpful votes the review has received." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Attributes With Rating
tw:AttributesWithRatingShape a sh:NodeShape ;
  sh:targetClass tw:AttributesWithRating ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Reviews.AttributesWithRating/minLabel> ;
    sh:name "min label" ;
    sh:description "Minimum Rating Label - The label for the minimum rating value. Example values: Runs small , Disappointing" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Reviews.AttributesWithRating/midLabel> ;
    sh:name "mid label" ;
    sh:description "Mid Label Rating - The label for the midpoint rating value. Example values: True to size , As expected" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Reviews.AttributesWithRating/title> ;
    sh:name "title" ;
    sh:description "Title - The title of the rating attribute. Example values: Size Range , Quality" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Reviews.AttributesWithRating/typeField> ;
    sh:name "type field" ;
    sh:description "Type - The type of the rating attribute. Example values: range , multi-select , single-select" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Reviews.AttributesWithRating/value> ;
    sh:name "value" ;
    sh:description "Value - The rating value for the attribute. Example values: -1 , 0 , 0.5 , 2" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Reviews.AttributesWithRating/maxLabel> ;
    sh:name "max label" ;
    sh:description "Maximum Rating Label - The label for the maximum rating value. Example values: Runs large , Exceeds expectations" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Reviewer Attribute
tw:ReviewerAttributeShape a sh:NodeShape ;
  sh:targetClass tw:ReviewerAttribute ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Reviews.ReviewerAttribute/title> ;
    sh:name "title" ;
    sh:description "Reviewer Title - The title of the reviewer." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Reviews.ReviewerAttribute/reviewerType> ;
    sh:name "reviewer type" ;
    sh:description "Reviewer Type - The type of the reviewer." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Reviews.ReviewerAttribute/value> ;
    sh:name "value" ;
    sh:description "Reviewer Value - The value of the reviewer." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Search Term
tw:SearchTermShape a sh:NodeShape ;
  sh:targetClass tw:SearchTerm ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the search query occurred, in Pacific Time Zone (PT)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/accountId> ;
    sh:name "account id" ;
    sh:description "Account ID - The unique ID of the connected search source, such as a verified domain in Search Console. Example value: sc-domain:myshop.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform where the search query occurred. Example value: google" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/keywordId> ;
    sh:name "keyword id" ;
    sh:description "Keyword ID - The unique ID for the keyword that surfaced the site's content in search results. Example value: 313990984637674" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/query> ;
    sh:name "query" ;
    sh:description "Search Query - The exact search term entered by the user that surfaced the site’s content in search results. Example values: nike running shoes , best camping gear" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/clicks> ;
    sh:name "clicks" ;
    sh:description "Clicks - Number of times users clicked on the site in the search results." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/impressions> ;
    sh:name "impressions" ;
    sh:description "Impressions - Number of times the site appeared in search results for a query." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SearchTerm/position> ;
    sh:name "position" ;
    sh:description "Position - The average position where the site appeared in search results for the query." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Session
tw:SessionShape a sh:NodeShape ;
  sh:targetClass tw:Session ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the website session started, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the website session started. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/adId> ;
    sh:name "ad id" ;
    sh:description "Ad ID - The unique ID for the ad associated with the session. Assigned by the ad platform, captured by Triple Pixel in the UTM query parameters. Example value: 120210439891110007" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/adsetId> ;
    sh:name "adset id" ;
    sh:description "Ad Set ID - The unique ID for the ad set associated with the session. Assigned by the ad platform, captured by Triple Pixel in the UTM query parameters. Example value: 120210439890740003" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/browser> ;
    sh:name "browser" ;
    sh:description "Web Browser - The web browser of the session where the order originated. Example values: Chrome , Firefox , Safari" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/campaignId> ;
    sh:name "campaign id" ;
    sh:description "Campaign ID - The unique ID for the marketing campaign associated with the session. Assigned by the ad platform, captured by Triple Pixel in the UTM query parameters. Example values: 23852438666180053 , 531011533 , 20620285829" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The platform through which the ad was delivered. Derived from UTM parameters and standardized (e.g. a UTM value of fb is standardized to facebook-ads in Triple Whale). Example values: facebook-ads , tiktok-ads , Direct" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/city> ;
    sh:name "city" ;
    sh:description "Session City - The city of the session where the order originated. Example values: San Francisco , Tel Aviv , Kyiv" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/country> ;
    sh:name "country" ;
    sh:description "Session Country - The country of the session. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/countryCode> ;
    sh:name "country code" ;
    sh:description "Country Code - The country code of the session. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/device> ;
    sh:name "device" ;
    sh:description "Device - The type of device used by the visitor for the session. Example values: mobile , desktop , tablet , wearable" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/deviceModel> ;
    sh:name "device model" ;
    sh:description "Device Model - The device model used by the visitor for the session. Example values: SM-A022M , CPH2305 , Note 12" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/domain> ;
    sh:name "domain" ;
    sh:description "Domain - The domain through which the session was initiated. Example value: exampleshop.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/eventDateTimezone> ;
    sh:name "event date timezone" ;
    sh:description "Event Date Timezone - The time zone in which the event_date and event_hour are based. Equivalent to the designated timezone of the shop according to the timezone database ." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/isNewVisitor> ;
    sh:name "is new visitor" ;
    sh:description "Is New Visitor - True if the session was initiated by a first-time visitor. Possible Values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/keywordId> ;
    sh:name "keyword id" ;
    sh:description "Keyword ID - The unique ID assigned to the keyword by the ad platform, captured by Triple Pixel from the ad URL. Example value: 313990984637674" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/landingPage> ;
    sh:name "landing page" ;
    sh:description "Landing Page - The URL path (without query parameters) of the page the visitor landed after clicking on an ad or link, indicating the first page viewed in a session. Example value: /myshop/collections/green_sweater" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/msCountry> ;
    sh:name "ms country" ;
    sh:description "Marketplace Country - The marketplace country code of the marketplace environment for the session, based on shop settings. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/msCountryName> ;
    sh:name "ms country name" ;
    sh:description "Marketplace Country Name - The marketplace country name of the marketplace environment for the session, based on shop settings. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/sessionId> ;
    sh:name "session id" ;
    sh:description "Session ID - The unique session ID assigned by Triple Pixel. Example value: cltlok4y634IRw62AZ_1710700966152" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/sessionStartTs> ;
    sh:name "session start ts" ;
    sh:description "Session Start Timestamp - The time at which the visitor initiated the session. Formatted according to the ISO 8601 international standard . Example value: 2022-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/tripleId> ;
    sh:name "triple id" ;
    sh:description "Triple Pixel ID - The unique ID assigned by Triple Pixel to track visitors across sessions. Example value: cltlok4y634IRw62AZ" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/urlQueryParams> ;
    sh:name "url query params" ;
    sh:description "URL Query Parameters - The query parameters contained in the URL of the first page viewed in a session (the page the visitor initially landed after clicking on an ad or link). Example values: {\"tw_adid\":\"83906898178855\", \"tw_campaign\":\"103306890\", \"tw_source\":\"bing\",\" utm_campaign\":\"Bing Shopping\", \"utm_content\":\"HERO SKU Summer Book Run\", \"utm_medium\":\"cpc\", \"utm_source\":\"bing\", \"utm_term\":\"1342506080190763\", \"variant\":\"44042133111001\"}" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/utmMedium> ;
    sh:name "utm medium" ;
    sh:description "UTM Medium - The UTM medium parameter captured by Triple Pixel from the ad URL Example values: sponsored , paid , profile_link" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/utmSource> ;
    sh:name "utm source" ;
    sh:description "UTM Source - The UTM source parameter captured by Triple Pixel from the ad URL. Example values: web , pos , tiktok , facebook , google , newsletter" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/sessionElapsedTime> ;
    sh:name "session elapsed time" ;
    sh:description "Session Duration - The total duration of time elapsed during the session, measured in seconds." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/sessionPageViews> ;
    sh:name "session page views" ;
    sh:description "Session Page Views - Number of pages viewed during a website session." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Session/sessionCount> ;
    sh:name "session count" ;
    sh:description "Pixel Sessions - The Pixel-reported number of online store sessions. Note that Triple Whale defines and tracks sessions differently from the main sales platform so there may be variance between the two. Learn how Triple Whale defines and tracks sessions." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Shipping
tw:ShippingShape a sh:NodeShape ;
  sh:targetClass tw:Shipping ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the shipment was processed, according to a 24-hour clock. Based on the timezone of the shipping platform. Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the shipment label was created. Based on the timezone of the shipping platform." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/createdAt> ;
    sh:name "created at" ;
    sh:description "Shipment Created Date - The time when the shipment record was created in the shipping platform. Formatted according to the ISO 8601 international standard . Example value: 2022-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/estimatedFulfillmentDateStatus> ;
    sh:name "estimated fulfillment date status" ;
    sh:description "Estimated Fulfillment Date Status - The status of the shipment's estimated fulfillment date. Example value: FulfilledOnTime" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/isReturn> ;
    sh:name "is return" ;
    sh:description "Is Return Shipment - True if the shipment is a return to the sender. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/isVoided> ;
    sh:name "is voided" ;
    sh:description "Is Voided Shipment - True if the shipment is voided. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/shipmentDate> ;
    sh:name "shipment date" ;
    sh:description "Shipment Date - The time when the shipment was actually shipped. Formatted according to the ISO 8601 international standard . Example value: 2022-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/shipmentStatus> ;
    sh:name "shipment status" ;
    sh:description "Shipment Status - The current status of the shipment. Example values: LabeledCreated , Completed" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/shippingPlatform> ;
    sh:name "shipping platform" ;
    sh:description "Shipping Platform - The platform used to manage and process the shipment. Example values: shipbob , shipstation" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/toCity> ;
    sh:name "to city" ;
    sh:description "Destination Ciy - The destination city of the shipment. Example values: MANCHESTER , SAN JOSE , OROVILLE" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/toCountry> ;
    sh:name "to country" ;
    sh:description "Destination Country - The destination country code of the shipment. See list of countries . Example values: US , CA , GB" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/toCountryName> ;
    sh:name "to country name" ;
    sh:description "Destination Country Name - The full name of the destination country of the shipment. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/toState> ;
    sh:name "to state" ;
    sh:description "Destination State - The destination state of the shipment. Example values: WA , FL , ON" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Shipment Updated Date - The time when the shipment record was last updated in the shipping platform. Formatted according to the ISO 8601 international standard . Example value: 2022-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/numberOfItems> ;
    sh:name "number of items" ;
    sh:description "Number of Items - The number of items contained in the shipment." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Shipping/shopShipmentCost> ;
    sh:name "shop shipment cost" ;
    sh:description "Shipment Cost To Shop - The cost of the shipment to the seller. By default shown in the shop's currency." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Social Media Comment
tw:SocialMediaCommentShape a sh:NodeShape ;
  sh:targetClass tw:SocialMediaComment ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The channel where the comment was published. Example values: meta-analytics , twitter-social" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/commentId> ;
    sh:name "comment id" ;
    sh:description "Comment ID - The ID of the comment. Example value: 530861436559487_731664866264638" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/commentText> ;
    sh:name "comment text" ;
    sh:description "Comment Text - The text content of the comment. Example value: Love this design! Do you ship internationally?" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/createdAt> ;
    sh:name "created at" ;
    sh:description "Created Date - The time the comment was created. Formatted according to the ISO 8601 international standard. Example value: 2025-07-16 04:32:29" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/pageId> ;
    sh:name "page id" ;
    sh:description "Page ID - The ID of the page. Example value: 123456789012345" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/postId> ;
    sh:name "post id" ;
    sh:description "Post ID - The ID of the post. Example value: 120347795274735_430061436559488" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/risk> ;
    sh:name "risk" ;
    sh:description "The risk level assessment of the comment. Example values: low , medium , high" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/sentiment> ;
    sh:name "sentiment" ;
    sh:description "The sentiment analysis result for the comment. Example values: positive , negative , neutral" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/topic> ;
    sh:name "topic" ;
    sh:description "The topic or category classification of the comment. Example values: product_inquiry , shipping , complaint" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/userId> ;
    sh:name "user id" ;
    sh:description "User ID - The ID of the user that made the comment. Example value: 24237031855927250" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/userName> ;
    sh:name "user name" ;
    sh:description "User Name - The name of the user that made the comment. Example value: Jane Smith" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/visibilityChangedAt> ;
    sh:name "visibility changed at" ;
    sh:description "The timestamp of the last visibility status change. Example value: 2025-07-16 04:32:29" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/visibilityChangedBy> ;
    sh:name "visibility changed by" ;
    sh:description "Who changed the visibility status of the comment. Example values: user , system" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaComment/visibilityStatus> ;
    sh:name "visibility status" ;
    sh:description "The visibility status of the comment. Example values: visible , hidden , deleted" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Social Media Mention
tw:SocialMediaMentionShape a sh:NodeShape ;
  sh:targetClass tw:SocialMediaMention ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the post containing the mention was created. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/authorId> ;
    sh:name "author id" ;
    sh:description "Author ID - The ID of the user that made the mention. Example value: 987654321098735" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/authorName> ;
    sh:name "author name" ;
    sh:description "Author Name - The name of the user that made the mention. Example value: John Smith" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/authorUsername> ;
    sh:name "author username" ;
    sh:description "Author Username - The username of the user that made the mention. Example value: example_username" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The channel where the post containing the mention was published. Example values: meta-analytics , twitter-social" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/conversationId> ;
    sh:name "conversation id" ;
    sh:description "Conversation ID - The ID of the conversation that the mention is in. Example value: 123456789012345" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/createdAt> ;
    sh:name "created at" ;
    sh:description "Created Date - The time the post containing the mention was created. Formatted according to the ISO 8601 international standard. Example value: 2025-07-16 04:32:29" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/inReplyToUserId> ;
    sh:name "in reply to user id" ;
    sh:description "In Reply to User ID - The ID of the user that the mention is replying to. Example value: 123456789012345" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/isThreadStarter> ;
    sh:name "is thread starter" ;
    sh:description "Is Thread Starter - Indicates whether the post that the mention is in is the first in a thread. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/matchedKeyword> ;
    sh:name "matched keyword" ;
    sh:description "Matched Keyword - The keyword that was matched in the mention. Example values: running shoes , cheap flights , best coffee" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/mentionText> ;
    sh:name "mention text" ;
    sh:description "Mention Text - The text content of the mention. Example value: @example_user thanks for the shoutout!" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/mentionType> ;
    sh:name "mention type" ;
    sh:description "Mention Type - The type of mention. Example values: keyword , user , hashtag" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/postId> ;
    sh:name "post id" ;
    sh:description "Mentioned Post ID - The ID of the post that the mention is in. Example value: 123456789012345_987654321098765" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/postPermalink> ;
    sh:name "post permalink" ;
    sh:description "Mentioned Post Permalink - The permanent link to the post containing the mention on the social platform. Example value: https://www.facebook.com/123456789/posts/987654321" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/replyToPostId> ;
    sh:name "reply to post id" ;
    sh:description "Reply to Post ID - The ID of the post that the mention is replying to. Example value: 123456789012345" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/sentiment> ;
    sh:name "sentiment" ;
    sh:description "Sentiment - The sentiment of the mention. Example values: positive , negative , neutral" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/topic> ;
    sh:name "topic" ;
    sh:description "Topic - The topic of the mention. Example value: custom t-shirt" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaMention/userId> ;
    sh:name "user id" ;
    sh:description "Mentioned User ID - The ID of the user who was mentioned. Example value: 123456789012345" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Social Media Page
tw:SocialMediaPageShape a sh:NodeShape ;
  sh:targetClass tw:SocialMediaPage ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the event occurred. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/about> ;
    sh:name "about" ;
    sh:description "About - A short description of the page, often provided by the business or creator. Example value: Custom apparel designed to stand out" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/category> ;
    sh:name "category" ;
    sh:description "Category - The business category assigned to the page. Example values: Marketing Agency , Business service" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The channel where the page was published. Example values: meta-analytics , twitter-social" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/coverUrl> ;
    sh:name "cover url" ;
    sh:description "Cover URL - The URL of the page's cover image. Example value: https://scontent-example.fbcdn.net/v/t39.30808-6/cover_image.jpg" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/imageUrl> ;
    sh:name "image url" ;
    sh:description "Image URL - The URL of the page's profile image. Example value: https://scontent-example.fbcdn.net/v/t39.30808-1/profile_image.jpg" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/pageId> ;
    sh:name "page id" ;
    sh:description "Page ID - The ID of the page. Example value: 123456789012345" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/pageName> ;
    sh:name "page name" ;
    sh:description "Page Name - The name of the social media page. Example values: Acme Apparel , Horizon Handcrafted Soaps" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/pagePermalink> ;
    sh:name "page permalink" ;
    sh:description "Page Permalink - The permanent link to the page. Example value: https://www.facebook.com/123456789" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/website> ;
    sh:name "website" ;
    sh:description "Website - The website URL associated with the page. Example values: https://example.com/products/sample-product , https://www.example.com/" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/fanAdds> ;
    sh:name "fan adds" ;
    sh:description "Fan Adds - The number of new fans (followers) who followed the page during the selected period." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/fanRemoves> ;
    sh:name "fan removes" ;
    sh:description "Fan Removes - The number of fans (followers) who unfollowed the page during the selected period." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/impressions> ;
    sh:name "impressions" ;
    sh:description "Impressions - The total number of times any content from or about the page was shown on a user's screen, including posts, ads, stories, mentions, and shares. Includes repeat exposures." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/impressionsPaid> ;
    sh:name "impressions paid" ;
    sh:description "Paid Impressions - The total number of times paid content from the page, such as ads or boosted posts, was shown on a user's screen. Includes repeat exposures." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/impressionsUnique> ;
    sh:name "impressions unique" ;
    sh:description "Unique Impressions - The number of unique users who saw any content from or about the page during the selected period." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/impressionsViral> ;
    sh:name "impressions viral" ;
    sh:description "Viral Impressions - The number of times content from the page was displayed to users through social interactions, such as shares, mentions, or recommendations." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/videoViews> ;
    sh:name "video views" ;
    sh:description "Video Views - The number of times videos were viewed on the page during the selected period." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPage/viewsTotal> ;
    sh:name "views total" ;
    sh:description "Total Views - The total number of times users visited the page itself during the selected period, including repeat visits." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Social Media Post
tw:SocialMediaPostShape a sh:NodeShape ;
  sh:targetClass tw:SocialMediaPost ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/channel> ;
    sh:name "channel" ;
    sh:description "Channel - The channel where the post was published. Example values: meta-analytics , twitter-social" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/createdAt> ;
    sh:name "created at" ;
    sh:description "Created Date - The time the post was created. Formatted according to the ISO 8601 international standard. Example value: 2025-07-16 04:32:29" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/ctaType> ;
    sh:name "cta type" ;
    sh:description "Call-to-Action Type - The type of call-to-action configured for the post. Example values: SHOP_NOW , SIGN_UP , LEARN_MORE" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/ctaUrl> ;
    sh:name "cta url" ;
    sh:description "Call-to-Action URL - The URL linked to the call-to-action button on the post. Example value: https://example.com/products/summer-collection" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/event> ;
    sh:name "event" ;
    sh:description "Event - A platform-generated text string providing extra context about the post, such as page updates or location check-ins. Example values: BlueWave Apparel updated their cover photo. , EcoLoom Studio is in Barcelona, Spain." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/isPublished> ;
    sh:name "is published" ;
    sh:description "Is Published - Indicates whether the post is currently published and visible on the page. Possible values: true , false" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/pageId> ;
    sh:name "page id" ;
    sh:description "Page ID - The ID of the page. Example value: 123456789012345" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/postId> ;
    sh:name "post id" ;
    sh:description "Post ID - The ID of the post. Example value: 123456789012345_987654321098765" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/postPermalink> ;
    sh:name "post permalink" ;
    sh:description "Post Permalink - The permanent link to the post on the social platform. Example value: https://www.facebook.com/123456789/posts/987654321" ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/postText> ;
    sh:name "post text" ;
    sh:description "Post Text - The text content of the post. Example value: Show your love story on a custom T-shirt!" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/publisherId> ;
    sh:name "publisher id" ;
    sh:description "Publisher ID - The ID of the user, page, group, or event that published the post. Example value: 987654321098735" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/publisherName> ;
    sh:name "publisher name" ;
    sh:description "Publisher Name - The name of the user, page, group, or event that published the post. Example values: BrightThreads , Urban Tee Co." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/postType> ;
    sh:name "post type" ;
    sh:description "Post Type - The format of the post, indicating what kind of media or action it includes. Example values: added_photos , added_video" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SocialMediaPost/updatedAt> ;
    sh:name "updated at" ;
    sh:description "Updated Date - The time the post was last updated. Formatted according to the ISO 8601 international standard. Example value: 2025-07-20 10:14:05" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] .

# Shape for Subscription Metrics
tw:SubscriptionMetricsShape a sh:NodeShape ;
  sh:targetClass tw:SubscriptionMetrics ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the subscription event occurred. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/platform> ;
    sh:name "platform" ;
    sh:description "Subscription Platform - The subscription platform through which the subscription is managed. Example values: recharge , stripe" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/activeSubscribers> ;
    sh:name "active subscribers" ;
    sh:description "Active Subscribers - The number of subscribers with an active subscription in the specified time range." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/activeSubscriptions> ;
    sh:name "active subscriptions" ;
    sh:description "Active Subscriptions - The total number of active subscriptions. Each subscription is counted separately, even if multiple belong to the same customer." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/netRevenue> ;
    sh:name "net revenue" ;
    sh:description "Net Revenue - The total order revenue minus discounts from subscription orders." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/newNeverSeenSubscribers> ;
    sh:name "new never seen subscribers" ;
    sh:description "New Never-Seen Subscribers - The number of new subscribers who have never had a subscription before and started their first subscription in the specified time range." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/reactivatedSubscribers> ;
    sh:name "reactivated subscribers" ;
    sh:description "Reactivated Subscribers - The number of subscribers who had previously cancelled but have started a new subscription again in the specified time range." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/totalCancelledSubscriptions> ;
    sh:name "total cancelled subscriptions" ;
    sh:description "Cancelled Subscriptions - The total number of subscriptions that were cancelled in the specified time range." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/totalChurnedSubscribers> ;
    sh:name "total churned subscribers" ;
    sh:description "Churned Subscribers - The total number of customers who have cancelled all subscriptions in the specified time range." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/totalNewSubscribers> ;
    sh:name "total new subscribers" ;
    sh:description "New Subscribers - The total number of new subscribers acquired in the specified time range." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/totalNewSubscriptions> ;
    sh:name "total new subscriptions" ;
    sh:description "New Subscriptions - The total number of new subscriptions started in the specified time range." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/totalRevenue> ;
    sh:name "total revenue" ;
    sh:description "Subscription Order Revenue - Revenue from all subscription orders in the specified time range, after shipping, taxes, and discounts (before refunds)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/totalRevenueFirstOrder> ;
    sh:name "total revenue first order" ;
    sh:description "First Order Revenue - Revenue from first orders in each subscription in the specified time range, after shipping, taxes, and discounts (before refunds)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SubscriptionMetrics/totalRevenueRecurring> ;
    sh:name "total revenue recurring" ;
    sh:description "Recurring Order Revenue - Revenue from recurring (non-first) subscription orders in the specified time range, after shipping, taxes, and discounts (before refunds)." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Subscription
tw:SubscriptionShape a sh:NodeShape ;
  sh:targetClass tw:Subscription ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/cancellationComments> ;
    sh:name "cancellation comments" ;
    sh:description "Cancellation Comments - Additional comments given by the customer at the time of cancellation. Example values: No longer interested , Ordered two by mistake , Just taking a break" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/cancellationReason> ;
    sh:name "cancellation reason" ;
    sh:description "Cancellation Reason - The reason for cancellation of the subscription, provided by the customer. Example values: Not the right fit , Issue with shipping , Other" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/createdAt> ;
    sh:name "created at" ;
    sh:description "Subscription Created Date - The time when the subscription was created. Formatted according to the ISO 8601 international standard . Example value: 2022-06-15T19:26:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/customerId> ;
    sh:name "customer id" ;
    sh:description "Customer ID - The unique ID for the customer associated with the subscription. Example value: 6784521634029" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/endedAt> ;
    sh:name "ended at" ;
    sh:description "Subscription Ended Date - The time when the subscription was canceled or expired. Formatted according to the ISO 8601 international standard . Example value: 2023-07-11T19:21:30.000Z" ;
    sh:datatype xsd:dateTime ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/firstOrderDate> ;
    sh:name "first order date" ;
    sh:description "Subscription First Order Date - The date when the first order within this subscription was placed. Example value: 2023-04-09" ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/firstOrderId> ;
    sh:name "first order id" ;
    sh:description "Subscription First Order ID - The unique ID for the first order placed within this subscription. Example value: 5246165483756" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/productId> ;
    sh:name "product id" ;
    sh:description "Product ID - The unique ID for each product within the subscription. Example value: 7809254686953" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/status> ;
    sh:name "status" ;
    sh:description "Subscription Status - The status of the subscription. Example values: active , cancelled , expired" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/subscriptionId> ;
    sh:name "subscription id" ;
    sh:description "Subscription ID - The unique ID for the subscription. Example value: 352106812" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/subscriptionInterval> ;
    sh:name "subscription interval" ;
    sh:description "Subscription Interval - The time unit that defines how often the subscription renews. This indicates the frequency of fulfillment cycles for the subscription. Used in combination with the Subscription Interval Count to determine the exact frequency of fulfillment (e.g., a value of week with an interval count of 2 means the subscription renews every two weeks). Example values: day , week , month" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/variantId> ;
    sh:name "variant id" ;
    sh:description "Variant ID - The unique ID for each variant within the subscription. Example value: 43151194915045" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/price> ;
    sh:name "price" ;
    sh:description "Product Price - The price of each product in the subscription." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/quantity> ;
    sh:name "quantity" ;
    sh:description "Product Quantity - The number of products included in the subscription." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Subscription/subscriptionIntervalCount> ;
    sh:name "subscription interval count" ;
    sh:description "Subscription Interval Count - The number of intervals between each subscription renewal. Used in combination with the Subscription Interval to determine the exact frequency of fulfillment (e.g., a value of 2 with an interval of week means the subscription renews every two weeks). Example values: 1 , 2 , 4" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] .

# Shape for Web Analytics
tw:WebAnalyticsShape a sh:NodeShape ;
  sh:targetClass tw:WebAnalytics ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/eventHour> ;
    sh:name "event hour" ;
    sh:description "Event Hour - The hour of the day the website session started, according to a 24-hour clock. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected). Example values: 07 , 16 , 21" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/eventDate> ;
    sh:name "event date" ;
    sh:description "Event Date - The date the website session started. Based on the shop time zone at the moment of the event (or the user time zone, if no sales platform is connected)." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/eventDateDay> ;
    sh:name "event date day" ;
    sh:description "Event Day - The day on which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/eventDateWeek> ;
    sh:name "event date week" ;
    sh:description "Event Week - The Sunday of the week during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/eventDateMonth> ;
    sh:name "event date month" ;
    sh:description "Event Month - The month during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/eventDateQuarter> ;
    sh:name "event date quarter" ;
    sh:description "Event Quarter - The first month of the quarter during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/eventDateYear> ;
    sh:name "event date year" ;
    sh:description "Event Year - The year during which the event occurred. Derived from event_date ." ;
    sh:datatype xsd:date ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/browser> ;
    sh:name "browser" ;
    sh:description "Web Browser - The web browser of the session where the order originated. Example values: Chrome , Firefox , Safari" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/city> ;
    sh:name "city" ;
    sh:description "Session City - The city of the session where the order originated. Example values: San Francisco , Tel Aviv , Kyiv" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/country> ;
    sh:name "country" ;
    sh:description "Session Country - The country of the session. See list of countries . Example values: United States , Canada , United Kingdom" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/device> ;
    sh:name "device" ;
    sh:description "Device - The type of device used by the visitor for the session. Example values: mobile , desktop , tablet , wearable" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/landingPage> ;
    sh:name "landing page" ;
    sh:description "Landing Page - The URL path (without query parameters) of the page the visitor landed after clicking on an ad or link, indicating the first page viewed in a session. Example value: /myshop/collections/green_sweater" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/shopId> ;
    sh:name "shop id" ;
    sh:description "Shop ID - The unique ID of the shop (often corresponds to the shop domain). Can be used to group or filter data by shop in multi-store reports. Example values: example-US.myshopify.com , example-EU.myshopify.com" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/shopName> ;
    sh:name "shop name" ;
    sh:description "Shop Name - The name of the shop. Can be used to group or filter data by shop in multi-store reports. Example values: example-US , example-EU" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/addToCarts> ;
    sh:name "add to carts" ;
    sh:description "Add to Carts - The total number of website sessions that include Pixel-reported Add-to-Cart events." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/arr> ;
    sh:name "arr" ;
    sh:description "Annual Recurring Revenue (ARR) - The Pixel-reported annual recurring revenue (ARR) from new subscriptions during a website session." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/bounces> ;
    sh:name "bounces" ;
    sh:description "Bounces - The Pixel-reported number of single-page sessions where the visitor left the site after a single page view." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/mrr> ;
    sh:name "mrr" ;
    sh:description "Monthly Recurring Revenue (MRR) - The Pixel-reported monthly recurring revenue (MRR) from new subscriptions during a website session." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/newSubscriptions> ;
    sh:name "new subscriptions" ;
    sh:description "New Subscriptions - The Pixel-reported number of new subscriptions during a website session." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/newVisitors> ;
    sh:name "new visitors" ;
    sh:description "New Visitors - The Pixel-reported number of first-time visitors to the site." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/orderRevenue> ;
    sh:name "order revenue" ;
    sh:description "Order Revenue - Pixel-reported conversion value (order revenue) after shipping, taxes, and discounts (before refunds). Order Revenue = Gross Sales + Shipping + Taxes − Discounts" ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/ordersQuantity> ;
    sh:name "orders quantity" ;
    sh:description "Website Purchases - The total number of Pixel-reported purchases (orders) during a website session. Excludes recurring subscription purchases." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/sessionPageViews> ;
    sh:name "session page views" ;
    sh:description "Session Page Views - The Pixel-reported number of pages viewed during a website session." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/sessions> ;
    sh:name "sessions" ;
    sh:description "Pixel Sessions - The Pixel-reported number of online store sessions. Note that Triple Whale defines and tracks sessions differently from the main sales platform so there may be variance between the two. Learn how Triple Whale defines and tracks sessions." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/timeOnSite> ;
    sh:name "time on site" ;
    sh:description "Time on Site - The Pixel-reported time spent by users on the site during a session, measured in seconds." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/uniqueVisitors> ;
    sh:name "unique visitors" ;
    sh:description "Unique Visitors - The Pixel-reported number of unique visitors to the site." ;
    sh:datatype xsd:double ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/addToCartPercent> ;
    sh:name "add to cart percent" ;
    sh:description "Add To Cart Percent - The percentage of add-to-carts out of total sessions. Add To Cart Percent = Number of Add To Carts / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/averagePagesPerSessions> ;
    sh:name "average pages per sessions" ;
    sh:description "Average Page Views Per Session - The average number of pages viewed by users during each session. Average Page Views Per Session = Session Page Views / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/averageSessionDuration> ;
    sh:name "average session duration" ;
    sh:description "Average Session Duration - The average time users spend on your site per session. Average Session Duration (in seconds) = Time on Site / (Number of Sessions - Number of Bounces)" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/bounceRate> ;
    sh:name "bounce rate" ;
    sh:description "Bounce Rate - The percentage of single-page visits (bounces) out of total sessions. Bounce Rate = Number of Bounces / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.WebAnalytics/conversionRate> ;
    sh:name "conversion rate" ;
    sh:description "Conversion Rate - The percentage of website sessions that result in purchases, as reported by Pixel. Conversion Rate = Number of Website Purchases / Number of Sessions" ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
  ] .

# Shape for Sql Query Period
tw:SqlQueryPeriodShape a sh:NodeShape ;
  sh:targetClass tw:SqlQueryPeriod ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SqlQueryPeriod/startDate> ;
    sh:name "start date" ;
    sh:description "Inclusive start date (YYYY-MM-DD). Substituted for `@startDate` placeholders in the query." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SqlQueryPeriod/endDate> ;
    sh:name "end date" ;
    sh:description "Inclusive end date (YYYY-MM-DD). Substituted for `@endDate` placeholders in the query." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Shape for Sql Query Error
tw:SqlQueryErrorShape a sh:NodeShape ;
  sh:targetClass tw:SqlQueryError ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.SqlQueryError/message> ;
    sh:name "message" ;
    sh:description "Human-readable error description, often including ClickHouse diagnostics." ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
  ] .

# Generated Record container shape for TripleWhale.Ads.AdsetTargeting.targetValues
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Ads.AdsetTargeting/targetValues> ] ;
    sh:class tw:AdsAdsetTargeting ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.Ads.AdsetTargeting.targetValues
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Ads.AdsetTargeting/targetValues/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.CsTicket.tags
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.CsTicket/tags> ] ;
    sh:class tw:CsTicket ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.CsTicket.tags
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.CsTicket/tags/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.ExternalRevenue.breakdown
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.ExternalRevenue/breakdown> ] ;
    sh:class tw:ExternalRevenue ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.ExternalRevenue.breakdown
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.ExternalRevenue/breakdown/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.Orders.ProductsInfo.duties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/duties> ] ;
    sh:class tw:OrderProductsInfo ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.Orders.ProductsInfo.duties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/duties/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.Orders.ProductsInfo.dutiesTaxLines
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/dutiesTaxLines> ] ;
    sh:class tw:OrderProductsInfo ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.Orders.ProductsInfo.dutiesTaxLines
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/dutiesTaxLines/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.Orders.ProductsInfo.properties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Orders.ProductsInfo/properties> ] ;
    sh:class tw:OrderProductsInfo ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.Orders.ProductsInfo.properties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Orders.ProductsInfo/properties/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.PixelCustomConversion.eventBody
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomConversion/eventBody> ] ;
    sh:class tw:PixelCustomConversion ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.PixelCustomConversion.eventBody
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomConversion/eventBody/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.PixelCustomEvent.data
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelCustomEvent/data> ] ;
    sh:class tw:PixelCustomEvent ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.PixelCustomEvent.data
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelCustomEvent/data/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.PixelOrders.ProductsInfo.duties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/duties> ] ;
    sh:class tw:PixelOrderProductsInfo ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.PixelOrders.ProductsInfo.duties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/duties/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.PixelOrders.ProductsInfo.dutiesTaxLines
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines> ] ;
    sh:class tw:PixelOrderProductsInfo ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.PixelOrders.ProductsInfo.dutiesTaxLines
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/dutiesTaxLines/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.PixelOrders.ProductsInfo.properties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.PixelOrders.ProductsInfo/properties> ] ;
    sh:class tw:PixelOrderProductsInfo ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.PixelOrders.ProductsInfo.properties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.PixelOrders.ProductsInfo/properties/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.Refunds.ProductsInfo.duties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/duties> ] ;
    sh:class tw:RefundProductsInfo ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.Refunds.ProductsInfo.duties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/duties/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.Refunds.ProductsInfo.dutiesTaxLines
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines> ] ;
    sh:class tw:RefundProductsInfo ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.Refunds.ProductsInfo.dutiesTaxLines
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/dutiesTaxLines/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .

# Generated Record container shape for TripleWhale.Refunds.ProductsInfo.properties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/ContainerShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/Container> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/property/TripleWhale.Refunds.ProductsInfo/properties> ] ;
    sh:class tw:RefundProductsInfo ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/entry> ;
    sh:node <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/EntryShape> ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/Entry> ;
    sh:nodeKind sh:BlankNodeOrIRI
  ] ;
  sh:sparql [
    a sh:SPARQLConstraint ;
    sh:message "Record entry keys must be unique" ;
    sh:select """SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/key> ?key . ?right <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/key> ?key . }"""
  ] .

# Generated Record entry shape for TripleWhale.Refunds.ProductsInfo.properties
<https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/EntryShape> a sh:NodeShape ;
  sh:targetClass <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/Entry> ;
  sh:property [
    sh:path [ sh:inversePath <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/entry> ] ;
    sh:class <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/Container> ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/key> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] ;
  sh:property [
    sh:path <https://relay.inferal.com/ontology/triplewhale/record/TripleWhale.Refunds.ProductsInfo/properties/value> ;
    sh:datatype rdf:JSON ;
    sh:minCount 1 ;
    sh:maxCount 1
  ] .
