Files
marka/registry/schema-org/FinancialIncentive.schema.json
Max Richter c687eff53d big tings
2025-08-17 15:16:17 +02:00

123 lines
8.6 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "schema:FinancialIncentive",
"title": "FinancialIncentive",
"description": "Represents financial incentives for goods/services offered by an organization (or individual).\n\nTypically contains the [[name]] of the incentive, the [[incentivizedItem]], the [[incentiveAmount]], the [[incentiveStatus]], [[incentiveType]], the [[provider]] of the incentive, and [[eligibleWithSupplier]].\n\nOptionally contains criteria on whether the incentive is limited based on [[purchaseType]], [[purchasePriceLimit]], [[incomeLimit]], and the [[qualifiedExpense]].\n ",
"type": "object",
"allOf": [
{
"description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.",
"$ref": "schema:Intangible"
}
],
"properties": {
"areaServed": {
"description": "The geographic area where a service or offered item is provided.",
"anyOf": [
{ "type": "string" },
{ "$ref": "schema:AdministrativeArea" },
{ "$ref": "schema:GeoShape" },
{ "$ref": "schema:Place" }
]
},
"eligibleWithSupplier": {
"description": "The supplier of the incentivized item/service for which the incentive is valid for such as a utility company, merchant, or contractor.",
"$ref": "schema:Organization"
},
"incentiveAmount": {
"description": "Describes the amount that can be redeemed from this incentive.\n \n[[QuantitativeValue]]: Use this for incentives based on price (either raw amount or percentage-based). For a raw amount example, \"You can claim $2,500 - $7,500 from the total cost of installation\" would be represented as the following:\n {\n \"@type\": \"QuantitativeValue\",\n “minValue”: 2500,\n “maxValue”: 7500,\n \"unitCode\": \"USD\"\n }\n[[QuantitivateValue]] can also be used for percentage amounts. In such cases, value is used to represent the incentives percentage, while maxValue represents a limit (if one exists) to that incentive. The unitCode should be 'P1' and the unitText should be '%', while valueReference should be used for holding the currency type. For example, \"You can claim up to 30% of the total cost of installation, up to a maximum of $7,500\" would be:\n {\n \"@type\": \"QuantitativeValue\",\n \"value\": 30,\n \"unitCode\": \"P1\",\n \"unitText\": \"%\",\n “maxValue”: 7500,\n “valueReference”: “USD”\n }\n[[UnitPriceSpecification]]: Use this for incentives that are based on amounts rather than price. For example, a net metering rebate that pays $10/kWh, up to $1,000:\n {\n \"@type\": \"UnitPriceSpecification\",\n \"price\": 10,\n \"priceCurrency\": \"USD\",\n \"referenceQuantity\": 1,\n \"unitCode\": \"DO3\",\n \"unitText\": \"kw/h\",\n \"maxPrice\": 1000,\n \"description\": \"$10 / kwh up to $1000\"\n }\n[[LoanOrCredit]]: Use for incentives that are loan based. For example, a loan of $4,000 - $50,000 with a repayment term of 10 years, interest free would look like:\n {\n \"@type\": \"LoanOrCredit\",\n \"loanTerm\": {\n \"@type\":\"QuantitativeValue\",\n \"value\":\"10\",\n \"unitCode\": \"ANN\"\n },\n \"amount\":[\n {\n \"@type\": \"QuantitativeValue\",\n \"Name\":\"fixed interest rate\",\n \"value\":\"0\",\n },\n ],\n \"amount\":[\n {\n \"@type\": \"MonetaryAmount\",\n \"Name\":\"min loan amount\",\n \"value\":\"4000\",\n \"currency\":\"CAD\"\n },\n {\n \"@type\": \"MonetaryAmount\",\n \"Name\":\"max loan amount\",\n \"value\":\"50000\",\n \"currency\":\"CAD\"\n }\n ],\n }\n\nIn summary: Use [[QuantitativeValue]] for absolute/percentage-based incentives applied on the price of a good/service.\nUse [[UnitPriceSpecification]] for incentives based on a per-unit basis (e.g. net metering).\nUse [[LoanOrCredit]] for loans/credits.\n.",
"oneOf": [
{
"anyOf": [
{ "$ref": "schema:LoanOrCredit" },
{ "$ref": "schema:QuantitativeValue" },
{ "$ref": "schema:UnitPriceSpecification" }
]
},
{
"type": "array",
"items": {
"anyOf": [
{ "$ref": "schema:LoanOrCredit" },
{ "$ref": "schema:QuantitativeValue" },
{ "$ref": "schema:UnitPriceSpecification" }
]
}
}
]
},
"incentiveStatus": {
"description": "The status of the incentive (active, on hold, retired, etc.).",
"$ref": "schema:IncentiveStatus"
},
"incentiveType": {
"description": "The type of incentive offered (tax credit/rebate, tax deduction, tax waiver, subsidies, etc.).",
"$ref": "schema:IncentiveType"
},
"incentivizedItem": {
"description": "The type or specific product(s) and/or service(s) being incentivized.\nDefinedTermSets are used for product and service categories such as the United Nations Standard Products and Services Code:\n {\n \"@type\": \"DefinedTerm\",\n \"inDefinedTermSet\": \"https://www.unspsc.org/\",\n \"termCode\": \"261315XX\",\n \"name\": \"Photovoltaic module\"\n }\n\nFor a specific product or service, use the Product type:\n {\n \"@type\": \"Product\",\n \"name\": \"Kenmore White 17\" Microwave\",\n }\nFor multiple different incentivized items, use multiple [[DefinedTerm]] or [[Product]].",
"anyOf": [{ "$ref": "schema:DefinedTerm" }, { "$ref": "schema:Product" }]
},
"incomeLimit": {
"description": "Optional. Income limit for which the incentive is applicable for.\n \nIf MonetaryAmount is specified, this should be based on annualized income (e.g. if an incentive is limited to those making <$114,000 annually):\n {\n \"@type\": \"MonetaryAmount\",\n \"maxValue\": 114000,\n \"currency\": \"USD\",\n }\n\nUse Text for incentives that are limited based on other criteria, for example if an incentive is only available to recipients making 120% of the median poverty income in their area.",
"oneOf": [
{
"anyOf": [{ "type": "string" }, { "$ref": "schema:MonetaryAmount" }]
},
{
"type": "array",
"items": {
"anyOf": [{ "type": "string" }, { "$ref": "schema:MonetaryAmount" }]
}
}
]
},
"provider": {
"description": "The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller.",
"anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }]
},
"publisher": {
"description": "The publisher of the article in question.",
"anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }]
},
"purchasePriceLimit": {
"description": "Optional. The maximum price the item can have and still qualify for this offer.",
"oneOf": [
{ "$ref": "schema:MonetaryAmount" },
{ "type": "array", "items": { "$ref": "schema:MonetaryAmount" } }
]
},
"purchaseType": {
"description": "Optional. The type of purchase the consumer must make in order to qualify for this incentive.",
"oneOf": [
{ "$ref": "schema:PurchaseType" },
{ "type": "array", "items": { "$ref": "schema:PurchaseType" } }
]
},
"qualifiedExpense": {
"description": "Optional. The types of expenses that are covered by the incentive. For example some incentives are only for the goods (tangible items) but the services (labor) are excluded.",
"oneOf": [
{ "$ref": "schema:IncentiveQualifiedExpenseType" },
{
"type": "array",
"items": { "$ref": "schema:IncentiveQualifiedExpenseType" }
}
]
},
"validFrom": {
"description": "The date when the item becomes valid.",
"anyOf": [
{ "type": "string", "format": "date" },
{ "type": "string", "format": "date-time" }
]
},
"validThrough": {
"description": "The date after when the item is not valid. For example the end of an offer, salary period, or a period of opening hours.",
"anyOf": [
{ "type": "string", "format": "date" },
{ "type": "string", "format": "date-time" }
]
}
}
}