What Is priceComponentType Schema?

Published
Updated
12 min read

priceComponentType classifies supported price components such as activation fees, subscriptions, installments, downpayments, cleaning fees, and distance fees inside UnitPriceSpecification.

What Is priceComponentType Schema?

priceComponentType identifies the role of a UnitPriceSpecification that forms one component of an offer’s total price. It uses a PriceComponentTypeEnumeration value to distinguish components such as an activation fee, cleaning fee, distance fee, downpayment, installment, or subscription charge.

The property is designed for price decomposition. Instead of placing a base subscription, setup charge, and installments into one ambiguous amount, an offer can connect multiple unit price specifications and classify what each component represents.

priceComponentType at a glance
QuestionAnswerExample
What does it classify?A price component within an offer totalActivationFee
Where is it used?UnitPriceSpecificationOne component object per fee role
What value type is expected?PriceComponentTypeEnumerationSubscription or Installment
  • Use it for a real line-item role.
  • Keep every amount and currency explicit.
  • Match visible pricing, checkout, and invoice components.

The property classifies composition: priceComponentType explains what a particular price component contributes to the overall offer.

Which priceComponentType Values Are Available?

The current PriceComponentTypeEnumeration includes ActivationFee, CleaningFee, DistanceFee, Downpayment, Installment, and Subscription. Choose only the value that matches the visible and billable role of the component; do not invent new enumeration URLs or force unrelated charges into the nearest label.

The vocabulary is still marked as a new Schema.org area, so implementation feedback and future expansion remain possible. Store component meaning in your own pricing model and map it deliberately to supported enumeration members rather than hardcoding assumptions throughout templates.

PriceComponentTypeEnumeration members
MemberMeaningTypical offer
ActivationFeeActivation or initial enablement feeTelecom or software setup
CleaningFeeCleaning component of total priceVacation rental
DistanceFeeCharge based on distanceRental car or delivery
DownpaymentUp-front portion before later paymentsFinanced purchase
InstallmentPeriodic payment componentPayment plan
SubscriptionRecurring subscription componentSaaS plan
  1. Identify the invoice role.
  2. Match it to an exact supported member.
  3. Leave the property out when no member fits.
  4. Monitor vocabulary changes before expanding mappings.

Use the exact vocabulary, not a guess: an unsupported fee label should remain visibly described rather than falsely classified.

How Does priceComponentType Work in UnitPriceSpecification?

priceComponentType works by classifying one UnitPriceSpecification connected to an Offer, while the specification’s other properties describe its amount, currency, billing interval, quantity, and validity. Multiple component objects can represent a composite price when each is independently understandable.

A software offer could have a $99 monthly subscription and a $200 activation fee. One UnitPriceSpecification uses Subscription; another uses ActivationFee. The Offer connects them, and visible pricing shows whether both are mandatory.

Component model for a software offer
ComponentTypeAmountCadence
Platform accessSubscription$99Monthly
Account activationActivationFee$200One time
Optional financingInstallmentDefined paymentPer installment
  • Use separate objects for components with different roles or cadence.
  • Connect each component to the same relevant offer.
  • Do not imply that an optional component is mandatory.

See UnitPriceSpecification Schema for the parent type.

Composition should remain legible: every component needs one role, one amount, and one relationship to the total offer.

priceComponentType vs priceType: What Is the Difference?

priceComponentType explains what part of the total price a component represents, while priceType explains the commercial kind of a price, such as list, sale, or manufacturer suggested retail price. Component role and price status are different dimensions.

A subscription component may have a regular list price and a temporary sale price. Subscription is the component type; sale price is the price type. Treating them as interchangeable destroys the distinction between “what is being charged” and “what pricing status this amount has.”

priceComponentType compared with priceType
DimensionpriceComponentTypepriceType
Main questionWhat component is this?What kind of price is this?
Example valueSubscriptionSale price
Primary useBreak down total costDistinguish price status
Common mistakeUsing “sale” as a componentUsing “activation fee” as price status
  1. First identify the line-item role.
  2. Then determine whether the amount is list, sale, invoice, or another price type.
  3. Use both only when both dimensions are truthful.
  4. Keep visible labels consistent with each meaning.

