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 = falsein the database, preserving the audit trail for year-end reviews.