---
schema_version: "1"
id: d5cc910a35c8ae1c4e6653ddd7231355035e9fa1a22ab2951b9204d280d16ea4
title: Customizing Default Interface Implementations for Margin Ranges
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/comms_customizing_default_interface_implementations_for_margin_ranges.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.comms_customizing_default_interface_implementations_for_margin_ranges.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 14b3a8cdbfbac326234ef9a7849d70c09183f055f4fed0ef460d2d0efcdfbf63
description: You can customize the Margin Range Loader or the Margin Validation interfaces by changing the default implementations. You may want to do this to customize the names of the calculation procedures, matrices, and/or the logic used to validate the ranges. These interfaces are invoked by the Pricing Plan when the LoadMarginRanges method name is specified in a step.
products:
  - Communications
  - Media
  - Energy and Utilities
release: "264"
---
# Customizing Default Interface Implementations for Margin Ranges

You can customize the Margin Range Loader or the Margin Validation interfaces by changing the default implementations. You may want to do this to customize the names of the calculation procedures, matrices, and/or the logic used to validate the ranges. These interfaces are invoked by the Pricing Plan when the LoadMarginRanges method name is specified in a step.

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-comms_media_energy_managed-264-0-0-production-enus/ff4079f6-a384-475c-b863-578bbbb0ef9b/images/icon_important.png)

Important

In the Pricing Plan Steps facet of the Default Pricing Plan, add the Load Margin Ranges step after the "Calculate Rollups" step and before the "Save Line Items" step.

![The Pricing Plan Steps with example steps](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-comms_media_energy_managed-264-0-0-production-enus/ff4079f6-a384-475c-b863-578bbbb0ef9b/resources-product/images/pricing__plan__steps.png)

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-comms_media_energy_managed-264-0-0-production-enus/ff4079f6-a384-475c-b863-578bbbb0ef9b/images/icon_important.png)

Important

If you do not have the MarginRangeLoader or MarginValidation interfaces in your org, install the Winter '19 release and run the post-installation or post-upgrade steps. See the [CME Installation](https://help.salesforce.com/s/articleView?id=ind.comms_t_cme_installation_91619.htm&language=en_US) or the [CME Upgrade](https://help.salesforce.com/s/articleView?id=ind.comms_cme_upgrade_parent.htm&language=en_US) .

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-comms_media_energy_managed-264-0-0-production-enus/ff4079f6-a384-475c-b863-578bbbb0ef9b/images/icon_note.png)

Note

This is an optional step. Use it only if you want to customize the default interface implementations to load the margin range and validate it.

Customize one or both of the following default interface implementations:

- Margin Range Loader
    
    The MarginRangeLoader interface implementation loads the margin range data from the calculation procedure and returns the data in an output map. The calculation procedure name is passed through the loadMarginRange parameter in the pricing plan step.
    
    Customize this interface implementation, for example, when you don't want to be restricted to using the calculation procedure and want the flexibility to define your own margin range calculation process. See [Customize the MarginRangeLoader Interface Implementation](https://help.salesforce.com/s/articleView?id=ind.comms_customize_the_marginrangeloader_interface_implementation.htm&release=264.0.0&type=5 "If you do not want to use a Vlocity calculation procedure to calculate your margin ranges, you can create a new one, name it in the pricing plan step, and build custom logic to load the margin range.").
- Margin Validation
    
    The MarginValidation interface implementation validates margin range on line items and returns an error message at the line item level in the Industries CPQ Cart.
    
    Customize this interface implementation, for example, when you don't want to validate error messages at the line item level. Instead, you want to set up a different validation mechanism. See [Customize the MarginValidation Interface Implementation](https://help.salesforce.com/s/articleView?id=ind.comms_customize_the_marginvalidation_interface_implementation.htm&release=264.0.0&type=5 "This interface implementation is called by the default Margin Range Loader interface implementation. You can overwrite this class to customize the margin validation.").

- **[Customize the MarginRangeLoader Interface Implementation](https://help.salesforce.com/s/articleView?id=ind.comms_customize_the_marginrangeloader_interface_implementation.htm&release=264.0.0&type=5)**  
    If you do not want to use a Vlocity calculation procedure to calculate your margin ranges, you can create a new one, name it in the pricing plan step, and build custom logic to load the margin range.
- **[Customize the MarginValidation Interface Implementation](https://help.salesforce.com/s/articleView?id=ind.comms_customize_the_marginvalidation_interface_implementation.htm&release=264.0.0&type=5)**  
    This interface implementation is called by the default Margin Range Loader interface implementation. You can overwrite this class to customize the margin validation.
- **[Customizing Default Margin Range and Validation Interface Implementations](https://help.salesforce.com/s/articleView?id=ind.comms_customizing_default_margin_range_and_validation_interface_implementations.htm&release=264.0.0&type=5)**  
    Follow these optional customization steps to build your own margin range and margin validation interface implementations.