Read priceType Schema for the price-status dimension.

Remember “part” versus “status”: priceComponentType identifies the charge component; priceType identifies the price’s commercial category.

How Do You Add priceComponentType in JSON-LD?

Add priceComponentType to a UnitPriceSpecification using the canonical URL of the matching PriceComponentTypeEnumeration member. Keep the component object inside the relevant Offer and provide the amount, currency, and cadence needed to understand the charge.

{
  "@context": "https://schema.org",
  "@type": "Offer",
  "priceSpecification": [
    {
      "@type": "UnitPriceSpecification",
      "price": "99.00",
      "priceCurrency": "USD",
      "priceComponentType": "https://schema.org/Subscription"
    },
    {
      "@type": "UnitPriceSpecification",
      "price": "200.00",
      "priceCurrency": "USD",
      "priceComponentType": "https://schema.org/ActivationFee"
    }
  ]
}
JSON-LD implementation checks
CheckCorrectIncorrect
Expected valueSupported enumeration memberFree-text “setup”
ParentUnitPriceSpecificationUnrelated Organization
Component separationDifferent roles use different objectsOne amount combines every fee
VisibilitySame components appear in pricing termsHidden mandatory fee

Use Novaverb Site Audit to inspect final deployed JSON-LD across offer templates.

The snippet should reconstruct the bill: every component object must correspond to a visible, correctly classified charge.

How Should Subscription, Activation, and Installment Components Be Modeled?

Model subscriptions, activation fees, downpayments, and installments as separate UnitPriceSpecification objects when their role, timing, or recurrence differs. Do not collapse a one-time payment and recurring payment into one amount that obscures the buyer’s first and later bills.

A financed annual software contract might require a downpayment, monthly installments, and a recurring subscription renewal. The page must clarify whether the installment pays down a fixed purchase, while the subscription continues independently.

Payment-component distinctions
ComponentTimingBuyer question
ActivationFeeUsually one timeIs setup mandatory?
DownpaymentUp frontWhat balance remains?
InstallmentScheduled paymentsHow many payments and how often?
SubscriptionRecurringWhen does it renew or cancel?
  • State the first invoice total.
  • State later recurring amounts.
  • Show installment count and schedule.
  • Separate refundable deposits from downpayments.

Timing is part of price meaning: classify and disclose each component so a buyer can predict the first bill and every later payment.

How Should Cleaning and Distance Fees Be Modeled?

Use CleaningFee for the cleaning component of a total price and DistanceFee for a distance-based component, with each UnitPriceSpecification showing its own amount, currency, quantity basis, and applicability. These values are not general labels for every service fee.

A vacation rental can have a fixed cleaning charge. A vehicle rental can have a distance charge per mile after an allowance. When distance pricing uses increments, connect the unit and billing step to the same component.

Fee modeling examples
OfferComponent typeNeeded contextMain risk
Vacation rentalCleaningFeePer stay or per bookingHiding it from total
Car rentalDistanceFeePer mile or kilometerMissing included allowance
DeliveryDistanceFee when genuinely distance-basedOrigin, destination, and unitUsing it for a flat delivery fee
Housekeeping subscriptionDo not assume CleaningFeeOffer may be a subscription serviceConfusing service product with fee component
  1. Identify whether the charge is fixed or measured.
  2. State the unit and billing increment when measured.
  3. Show mandatory fees before checkout.
  4. Verify the invoice uses the same calculation.

See billingIncrement Schema for charge steps.

Classify the actual line item: the enum describes a fee component, not the general industry of the offer.

How Do You Validate priceComponentType Markup?

Validate priceComponentType by checking the enumeration member, UnitPriceSpecification placement, component amount, currency, cadence, optionality, total-price reconciliation, and invoice agreement. Syntax alone cannot prove that a fee is correctly classified or disclosed.

