Skip to main content

SCM workspace (apps/scm)

apps/scm is the Next.js workspace where tenant organizations run Commerce Chain Optimization (CCO): inventory, planning, procurement, fulfillment, demand intelligence, orders, returns, gateway/registry operator flows, and billing. It is the primary hosted surface for the @betterdata/scm-* and @betterdata/dcm-* module families described in SCM packages and DCM packages.
Despite the repo folder name scm, the same application hosts both SCM (supply-side operations) and DCM (demand-side, channel, and customer-order flows). The split is a domain boundary and module ID prefix (scm.* vs dcm.*), not two separate web apps.

SCM vs DCM — what lives where

In one sentence: SCM tightens physical and purchase-to-deliver operations; DCM tightens signal-to-cash loops on the demand side (forecast → order → return). Both participate in the same loop model and the same CCO navigation model (Sense → Decide → Execute → Improve → Govern) in apps/scm.

How this appears in the product UI

  • Service module cards on /welcome (e.g. Inventory & Operations, Commerce Gateway) group capabilities for onboarding; tier-2 rows like Procurement and Fulfillment are SCM operating domains under that card — not separate top-level “SCM vs DCM” tabs.
  • DCM surfaces are woven through the same workspace: for example forecasting, demand signals, orders, and returns routes align with DCM packages and dcm.* loop families.
  • Internal probes enumerate routed modules such as scm.inventory, scm.catalog, scm.procurement, scm.execution, dcm.demand, dcm.orders, and dcm.returns — reflecting one app routing both families.

Usage-based pricing (hosted)

Better Data’s hosted commercial model is usage-based around loop outcomes, not seat count. The canonical overview lives under How pricing works:
  • Loop completion — billable completions are counted when a loop instance reaches an eligible terminal state (e.g. procurement or return closed, order completed or cancelled per policy).
  • Committed volume — plans include a monthly committed loop completion allowance; overage is billed per your contract when you exceed that commitment.
  • Where to see usage — in apps/scm, open Settings → Billing to view commitment, current-period completion counts, utilization, and threshold / overage indicators.
Enterprise customers negotiate custom commitments, annual terms, and volume tiers; contact hello@betterdata.co for packaging aligned to your modules and regions.
Hosted Loop Engine describes outcome-based positioning for the loop runtime; apps/scm billing surfaces the same completion-based lens in product settings. For list-price style tiers on the public site, see your commercial docs and How pricing works.

Monorepo location