Module: S&OP / Demand Planning v1.4.0
Sales & Operations Planning and demand forecasting for BIXCRM
Screen-by-screen guides (each tab explained)
Click a menu item below for step-by-step instructions on that S&OP / Demand Planning screen:
- Planning Dashboard
- Planning Cycles
- Demand Forecasts
- Statistical Forecast
- Historical Actuals
- Forecast Item Groups
- Forecast Accuracy
- Supply Plans
- Inventory Gap
- Safety Stock
- Executive Dashboard
- S&OP Meetings
- Consensus Forecasts
- Scenarios
- Exports
- Distributor Demand
- Revenue vs Budget
- Webhooks
- Settings
How to use in BIXCRM (daily operations)
- Sign in to the admin area with a role that includes S&OP / Demand Planning permissions.
- Open Demand Planning (sidebar) or search for S&OP / Demand Planning in the admin menu.
- Start on the Dashboard (if available) to see open tasks, pending approvals, and KPIs.
- Review Settings after upgrades — new options may need defaults for your company.
- Create or import master data first; most modules block transactions until masters exist.
- Run the main business flow (create → submit → approve → post/complete) using the screens listed in Admin menu below.
- Use Reports / Analytics screens to reconcile stock, finance, compliance, or SLA metrics.
- For integrations (API, EDI, gateways, tax), confirm credentials in Settings and monitor logs or webhook delivery screens.
- Train staff with role-based access — give approvers approve permissions only, operators create/edit on their area.
- If something fails overnight, check BIXCRM cron ran and open the module log / failed queue screen if present.
Admin menu — where to work
Open the S&OP / Demand Planning section in the admin sidebar. Screens your staff may use (depending on role):
- Consensus Forecasts
- Demand Forecasts
- Demand Planning
- Distributor Demand
- Executive Dashboard
- Exports
- Forecast Accuracy
- Forecast Item Groups
- Historical Actuals
- Inventory Gap
- Planning Cycles
- Planning Dashboard
- Reports
- Revenue vs Budget
- S&OP Meetings
- S&OP Process
- Safety Stock
- Scenarios
- Settings
- Statistical Forecast
- Supply Plans
- Webhooks
Detailed guide — features, workflows, API & FAQ
Current Version: 1.4.0 (Phase 5)
Phase 1 Features
| Feature | Status |
|---|---|
| --------- | -------- |
| Planning cycles (weekly / monthly / quarterly) | Done |
| Auto-generated planning periods | Done |
| Item-level demand forecasts | Done |
| Draft → Submit → Approve workflow | Done |
| Planning dashboard with KPIs | Done |
Phase 2 Features
| Feature | Status |
|---|---|
| --------- | -------- |
| Historical actuals sync (invoices, estimates, sales orders) | Done |
| Statistical forecasting (moving avg, exponential, seasonal) | Done |
| Baseline vs manual override on forecast lines | Done |
| Forecast item groups + bulk generation | Done |
| MAPE / bias accuracy reporting | Done |
Phase 3 Features
| Feature | Status |
|---|---|
| --------- | -------- |
| Supply plans (production / purchase) with approval | Done |
| Inventory projection (on-hand + inbound − forecast) | Done |
| Inventory / Purchase / Manufacturing inbound hooks | Done |
| Safety stock min / max / reorder rules | Done |
| Gap analysis + draft supply plan generation | Done |
Phase 4 Features
| Feature | Status |
|---|---|
| --------- | -------- |
| Pre-S&OP and executive meetings + attendees | Done |
| Meeting action items with owners and due dates | Done |
| Sales / finance / ops consensus forecasts | Done |
| Best / base / worst scenario planning | Done |
| Executive dashboard (revenue, margin, capacity) | Done |
Phase 5 Features (New)
| Feature | Status |
|---|---|
| --------- | -------- |
| REST API for cycles, forecasts, supply plans, gaps, consensus | Done |
Webhooks (forecast.approved, cycle.closed, plus S&OP events) | Done |
| CSV / S&OP pack exports | Done |
| Distributor sales-order demand signal vs forecast | Done |
| Accounting Pro revenue forecast vs income budget | Done |
Quick Start (Phase 5)
- Settings → API & Integrations → enable the API and generate a key
- Create webhooks for
forecast.approved/cycle.closed(HMAC headerX-DP-Signature) - Exports → pick a cycle and download forecast / supply / consensus CSV or the S&OP pack
- Distributor Demand → compare open + delivered sales orders with the forecast
- Revenue vs Budget → compare forecast/consensus revenue with Accounting Pro income budgets
- Close a cycle from the cycle form when the S&OP cadence is finished
REST API
Base path: /demand_planning/demand_planning_api
Auth: X-DP-API-Key, Authorization: Bearer <key>, or ?api_key=
| Method | Path | Notes |
|---|---|---|
| -------- | ------ | -------- |
| GET | / | Catalog (no auth) |
| GET | /cycles, /cycle/{id} | Planning cycles + periods |
| GET | /forecasts, /forecast/{id} | Optional cycle_id, status, item_id |
| POST | /forecasts | Create draft forecast + lines |
| GET | /supply_plans, /supply_plan/{id} | Phase 3 |
| POST | /supply_plans | Create draft supply plan |
| GET | /gaps?cycle_id= | Inventory gap snapshot |
| GET | /consensus, /consensus/{id} | Phase 4 |
Menu Structure
| Menu Item | Purpose |
|---|---|
| ----------- | --------- |
| Planning Dashboard | KPIs and quick actions |
| Planning Cycles | Horizon and period setup |
| Demand Forecasts | Manual and generated forecasts |
| Statistical Forecast | Auto-generate from history |
| Historical Actuals | Sync and view sales actuals |
| Forecast Item Groups | Product family groupings |
| Forecast Accuracy | MAPE / bias reports |
| Supply Plans | Planned production / purchase |
| Inventory Gap | Projection and replenishment suggestions |
| Safety Stock | Min / max / reorder thresholds |
| Executive Dashboard | S&OP financial and capacity view |
| S&OP Meetings | Cadence meetings and actions |
| Consensus Forecasts | Sales / finance / ops number |
| Scenarios | Best / base / worst cases |
| Exports | Forecast, supply, consensus, S&OP pack |
| Distributor Demand | Sales-order signal vs forecast |
| Revenue vs Budget | Forecast/consensus vs income budget |
| Webhooks | Outbound event endpoints |
| Settings | Module configuration |
Database Tables (Phase 1–5)
| Table | Purpose |
|---|---|
| ------- | --------- |
dp_planning_cycles | Planning horizon master |
dp_planning_periods | Time buckets within a cycle |
dp_demand_forecasts | Forecast header (+ method, MAPE, bias) |
dp_demand_forecast_lines | Period qty (+ baseline_qty) |
dp_historical_actuals | Synced sales history by item/period |
dp_item_groups | Forecast product families |
dp_item_group_items | Items in each group |
dp_forecast_accuracy | Per-period accuracy metrics |
dp_supply_plans | Planned production / purchase headers |
dp_supply_plan_lines | Period planned qty |
dp_safety_stock | Min / max / reorder by item / plant |
dp_inventory_gaps | Projection snapshot |
dp_sop_meetings | Pre-S&OP / executive meetings |
dp_sop_attendees | Meeting attendees and roles |
dp_sop_actions | Meeting decisions with owners |
dp_consensus_forecasts | Consensus header |
dp_consensus_forecast_lines | Sales / finance / ops / consensus qty |
dp_scenarios | Scenario factors |
dp_scenario_results | Run snapshot (revenue, margin, coverage) |
dp_webhooks | Outbound webhook endpoints |
dp_webhook_deliveries | Delivery log |
dp_logs | Audit trail |
Integrations
| Module | Integration |
|---|---|
| -------- | ------------- |
| BIXCRM Items / Invoices / Estimates | Historical actuals + item rate for revenue |
| Distributors / Wholesalers | Sales order actuals + live demand signal |
| Multi-Plant Management | Plant scope on forecasts, safety stock, consensus |
| Inventory Management | On-hand qty, reorder import, average cost for margin |
| Purchase Management | Open PO remaining qty as inbound |
| Manufacturing | Open work orders, BOM cost, workstation capacity |
| Accounting Pro | Income-account budget vs forecast/consensus revenue |
Hooks: dp_on_hand_qty, dp_inbound_qty, dp_after_gap_calculated, dp_after_forecast_approved, dp_after_cycle_closed, dp_after_supply_plan_approved, dp_after_meeting_completed, dp_after_consensus_approved, dp_after_scenario_run, dp_item_unit_price, dp_item_unit_cost, dp_capacity_utilization.
Webhooks: forecast.approved, cycle.closed, supply_plan.approved, consensus.approved, meeting.completed. Signed with X-DP-Signature: sha256=<hmac>.
Roadmap
See [docs/ROADMAP.md](docs/ROADMAP.md) — Phase 5 complete.
DB Version
Check option dp_db_version — expected 104 after Phase 5.
Features
Sales & Operations Planning and demand forecasting for BIXCRM
See README.md in the module folder for the complete feature list.
Permissions
Granular staff capabilities are registered on activation. Assign them under Setup → Staff → Roles for the S&OP / Demand Planning capability group.
Typical capabilities include view, create, edit, delete, plus module-specific actions (approve, export, settings, API access).
Cron Jobs
Background tasks (if enabled) run through BIXCRM's main cron. Example crontab (every 5 minutes):
* * * * * php /path/to/bixcrm/index.php cron/index > /dev/null 2>&1
Check module settings for scheduled jobs (alerts, sync, reports, retention).
After activation — configuration checklist
- Go to Setup → Modules and activate S&OP / Demand Planning.
- If prompted, click Upgrade Database or reload admin — migrations run automatically.
- Assign permissions under Setup → Staff → Roles.
- Open the module menu and configure settings.
- BIXCRM 3.0+
- PHP 7.4+ (8.1+ recommended)
- MySQL 5.7+ / MariaDB 10.3+ (InnoDB)
- PHP extensions: mysqli, json, mbstring, curl, fileinfo
One-time setup (first time only)
- Setup → Modules → activate S&OP / Demand Planning.
- Setup → Staff → Roles → assign S&OP / Demand Planning permissions (view, create, edit, delete, approve, export, settings as needed).
- Open S&OP / Demand Planning → Settings and complete company defaults, prefixes, integrations, and notification options.
- Create master data (warehouses, products, templates, accounts, routes, etc.) before processing live transactions.
- Enable BIXCRM cron (
php /path/to/bixcrm/index.php cron/index) for sync, retries, alerts, and scheduled jobs. - Optionally enable REST API / webhooks in module settings if you integrate external systems.
BIXCRM Knowledge Base — usage guide generated from module README and documentation.