Component validation workflow
LayerEvidencePass condition
VocabularyEnumeration URLSupported exact member
GraphEntity relationshipValue belongs to UnitPriceSpecification
AmountPricing configurationComponent price and currency match
TimingBilling termsOne-time or recurring cadence is clear
TotalCalculator and checkoutMandatory components reconcile
InvoiceFinal line itemsRoles and amounts match markup
  • Test offers with one component and multiple components.
  • Test optional and mandatory fees separately.
  • Test first invoice and renewal invoice.
  • Re-crawl after pricing or billing changes.

Connect component evidence with the broader Novaverb SEO tools system.

Validation ends at reconciliation: structured components must add up in the same way visible pricing and invoices do.

How Can Price Components Support CTR and Pricing Clarity?

Clear price components can support CTR and conversion by showing US buyers the real first payment, recurring charge, and mandatory fees, but priceComponentType does not guarantee rankings or a rich result. The gain comes from matching the search promise to the total cost.

“SEO software for $99/month” is incomplete if every account requires a $500 activation fee. A title or description can emphasize “no setup fee” only when pricing data and checkout confirm it. When a fee exists, the landing page should present it beside the subscription rather than behind a modal.

Component clarity across the funnel
SurfaceActionMeasure
Search snippetFrame the actual recurring and initial costCTR by pricing-intent query
Pricing pageSeparate mandatory componentsPlan comparison engagement
CheckoutReconcile first and later paymentsCheckout completion
InvoiceUse understandable line-item namesBilling support contacts

Search Console is authoritative for clicks, impressions, CTR, and position. Novaverb’s crawl is authoritative for the pricing content actually present. Use the free backlink checker for one off-page signal.

Track qualified trials or purchases beside CTR. A clearer total price may lower low-intent clicks while improving buyer quality and reducing billing disputes.

For an SEO SaaS offer, build a price-component matrix before writing search copy. Put the base subscription, onboarding or activation fee, optional managed-service component, usage overage, discount, and tax treatment in separate rows. Only map rows to priceComponentType when an official enumeration member fits. This prevents a generic “from $99” claim from hiding the first-month total or presenting an optional service as part of every account.

CTR experiments should compare messages such as “no activation fee,” “monthly subscription,” or “installment option” only when those distinctions are durable and visible. Record the exact page state and billing configuration alongside the Search Console window. Then compare qualified trials, first-invoice completion, and billing questions. A component message is commercially useful when it attracts buyers whose expected payment schedule matches the actual offer.

Transparent composition attracts the right click: buyers should know what they pay now, later, and only when a condition applies.

priceComponentType Schema FAQ

priceComponentType classifies supported line-item roles within UnitPriceSpecification and should not be used as free-form fee text. These answers address the implementation choices most likely to cause invalid or misleading component markup.

What values can priceComponentType use?
The current enumeration includes ActivationFee, CleaningFee, DistanceFee, Downpayment, Installment, and Subscription.
Can I use “setupFee” as a custom value?
Do not invent an enumeration URL. Use ActivationFee when it accurately fits, otherwise describe the fee visibly without false classification.
Is priceComponentType the same as priceType?
No. Component type identifies the role in total cost; price type identifies commercial status such as list or sale price.
Can an Offer contain several components?
Yes. Use separate UnitPriceSpecification objects when component roles, amounts, or cadence differ.
Should optional fees be marked up?
Only when the offer clearly communicates their optional conditions and the structured graph does not imply they are mandatory.
Can a subscription have an activation fee?
Yes. Model the recurring subscription and one-time activation charge as separate components.
Does this property guarantee a search feature?
No. It improves structured price meaning but does not guarantee rankings, CTR, or any particular search presentation.
When should components be audited?
Audit after price, fee, installment, subscription, checkout, currency, or invoice-template changes.
Final component checklist
RequirementReady when
MemberExact supported enumeration fits
ParentValue belongs to UnitPriceSpecification
AmountPrice and currency match the component
VisibilityMandatory and optional roles are clear
ReconciliationCheckout and invoice reproduce components

The final rule is line-item truth: every classified component must correspond to a real, visible, and reconcilable part of the offer’s total price.