Case Study: NetSuite Supply Chain for Pharmaceuticals Manufacturer

Context and Background

When this pharmaceutical manufacturer came to us, they were 18 months into their NetSuite go-live and running a supply chain that looked organized on the surface. The Netsuite data was largely stabilized. The modules were live. Purchase orders were moving through NetSuite. Work orders were being created.

But underneath that, planning was still happening in spreadsheets. A single Supply Planner was manually building a master production schedule each week, hand-exploding multi-level bills of materials for over 140 SKUs, and trying to reconcile distributor EDI forecasts with the sales team’s manually entered numbers. None of it was connected to procurement. None of it was connected to production scheduling in any automated way.

 

The consequences were predictable. API lead times of 10 to 18 weeks from international suppliers meant the window to react to a missed forecast was essentially gone before the problem was visible. The company was holding an estimated $4.2M in excess raw material inventory as a buffer against planning inaccuracies. And every Q4, when OTC cold and flu volumes spiked, they still ran short on high-velocity SKUs.

Complicating matters: two manufacturing sites operating differently. Site A in New Jersey handled primary solid-dose production. Site B in Pennsylvania handled fill-finish for injectable formulations. Both locations fed three inventory positions (NJ warehouse, PA warehouse, Ohio 3PL). Site B was creating work orders in NetSuite but scheduling entirely outside it.

Scope Delivered

After an initial discovery engagement, the client moved forward with a full MRP and Demand Planning activation across four workstreams:

The team knew they needed MRP and Demand Planning. What they wanted first was to understand what they were getting into before committing to the modules or to a partner.

Demand Planning Setup: Forecast , Seasonality, and Consolidation

The client’s demand signal problem was that three separate sources (customer POs, EDI distributor forecasts via TrueCommerce, and manually entered sales team projections) lived in three different places and were never formally reconciled before planning ran.

We configured NetSuite’s Demand Planning module to pull EDI-sourced distributor forecasts as the primary demand signal for OTC SKUs, with sales team forecasts loaded via a structured import template as a secondary layer. For Specialty Generics, where volume is lower and hospital network ordering patterns are less predictable, we set the planning basis to historical consumption with a manual override workflow for the commercial team.

Seasonality was configured explicitly. Q4 uplift factors were built into the demand plan for the 18 OTC cold and flu SKUs that drove the recurring stockout pattern drawing on three years of historical sales data to set the adjustment multipliers. This alone represented the most consequential configuration decision of the engagement: the difference between a system that plans for average demand and one that plans for the demand that actually shows up.

NetSuite Demand Planning items were configured with seasonal adjustment periods aligned to the client’s fiscal calendar. A custom saved search was built to surface forecast vs. actual variance by SKU on a rolling 13-week basis, giving the Supply Planner a continuous signal for when seasonal factors needed manual review.

MRP Configuration: BOM Explosion, Lead Times, and Reorder Logic

The core MRP configuration work centered on three areas: making the bill of materials structure reliable enough to plan from, encoding supplier lead times accurately, and setting reorder logic that reflected real supply chain constraints rather than system defaults.

BOM depth for some SKUs reached four levels, finished good to sub-assembly to API to packaging component. Each level had its own lead time, minimum order quantity, and lot size constraint. Before MRP would produce usable recommendations, all of that had to be validated and corrected in NetSuite. We conducted a systematic BOM audit across the full 140-SKU portfolio, identifying and resolving 34 items with incorrect or missing lead time entries, 11 assembly items with stale component quantities, and 6 items where the BOM structure didn’t match current manufacturing reality.

Supplier lead times were configured at the item-supplier level rather than at the item level,. a distinction that matters when a single API is sourced from multiple international vendors with different lead time profiles. International API suppliers were mapped at 10 to 18 weeks depending on vendor; domestic packaging suppliers at 2 to 4 weeks. Safety stock levels were calculated based on demand variability and lead time variability for each item class, replacing the blanket buffer inventory approach that had contributed to the $4.2M excess stock position.

Article content

MRP was configured to run on a weekly cadence with a planning horizon of 26 weeks (extended to 52 weeks for API items given international lead times). Planned purchase orders and planned work orders generated by MRP were routed through an approval workflow before firming, giving the Supply Planner review control without requiring manual recreation of every recommendation.

Multi-Site Supply Plan Logic: NJ, SF, and Ohio 3PL

This was the workstream where the structural complexity of the client’s environment created the most configuration work. Three inventory locations, two manufacturing sites operating on different production schedules, and a 3PL in Ohio that fulfilled orders independently all of it had to be represented in the supply plan in a way that generated actionable recommendations rather than noise.

Article content

