export const metadata = { title: `Tax-Inclusive Pricing`, } # {metadata.title} In this document, you’ll learn about tax-inclusive pricing and how it's used when calculating prices. ## What is Tax-Inclusive Pricing? A tax-inclusive price is a price of a resource that includes taxes. Medusa calculates the tax amount from the price rather than adds the amount to it. For example, if a product’s price is $50, the tax rate is 2%, and tax-inclusive pricing is enabled, then the product's price is $49, and the applied tax amount is $1. --- ## How is Tax-Inclusive Pricing Set? The [PricePreference data model](/references/pricing/models/PricePreference) holds the tax-inclusive setting for a context. It has two properties that indicate the context: - `attribute`: The name of the attribute to compare against. For example, `region_id` or `currency_code`. - `value`: The attribute’s value. For example, `reg_123` or `usd`. Only `region_id` and `currency_code` are supported as an `attribute` at the moment. The `is_tax_inclusive` property indicates whether tax-inclusivity is enabled in the specified context. For example: ```json { "attribute": "currency_code", "value": "USD", "is_tax_inclusive": true, } ``` In this example, tax-inclusivity is enabled for the `USD` currency code. --- ## Tax-Inclusive Pricing in Price Calculation ### Tax Context As mentioned in the [Price Calculation documentation](../price-calculation/page.mdx#calculation-context), The `calculatePrices` method accepts as a parameter a calculation context. To get accurate tax results, pass the `region_id` and / or `currency_code` in the calculation context. ### Returned Tax Properties The `calculatePrices` method returns two properties related to tax-inclusivity: Learn more about the returned properties in [this guide](../price-calculation/page.mdx#returned-price-object). - `is_calculated_price_tax_inclusive`: Whether the selected `calculated_price` is tax-inclusive. - `is_original_price_tax_inclusive` : Whether the selected `original_price` is tax-inclusive. A price is considered tax-inclusive if: 1. It belongs to the region or currency code specified in the calculation context; 2. and the region or currency code has a price preference with `is_tax_inclusive` enabled. ### Tax Context Precedence A region’s price preference’s `is_tax_inclusive`'s value takes higher precedence in determining whether a price is tax-inclusive if: - both the `region_id` and `currency_code` are provided in the calculation context; - the selected price belongs to the region; - and the region has a price preference --- ## Tax-Inclusive Pricing with Promotions When you enable tax-inclusive prices for regions or currencies, this can impact how promotions are applied to the cart. So, it's recommended to enable tax-inclusiveness for promotions as well. Learn more in the [Tax-Inclusive Promotions](../../promotion/promotion-taxes/page.mdx) guide.