This article is relevant if you need clear, immediate answers to customer and planning questions, such as “How many of this item can I sell right now?” and you’re working with complex NetSuite items that comprise subassemblies, kits, or nested components.
TL;DR Summary
Standard NetSuite inventory data is incomplete for kits, groups, and assemblies because it doesn’t reflect the number of sellable items that can be built from current components. Recursive logic delivers precise, real-time “available to sell” numbers—even for deeply nested structures—displayed wherever your teams need them: item records, transaction lines, or any other view.
Backround
NetSuite provides comprehensive support for various item types, including assemblies, kits, groups, and inventory parts. These structures enable businesses to define and sell complex products composed of multiple components. However, standard NetSuite reports and searches fail to show how many finished goods can be produced or promised based on the available inventory of component items.
This challenge becomes critical when:
- Finished goods depend on lower-level components that are themselves assemblies or kits.
- Availability depends on the stock of components spread across various locations.
- Decisions regarding orders, transfers, and production must be made in real-time.
We’ve written previously about inspecting NetSuite assemblies:
- 2023: Determine Potential Buildable NetSuite Assemblies
- 2024: Learn How To Determine the Potential Inventory Built into NetSuite Assemblies
In this article, we take it a step further to show how to equip teams with real-time answers to “what can I sell now?” for any complex item, without leaving the screen they’re working on.
NetSuite Inventory Gaps for Kits, Groups, and Assemblies
Standard inventory views in NetSuite are well-suited for simple inventory items, but complex items require more detailed information beyond a simple count of what’s on hand. What matters is how many finished products you can actually build—today—from what’s in inventory across all levels.
Why It’s Not a Simple Search
The challenge lies in the way complex items depend on nested components. NetSuite’s native searches and SuiteQL are not designed to:
- Navigate multiple levels of member relationships.
- Identify bottlenecks caused by the least available required component.
- Aggregate component availability across dynamic locations.
- Deliver real-time, contextual answers directly to decision-makers.
A “kit” with three components might seem available, but if even one of those components is unavailable, the sellable quantity is zero. Worse, if one of those components is itself a kit or subassembly, the logic must recurse, checking multiple layers of item relationships and location-specific inventory levels.
The Prolecto Labs Solution: Recursive Availability, Delivered Where You Need It
To solve this, we provide clients with a recursive calculation routine (built right into our Utilities Library) that:
- Traverses the full item tree, no matter how deep.
- Evaluates inventory levels for every base component.
- Identifies the true buildable quantity using the most constrained part.
- Summarizes results by location for precise fulfillment and planning.
Critically, this isn’t a standalone report or one-time calculation. The results can be placed anywhere the team works:
- Item record views for product managers and buyers.
- Transaction line details for order managers.
- Reports for analysts and inventory planners.
- Custom dashboards for executives or demand forecasters.
By injecting the calculation wherever it’s needed, inline and in real-time, it empowers users to take action without waiting or guessing.
The Recursive Implementation Details
The heart of this solution lies in a recursive engine supplied in a code library that models inventory availability based on actual buildability. Here’s how it works:
- Recursive Component Evaluation: The core logic walks each item’s member structure recursively. For a non-base item (assembly, kit, group), the engine:
- Retrieves member items and required quantities.
- Calls itself to determine each member’s available quantity.
- Calculates how many finished goods can be built by taking the minimum of all component availabilities.
- Bottleneck-Aware Calculation: Availability is not the sum of all parts; it’s determined by the limiting component. The logic identifies and respects this constraint.
- Dynamic Location Discovery: Instead of assuming fixed locations, the engine dynamically determines where stock is available:
- Maps all locations where any base-level member has inventory.
- Recursively rolls up buildable quantities by location.
- Flexible Output Placement: The result of the calculation, a structured summary of “available to sell” quantities by location, can be surfaced in:
NetSuite Leadership Driving Solutions with Rich License Free Tools
It takes more than code to solve real NetSuite challenges. It takes a deep understanding of both business needs and platform internals. Our recursive inventory calculation is just one example of the type of solution we bring to every engagement.
We offer this algorithm license-free to our clients through the Prolecto Labs initiative, ensuring that every implementation benefits from the tools we’ve honed over years of hands-on experience. Our clients appreciate that we don’t charge extra for these tools; they’re part of our standard service.
Whether you’re supporting order managers who need to answer customers confidently or analysts planning production and transfers, we give your team the clarity and immediacy they need, embedded right where they work.
If you found this article relevant, feel free to sign up for notifications to new articles as I post them. If you’re ready to surface true availability for your complex NetSuite items, let’s have a conversation.



Can you post a YouTube video of this functionality? I think the YouTube video demonstrations are super helpful.
Thank you Roy. We will have to craft a video for demonstration.
Marty
Great stuff as always! This is a very difficult solution, and one I’ve faced multiple times with clients. Does your solution allow for transmission of the available quantities via integration to external websites (or even SuiteCommerce Advanced sites). It’s been a challenge to keep the data “fresh” due to the complexity of the recursive look ups and often very large product catalogs. This has been the common request I get; to display on the website(s) the available quantity or limit the visibility of a given item (ex. Kit) based on the limiting factor inventory available.
Hello Cassius,
Yes, we wrote it a central library that can then be used to look at single items or an array of items. Naturally, we optimize for the inquiry and the context for which the data is required.
Marty