Performance & Help

Troubleshooting Niyu Smart Stock

Diagnose forecast, planning-rule, quantity, transfer, dashboard, run, and upgrade issues without losing planning data.

Start with the latest Forecast Run, then trace the affected Action Line. Most apparent forecast problems come from stale runs, scope selection, incoming supply, ordering cadence, an explicit planner override, or a setup blocker.

No Action Lines after a completed sync

  1. Open Inventory > Niyu AI > Forecast Operations > Runs and confirm the latest run is Done, not only queued or submitted.
  2. Confirm the run covered the expected company and warehouses.
  3. Check product eligibility: active stockable product, included warehouse, and no matching exclusion.
  4. Review the run message and line counts. A successful connection does not guarantee that eligible products existed in the selected scope.
  5. Run the sync again only after correcting the source data or scope. Avoid submitting duplicate runs while one is still active.

Planning Overview shows zero or stale values

  • Open Latest Run and confirm that its results were applied to Action Lines.
  • Check the active company and allowed companies for the user.
  • Open Action Lines without dashboard filters to confirm records exist in the same company.
  • Refresh the browser only after server-side records are confirmed. Asset refreshes cannot correct missing planning data.

A run remains queued or running

  • Wait for the polling cycle and check the Forecast Run status before starting another run.
  • Confirm outbound connectivity and the saved API key in Niyu Smart Stock settings.
  • Review the run message for a service, quota, authorization, or processing error.
  • Connection errors and quota limits are different conditions. Correct the reported cause instead of repeatedly retrying.

Recommendation is lower than a manual calculation

  1. Confirm the calculation is comparing the same dates. Continuous review and periodic review protect different time windows.
  2. Open the Action Line and review Current Qty, incoming supply, existing transfers, inherited demand, forecast horizon, and the recommendation explanation.
  3. Check whether a Planning Rule linked the intended Ordering Profile. Creating a profile alone does not apply it.
  4. For recurring purchasing, confirm the review interval, anchor date, preparation window, lead-time mode, and safety settings.
  5. Check Planner Purchase Quantity. An explicit value, including zero, is preserved across later forecast runs.
  6. Review stock and purchase UoM conversions, MOQ, Order Step, and Case Pack before comparing the final executable quantity.

For a 45-day lead time, 30-day review interval, and 30-day safety period, the planning window can extend to 105 days. The displayed recommendation can still differ from average monthly demand multiplied by 3.5 because dated demand, available stock, eligible incoming supply, transfers, rounding, and policy constraints are applied to the same window.

Ordering Profile does not affect a product

  • Open the matching Planning Rule and confirm the Ordering Profile field is set.
  • Check rule company, warehouse, scope, active dates, priority, and product/vendor/category criteria.
  • Use the Action Line rule summary to see which rule won. More specific matching rules take precedence.
  • If the line says no Planning Rule matched, create or broaden an appropriate rule rather than changing the profile.

Forecast or order quantity contains decimals

  • Forecast demand may remain decimal because it represents expected demand.
  • Executable purchase and transfer quantities follow the product UoM rounding and ordering constraints.
  • For whole-unit products, set the stock UoM rounding so partial units are not executable.
  • Check the purchase UoM conversion when a vendor sells cartons, cases, or other packs.

A product has stockout days but no adjustment

  • Check Stockout Handling in Inventory > Configuration > Settings > Niyu Smart Stock and any Planning Rule override.
  • Flag only shows the quality risk without adding estimated demand.
  • Estimate constrained demand can add conservative demand only to confirmed zero-sales stockout days.
  • Ignore stock availability intentionally leaves stock history out of the adjustment decision.
  • Availability Unknown means dependable warehouse history was not available for that result.

Recorded sales are never removed. Made-to-order, project, service, intentionally seasonal, intermittent, and backorder-driven products may need a rule override or exclusion because zero-stock days do not always mean lost demand.

A transfer is missing or blocked

  • Confirm Internal Rebalancing is enabled and the rule strategy allows transfer-in for the receiver and transfer-out for the donor.
  • Check the configured scope: same company, same country, or a matching Transfer Network.
  • Confirm the donor and receiver roles, route, locations, lead time, and network priority.
  • Review the explanation for donor protection, existing outbound commitments, timing, duplicate allocation, or UoM blockers.
  • A donor can have stock and still be ineligible when its own demand, reservations, safety requirement, incoming supply, or ordering cycle needs that stock.
  • Before creation, Niyu revalidates live stock, policy, route, UoM, and duplicate-document conditions. Resolve the new blocker and review again.

Incoming purchase supply looks wrong

  • Confirm the purchase order line UoM and its conversion to the product stock UoM.
  • Check the planned receipt date. Supply outside the protected window should not cover an earlier shortage.
  • Exclude cancelled lines and verify that draft RFQs are treated according to the configured planning policy.
  • Review partial receipts and remaining open quantity rather than the original ordered quantity alone.

RFQ quantity differs from the system suggestion

  • Planner Purchase Quantity takes precedence when it has been explicitly set, including zero.
  • Order Step, Case Pack, MOQ, supplier constraints, and purchase-UoM conversion can change the executable RFQ quantity.
  • Use Reset to System Suggestion when the manual decision should no longer apply.
  • Use the explicit update action for a linked draft RFQ. Confirmed purchase orders are never silently changed.

Demand History differs from current Odoo records

  • Demand History is shown as of the selected forecast run so it reconciles with that recommendation.
  • Orders, returns, or stock changes entered after the run do not rewrite the snapshot.
  • Select another run or create a new forecast when current data is required.
  • Opening Demand History does not consume a forecast refresh.

Performance tabs show Collecting Baseline

  • This is expected immediately after enabling Performance Analytics or installing the feature.
  • Forecast horizons, promise dates, receipts, deliveries, valuation, and outcome periods need time to mature.
  • Check the data-quality label and drill-down before treating an unavailable value as zero.

Module upgrade fails but a reinstall works

  • Do not use uninstall and reinstall as the normal upgrade method because uninstalling can remove module-owned records.
  • Restart Odoo before upgrading when Python models or methods changed, so the registry loads the new code.
  • Confirm the complete addon package is present and its manifest loads Python, security, data, views, and assets in the intended order.
  • Use the full Odoo error and the first named file, view, model, or action to identify the incompatible record.
  • After a successful upgrade, refresh web assets when the change included JavaScript, QWeb, or styles.

Information to include in a support request

  • Odoo version, Niyu Smart Stock version, company, warehouse, and affected product SKU.
  • Latest Forecast Run name, date, status, and message.
  • Action Line screenshots showing Coverage, Supply & Replenishment, How Calculated, Purchase Schedule, Transfer Plan, and Linked Documents as relevant.
  • The matching Planning Rule and Ordering Profile.
  • Expected result, actual result, and the calculation dates used.
  • The complete server error or browser error, not only the final message.