All Collections
Accounting
Cost Accounting in Distru
Cost Accounting in Distru
Lucas Judson avatar
Written by Lucas Judson
Updated over a week ago

Table of Contents

How does Distru track costs?

Distru tracks the actual cost of any inventory brought into Distru, and allows that cost to travel through assemblies into the finished goods that get produced and sold. You have robust and easy control of how costs are added and how to view them, to get the most profit out of your product! 🎉

Where and how do costs get added?

Costs are tracked as you conduct your normal workflow so you're not adding more time to your workday! With accurate costs, comes greater profits! 💰

Intake: Purchase Orders

Ensuring that any inventory (both cannabis and non-cannabis) that you are paying for is brought into Distru on a Purchase Order is imperative for tracking accurate costs. Not only does this introduce the inventory with a cost, it will be essential for accounting to reconcile the origin of a cost during end of month reporting.

Intake: Importing Packages (Metrc Only)

Whether you're onboarding or just need to use a package immediately that isn't associated with a purchase order, you can ensure it still has costs! For any package you import through the Direct Import Tool, make sure you fill in the cost field to track your cost!

🛑 WARNING: If you import a package with a cost using the direct import tool and later want to import the package using a Purchase Order, the costs will be added together. Be sure to not duplicate costs! If needed, you can reduce a previously added cost by manually adding a negative cost to a given package before you import the Purchase Order.

Adding Production Costs to a Manual or Harvest Assembly

Now you can have FULL CONTROL over your cost of goods by tracking operational costs and resources like labor, utilities, etc...and have the most accurate COGS possible!

Once you've set up Cost Types in Settings, you can begin adding them to an assembly!

  1. In the Additional Costs section, click "Add Cost"

  2. Select the output that this cost is being allocated to. You can select more than one output, which means the cost will be proportionately allocated between them. (For harvest assemblies, select the package inside of the output as well)

  3. Select the cost you want to allocate

  4. Enter the number of units for that cost (Example: How many labor hours were spent on this assembly)

  5. Save the assembly

🎁 Bonus! You can save commonly used preset costs with BOMs!

Adding Costs to inventory directly

Track additional costs like Compliance Tests or Storage Costs to inventory directly without an assembly and ensure your costs are all accounted for. Go to the 3-dot menu for any Package, Batch, or Product-tracked product and click Add Costs.

Inventory Adjustments

You can now specify the cost of inventory when making an adjustment in Distru! This is super helpful for keeping costs accurate when you’re doing things like cycle counts, fixing bad data, etc…

