DirectScale Developers

DirectScale Developers

Get Started    API Reference

The best way to think of Volumes is as a bucket that you are putting orders into (a bucket of volume). The inventory items in the orders have CV and QV—two of the most common Volume Groups—volume amounts filled in.



Volume Groups

Volume Groups determine from where the volume comes. Other volume groups include:

ValueDefinition
CVThe Commissionable Volume set on the items purchased.
QVThe Qualifying Volume set on the items purchased.
SubTotalValue of orders placed excluding tax and shipping.
TotalValue of orders placed including tax and shipping.
OrderCountThe number of orders placed.
ItemCountQuantity of items sold (an order with an item quantity of five equals five volume).
UniqueItemsNumber of items sold (an order with an item quantity of five counts as one volume).

Each volume defined will assign a value to each Associate. Use volume to:

  • Qualify for a rank
  • Calculate a commission bonus
  • Display as KPI

The way you create volume buckets is with Volume Accumulators.



Volume Accumulators

When we're talking about Volume Accumulators, you're looking from the perspective of a specific individual. For example, "you". What is "your" volume bucket.

    <VA_Personal AssociateBaseTypes="" Name="CV">
      <VolumeType>
        <DefVolType VolumeGroup="CV" />
      </VolumeType>
    </VA_Personal>

This example is a simple Volume Accumulator. The AssociateBaseTypes is blank, so it applies to all Associate Types. It's looking at the CV of their order for the designated Volume Range. This example doesn't have a Volume Range selected, meaning it will use the compensation plan's default Volume Range. The Volume Type determines what volume on the order you are summing.

📝

Volume Types:

  • <DefVolType> - This basic default Volume Type looks at an order and assigns a Volume Group (CV, QV, etc.) to the order.
  • <OrderTypeVolume> - Looks at all the orders and adds an extra filter for Order Types. You can then assign that Order Type a default Volume Group.

See Reference: Volume Types for details on each Volume Type available.

Each Volume Accumulator is assigned a name of your choosing. In the preceding example, the Volume Accumulator is named "CV". Later in the compensation plan, you can reference this name to assign the volume to specific conditions:

<Rule Description="Commission Active" Name="ComACT">
      <And>
        <PVCondition Max="-1" Min="200" Volume="CV" />
      </And>
       <Result>
        <SetStat Name="ComACT" Description="Commission Active" />
      </Result>
</Rule>

This example calls the Volume named "CV". It states that to be considered "Active", an Associate must have at least 200 "CV" volume.

The hardest part when setting up a comp plan has to do with Volume Accumulators. They are vital to get correct and should be the first thing you figure out when creating a compensation plan. You'll notice, when you're creating Volume Accumulators, you almost always have more than one. You'll have ones for paying out Unilevel or Binary Trees, qualifying for ranks, CV, QV, and they're all different. You're going to end up with five or more (sometimes as many as 20) to get the results you need.

There are different Volume Accumulator types to use for specific scenarios.


VA_Personal

Counts the volume for only the person that purchased the product.

<VA_Personal Name="CV" AssociateBaseTypes="">
   <VolumeType>
      <DefVolType VolumeGroup="CV" />
   </VolumeType>
</VA_Personal>

Retail

returns all the volume for a Distributor Associate's customers. It only looks at a Distributor's customers. If a customer enrolls another customer, then the Distributor would earn volume; the customers would not.

<Retail Name="DistRetail" VolumeRange="Monthly">
  <VolumeType>
    <DefVolType VolumeGroup="QV" />
  </VolumeType>
</Retail>

VA_Personal_Retail

There are times when an Associate has enrolled customers, and those customers are handled differently in a compensation plan. Sometimes a customer's volume goes to help the Sponsor Associate that brought them in.

<VA_Personal_Retail Name="VAPR" AssociateBaseTypes="2" ExchangeRate="50" SplitMethod="SplitOrder" VolumeRange="Weekly">
  <VolumeType>
    <DefVolType VolumeGroup="QV" />
  </VolumeType>
</VA_Personal_Retail>

<VA_Personal_Retail> is very similar to <VA_RetailRollUp>, but the customer keeps their volume. It takes customer volume and copies it to the Associate that enrolled them. The customer will also keep the volume; this can cause duplicate volume.

Caution