We configured location-level planning for each of the three sites. NJ and SF were set up as supply sources; Ohio 3PL was configured as a demand location that replenishes from NJ finished goods. Inter-site transfer order logic was established so that MRP could automatically recommend transfers when Ohio inventory fell below the defined coverage threshold, rather than requiring manual identification and order creation each cycle.

Site B (SF) presented a specific challenge: work orders were being created in NetSuite but production scheduling was managed outside the system entirely. As part of this workstream, we configured NetSuite’s production scheduling parameters for Site B, manufacturing lead times, resource capacity constraints, and batch size rules ,so that MRP recommendations for injectable SKUs would be grounded in realistic production windows rather than theoretical minimums.

Inter-site transfer order automation was implemented using NetSuite’s supply chain management settings combined with a custom SuiteFlow workflow that triggered transfer order creation when projected inventory at the Ohio 3PL dropped below a configurable number of days of forward demand. The coverage threshold is maintained as a custom field on the item record, allowing the Supply Planner to adjust it per SKU without requiring a system configuration change.

ATP Visibility: Available-to-Promise for the Commercial Team

Before this engagement, the commercial team had no reliable way to tell a customer when product would actually be available. Sales reps were either committing to delivery dates based on finished goods on hand (ignoring open orders) or calling the Supply Planner directly to ask which created a bottleneck that the Supply Planner absorbed on top of their planning workload.

We built an ATP dashboard in NetSuite that gave the commercial team direct, real-time visibility into available quantity by SKU and location actoring in open sales orders, planned receipts from MRP, and inventory holds. Lot-level FEFO logic was preserved in the ATP calculation so that the visibility the team was getting reflected what would actually ship, not just what was physically on the shelf.

A custom field set was added to the item record to surface committed inventory separately from available inventory a distinction that mattered particularly for hospital network accounts where advance commitments are made against future production runs

Article content
Cannot show actual Client Dashboard

ATP was surfaced via a saved search-based dashboard with role-based access configured for the commercial team. The underlying calculation joined open sales order demand, planned work order completions, planned purchase order receipts, and current on-hand by location. A SuiteScript 2.0 scheduled script refreshes the ATP figures nightly and flags any SKU where projected ATP drops below a configurable threshold, generating an internal notification to the Supply Planner.


Outcomes

The first full planning cycle to run entirely through NetSuite MRP processed demand signals across all 140 SKUs, exploded multi-level BOMs automatically, and generated a prioritized list of planned purchase orders and work orders, a process that had previously taken the Supply Planner the better part of two days to complete manually. That cycle completed in under three hours.

Going into Q4, the demand plan for the 18 high-velocity OTC SKUs included seasonal adjustment factors based on historical uplift. API purchase orders were placed 14 to 18 weeks in advance, aligned to the adjusted forecast rather than to trailing consumption. It was the first Q4 in three years that the company did not experience a stockout on any cold and flu SKU.

The safety stock recalibration that came out of the MRP configuration work identified approximately $4.2M in excess raw material inventory being held across API categories inventory that had accumulated as a buffer against planning inaccuracies. With demand-driven reorder logic in place, the client began a systematic reduction of that buffer position in the months following go-live.

On the commercial side, the ATP dashboard eliminated the Supply Planner bottleneck for delivery date questions. The team reported handling ATP inquiries directly for the first time, and the volume of internal planning interruptions dropped measurably in the quarter following launch.

Lead time visibility improved across the supplier base, most significantly for international API vendors. With supplier-level lead times encoded in NetSuite and a 52-week planning horizon active for long-lead items, procurement had forward visibility into API requirements that had never existed in the spreadsheet environment.

If any part of this looks familiar, we’d welcome a conversation.

We are a financial systems integration firm specializing in NetSuite ERP for healthcare, life sciences, and high-growth businesses.

📩 [email protected] ·  🌐 saloraerp.com ·  📞 +1·720·254·1320

This engagement started as a readiness conversation. The client wanted to understand what they were getting into before committing to MRP and Demand Planning a reasonable position for any organization that’s been through one ERP implementation and knows how quickly scope can outrun preparation.

What made the project work wasn’t just the configuration. It was the sequencing: BOM audit before MRP runs, demand signal consolidation before seasonality modeling, site-level planning logic before ATP visibility. Each workstream built on the one before it. That sequencing is something we carry into every supply chain engagement pharmaceutical or otherwise.

Companies operating across multiple sites, multiple supplier tiers, and multiple demand channels tend to find that NetSuite’s supply planning capabilities are more powerful than they expected — and more dependent on clean foundational data than they planned for. Both things are true at once. The work is in bridging them.

Post a Comment