Scenario
User has an assembly unbuild transaction is being used to break down the assembly item "raw bacon" into its components: "cooked bacon" and "bacon grease." These components are subsequently used in the production of finished goods. The issue is that this assembly unbuild is posting a cost impact to the Cost of Goods Sold (COGS) account, which is incorrect because "raw bacon" is not a finished good sold to customers—it’s an intermediate product.
The unbuild transaction should not affect COGS, as COGS is typically associated with the sale of finished goods, not the disassembly of intermediate assemblies. However, in this case, the unbuild process is causing an unexpected debit to the COGS account.
Cause
This behavior stems from NetSuite’s standard handling of assembly unbuild transactions:
- Cost Variance: When an assembly is unbuilt, NetSuite compares the cost of the assembly (e.g., raw bacon) at the time of the unbuild to the combined costs of the resulting components (cooked bacon and bacon grease). Any difference—or variance—between these costs is posted to an account.
- Default to COGS: If no Unbuild Variance Account is specified on the assembly item’s record, this variance is automatically recorded in the assembly item’s COGS account. For your item "raw bacon", no Unbuild Variance Account is set, causing the variance to hit COGS.
- Costing Method: NetSuite uses historical costing to determine the values of the member items (cooked bacon and bacon grease) during the unbuild. If these components have historical transactions with inaccurate costs (e.g., $0), those values are used, potentially increasing the variance.
- Assembly Costing: The assembly and its components are valued at their location average cost as of the unbuild date. Any resulting variance is posted to the COGS account of the assembly item if no Unbuild Variance Account is defined.
Solution
To prevent the assembly unbuild from impacting COGS, implement the following steps:
- Configure an Unbuild Variance Account
- Go to the item record for "raw bacon" in NetSuite.
- Under the Accounting tab, locate the Unbuild Variance Account field.
- Assign a variance or adjustment account (e.g., "Inventory Variance" or "Unbuild Cost Adjustments") instead of leaving it blank.
- This ensures that any cost variance from the unbuild transaction is directed to the specified account rather than COGS.
- Validate Component Costs
- Review the historical costs of "cooked bacon" and "bacon grease" to ensure they are accurate. If their historical costs are $0 or outdated, consider performing an inventory adjustment prior to the unbuild to align their costs with reality.
- Since these components are likely produced solely from unbuilding raw bacon, their costs should ideally reflect the assembly’s cost allocation.
- Monitor Variances
- After setting the Unbuild Variance Account, periodically check the balance in this account to identify and analyze any significant variances.
- If variances persist or seem incorrect, investigate potential causes (e.g., timing differences in cost updates or inaccuracies in location average costs) and adjust processes as needed.
With an Unbuild Variance Account configured, the unbuild of "raw bacon" into "cooked bacon" and "bacon grease" will no longer affect COGS. Instead, any cost differences will be captured in the variance account, keeping your financial reporting accurate. When the finished goods (using cooked bacon and bacon grease) are sold, their COGS will reflect the appropriate costs of these components as recorded in inventory.
-----
If you find this information useful, let us know by reacting or commenting on this post!