Skip to content

The "Implicit" Specification (Technical Nit-Picks)

This page captures the non-obvious "gotchas" and small but critical technical rules that ensure CostEngine (MfgIQ) behaves like a professional industrial tool.


πŸ”’ Mathematical Integrity

1. Precision & Rounding

  • Intermediate Calculations: All internal math (MHR, Setup cost per piece, etc.) MUST be calculated to 4 decimal places.
  • Summing Logic: Always sum the high-precision values first, then round the final total to 2 decimal places for the customer quote.
  • Scrap Cascading: When calculating cascading scrap (e.g., 1000 β†’ 1053 β†’ 1107 pieces), always round up to the nearest whole integer for material ordering quantities.

2. Zero vs. Null

  • Zero (0): A valid input indicating a process is essentially free or instant.
  • Null (Empty): An error state indicating a missing required field.
  • The "Nit-Pick": A "0" in Cycle Time should trigger a warning ("Did you forget to enter time?"), while a NULL should prevent the quote from being saved.

πŸ“ Units & Conversions

1. Implicit Units

The system makes the following industrial assumptions: * Weight: Always in Kilograms (kg). If a part is 50g, it must be entered as 0.05. * Time: All routing entries are in Hours (hrs) or Minutes (mins) as specified, but internally converted to Hours for MHR multiplication. * Currency: Default to INR (β‚Ή).

2. High-Precision Unit Prices

For small hardware (screws, washers), the per-piece cost might be less than β‚Ή1. The database must support up to 6 decimal places for per-unit raw material costs (e.g., β‚Ή0.004500) to ensure accurate batch totals.


πŸ”’ Data & Concurrency

1. Versioning "Dirty" Flags

  • If a user changes a Material Rate in the Master, open quotes using that material are NOT automatically updated. They are flagged as "Out of Sync".
  • The estimator must explicitly click "Refresh Rates & Re-calculate" to accept the new cost.

2. Multi-User Conflict

  • Rule: "Last Published Version Wins."
  • If two estimators are editing the same draft, the system should use Optimistic Locking: the second person to hit "Save" will receive a notification: "This draft was updated by [User] 2 minutes ago. Please refresh to see changes."

🎨 UI/UX Nit-Picks

1. Negative Values

  • Gross Weight, Cycle Time, and Setup Time can NEVER be negative.
  • Scrap Value is the only field that can implicitly act as a "negative cost" (credit), but it should be entered as a positive number and subtracted by the logic.

2. Keyboard-First Entry

  • In manufacturing offices, speed is key. The "Routing & Operations" table MUST support Tab-to-next-cell and Enter-to-save-row without requiring a mouse.

πŸ›‘οΈ Audit & Traceability

1. The "Whys" are Mandatory

  • If a calculated value is overridden, the "Reason" field is not just a UI elementβ€”it is a database constraint. The record cannot be saved without a string length > 10 characters.

2. Soft Deletes Only

  • Nothing is ever truly deleted. "Delete" in the UI translates to is_active = false in the database, preserving the audit trail for year-end reviews.