Adding a cost through an adjustment will only be applied to the new quantity being added

  1. If you do not have the View Costs permission enabled, you will see a toggle (which is enabled by default so you don't miss it!) that allows the current active quantity cost to be inherited to the new quantity being added

For Metrc-Integrated Customers

When a package quantity is changed in Metrc directly, we automatically update the quantity in Distru. For quantity that is being added through a Metrc-repair, we have a setting that is default-enabled to always inherit the current active quantity cost from the inventory that the new quantity is being added to!

Where to View Costs and Profits

Now that you’ve entered your costs, you’ll be able to see detailed cost, margin and profit (or loss 😬) reports!

When viewing the cost reports, you'll see separate columns for "Actual Cost" vs "Default Cost". The combo allows Distru to provide cost tracking for all diff

  • Actual Cost - Cost accrued through Purchase Orders, Adjustments, Imports, and Preset Costs of all ingredients leading to the given inventory (Most Accurate)

  • Default Cost - Cost accrued via the Default Product Cost of all ingredients leading to the given inventory. Not batch specific.

  1. Cost Breakdown!

    1. View the story that lead to your current costs and MAXIMIZE REVENUE! You can view a cost breakdown from the Sales Order, Invoice, Assembly, Package, Batch, or Product detail pages!

  2. COGS Report

    1. Shows the Actual Cost and Default Cost of all line items on Completed Sales Orders. Use the granular version to see the inputs that created the output cost. See more details about the COGS report here

  3. Inventory Assets Report

    1. Shows the Actual Cost and Default Cost of all of your in-house inventory, at a specific date and time!

  4. Assembly Export

    1. Shows the Actual Cost of every ingredient and output from the assemblies chosen for the export

  5. Detail Pages

    1. When drilling into any product, batch, or package, you can see the current cost of the inventory in the side panel info

  6. Table Columns

    1. You can now see the active quantity cost for a product from the product table(all active inventory), or if you're looking at the batches or packages table you will be seeing the active quantity cost for the specific batch/package.

Looking for advanced cost and profit analysis across your entire organization? Find our more about Distru Analytics!

Settings and Permissions

💥 You now have full control over how your company tracks costs, and who is allowed to view/edit them!

Settings

Make your cost accounting air-tight by configure your additional costs that will be added to assemblies alongside your ingredients, and set permission levels so that only the appropriate users can view and assign the cost values!

Cost Types (Additional Costs)

  1. This is where you configure the Additional Costs that can be added to any given inventory or assembly to represent operational costs (non-inventory).Go to Settings > Customize Distru > Cost Types

    1. Click "Add Cost"

    2. Enter a name for the Cost Type - The name should be clearly identifiable by both the user adding the cost to inventory as well as by your accountant. For example, "Labor - Production Technician" would specify labor used by a certain role, and is easy to know where to allocate.

    3. Unit Type - Select how this Cost Type should be measured. For example, Labor is typically going to be measured in Hours. To add a new unit type, go to Settings > Customize Distru > Unit Types

    4. Cost per Unit - The cost that will be allocated to inventory for every unit of this Cost Type that is used.

    5. Allow Inline Cost Editing (Toggle) - 🔴 Only enable this toggle if the Cost Type you're creating has a flexible cost per unit that you want users to control every time they allocate this Cost Type to inventory. For example, if you want to use a generic Cost Type like "Shipping Charges" that would be different every time.

    6. Active - Use this toggle to deactivate an existing Cost Type from being used. They cannot be deleted, only deactivated.

Permissions

Cost permissions are separated so that you can still have employees add operational costs to assemblies or inventory without being able to see the actual dollar value. Viewing Costs pertains to all places in the app where costs would appear. You can edit permissions in Settings > Users and Roles > Edit Role

Frequently Asked Questions

All Accounts

  1. How do I correct the cost on a specific batch or package?

    1. First, check if the package was brought in through a Purchase Order with an incorrect line item cost. Simply adjust the line item cost to the correct value and it will trickle down through all of the subsequent transactions. This is the most effective way to retroactively affect costs

    2. If the Purchase Order was correct, you can retroactively add Additional Costs to assemblies.

      1. Create a new Cost Type called "Cost Correction"

        1. Set the Unit Type to "Unit"

        2. Set the Cost/Unit to $1

        3. Enable "Allow Inline Cost Editing"

      2. Locate the assembly you would like to edit on the Assemblies Table and click in the grey space on that assembly's row to edit the assembly

      3. Scroll down to the bottom of the assembly to the Additional Costs section, and add the Cost Correction Cost Type or whatever other Cost Type(s) you want to apply to the outputs from that assembly. The newly added costs will trickle down through all of the subsequent transactions for the outputs that received the costs.

    3. You can also add costs to inventory directly with a positive or negative value, however this will only affect the current active quantity of the inventory you apply it to. (This means that if a batch has 100 units in inventory, and 20 are assigned to a sales order, adding a cost will only apply to the 80 units still active).

      1. Go to the 3-dot Menu for the Product if Product-Tracked, Batch if Batch-Tracked, or Package if Package-Tracked

        1. Select "Add Cost"

        2. Select the Cost Type you would like to apply

        3. Enter the Units and Cost Per Unit

        4. Submit

          Notice in the example screenshot, this cost correction is removing cost from 1000 units because there is a (-) in front of the value

      2. ⭐️ Pro Tip: For Cost Corrections, add only 1 unit of cost and specify the total value of the cost you want to add to/subtract from the active inventory. This will appear on the cost breakdown as "One Correction" instead of multiple units of correction

  2. What happens if I transfer inventory between my licenses on the same Distru account?

    1. Costs will travel between licenses auto-magically! 🎉

  3. I sold inventory from the same batch or package on different Sales Orders and it had different costs. Why?

    1. This usually takes some investigation, so our Cost Breakdown is the best way to figure out what happened! (see above). The most common reason, is when a cost is added to only a portion of a batch or package but not the whole quantity, so then there are different costs depending on which portion was sold.

Metrc Related

  1. What happens to a cost when a package is rejected and I receive it back into inventory?

    1. The package's Total Cost will be preserved. So if a package has $100 divided across 10 units ($10/unit), and is rejected it will return with $100

      1. 🔴 If the package is sent back on a separate transfer with a different quantity than when it left, it will still return with the same total cost. So if the $100 package above returns with only 5 units instead of 10, it would have a unit cost of $20/unit when it returns.

  2. What happens when a package created in Distru is discontinued in Metrc?

    1. Distru will automatically detect the change in Metrc and change the package status to discontinued. If the package was created from a Distru assembly, the assembly will be discontinued and the quantity used from ingredients will be returned (both cannabis and non-cannabis)

  3. What happens if I import the incoming transfer that brought in a package as a Purchase Order after I’ve already sold that package in Distru?

    1. Creating or editing a Purchase Order will create a new cost on the package that was sold, and trickle the cost down through any assemblies that occurred using the purchased inventory as an ingredient.

  4. What happens if I import a package directly, then import the incoming transfer that brought in the package?

    1. The cost from the Purchase Order will be added to the package. However the transaction history will not show the Purchase Order because it only reflects changes in inventory quantity.

Did this answer your question?