Be careful when using this element. You're doubling the volume, and if used in the wrong place, the client will pay way more than they should have.

<VA_Personal_Retail> can be risky, but it's also very valuable when you're doing different calculations, like making sure people are Active. An Active requirement is 50 volume, and an Associate's customer purchases a product with 50 volume. Both the Associate and customer are Active in this scenario. The risk is that you're doubling the volume. So the customer and the Associate have volume, but it's coming from the same order of 50 volume. So, it's a little deceiving; you have to be careful where you use <VA_Personal_Retail>.

How this Accumulator defines a customer is with the AssociateBaseTypes attribute. Assign the Associate Types you want considered customers. The default customer Associate Type is Retail Customer (2).

<VA_Personal_Retail> also allows you to do an ExchangeRate. You assign a percentage, for example, 50. The Associate would get the full volume amount, but the customer would receive 50%.


VA_RetailRollUp

When an Associate signs up retail customers, how do those customers' orders count towards the Associate? <VA_RetailRollUp> takes customer volume and moves it to the Associate that enrolled them. The customer will never have volume for this Accumulator. <VA_RetailRollUp> is very similar to <VA_Personal_Retail>; except, it doesn't duplicate the volume. It removes the volume from the customer and gives it to the Associate. This Volume Accumulator makes it so the customers can make an Associate "Active" and keep receiving commissions because of their customer purchases.

<VA_RetailRollup Name="PS">
      <VolumeType>
        <DefVolType VolumeGroup="QV" />
      </VolumeType>
</VA_RetailRollup>

This example looks at all the QV of an Associate's and Associate's customer's orders and puts them into one Accumulator called "PS". When this example is run through, the customers' PS result will be zero. However, when run through for the customer's sponsor Associate, if the customer had 50 volume and the Associate had 50 volume, the Associate's PS will be 100.

<VA_RetailRollup Name="PS2M" VolumeRange="TwoMonthly" >
      <VolumeType>
        <DefVolType VolumeGroup="QV" />
      </VolumeType>
</VA_RetailRollup>

This example is the same logic as the previous, but it pulls in a two-month Volume Range. It takes all the Associate's and the Associate's customers' QV orders for the previous and current months and puts them in an Accumulator called "PS2M" that can be used later on in the compensation plan.

So, if you want a Quick Start option, you could reference this Volume Accumulator in a Rule:

<Rule Description="Current Quick Start 500" Name="QS500">
      <And>
        <PVCondition Max="-1" Min="500" Volume="PS2M" />
        <EnrolledInCondition VolumeRange="TwoMonthly" />
      </And>
      <Result>
        <Payments>
          <Payment Pool="MasterPool" Bonus="Quick Start" Tag="" MetaData="">
            <Group>
              <CurrentAssociateGroup />
            </Group>
            <Source>
              <FixedAmountPay Comment="Achived" Amount="100" OneTimeKey="" GroupSize="0" />
            </Source>
          </Payment>
        </Payments>
      </Result>
</Rule>

This example requires a minimum of 500 volume, and the Associate must enroll someone in that last two months. If the Associate meets both these conditions, they get paid a fixed amount of 100.


VA_SplitVolume

<VA_SplitVolume> is a way to cut volume up into smaller bits. These come into play a lot when you're saying that only a certain amount of an Associate's volume can contribute to a Rule. It's like putting a cap on their personal volume. Let's say we pass in a Volume Accumulator that has 500 volume in it. You're taking that Volume Accumulator and cutting it down to the Max amount (for example, 100).

<VA_SplitVolume Name="SV" Volume="CV" Min="0" Max="100" />

Why would that be helpful? That alone is usually not helpful, but if you use that with <VA_Union>, it can be beneficial. For example, let's say to be Active, an Associate needs 100 volume, and only 50 can come from themselves. So, you could do a <VA_SplitVolume> of 0-50. Then <VA_Union> <Retail> volume:

<VA_SplitVolume Name="SV" Volume="CV" Min="0" Max="50" />

<VA_Union Name="" First="DistRetail" Second="SV" />

This example says to give an Associate all their <Retail> volume (DistRetail), plus up to 50 of their personal (CV) and create a Volume Accumulator (SV) that you could use for a <Rule> that determines if they are considered Active.

Updated about a month ago



Volumes


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.