{
  "id": "competency:meng-industrial--supply-chain",
  "code": "CDU-ENG-IND-900",
  "level": "MEng",
  "name": "MEng Industrial & Supply Chain",
  "faculty": "Faculty of Engineering and the Built Environment",
  "lineage": [
    {
      "institution": "Conquest Designer University",
      "year": 2026,
      "note": "authored from the brief, the IEA graduate attributes and the ASCM body of knowledge; no prior institution is claimed"
    }
  ],
  "researchProject": "Stock, service and the machine: order quantities, buffers and equipment effectiveness in one plant",
  "description": "The quantitative core of industrial and supply-chain engineering: the economic order quantity and its annual cost, safety stock and the reorder point at a target cycle-service level, overall equipment effectiveness from availability, performance and quality, and the newsvendor quantity for a single selling season.",
  "syllabus": [
    "Lot sizing: ordering cost, holding cost, the EOQ and the cost curve (Harris 1913)",
    "Uncertainty: safety stock, cycle-service level, reorder point under normal demand",
    "Equipment: availability, performance, quality, OEE and the six big losses (Nakajima 1988)",
    "Single-period decisions: underage and overage costs, the critical ratio, the newsvendor quantity"
  ],
  "reference": {
    "EOQ": "√(2·D·S ÷ H)",
    "Safety stock": "z·σ_d·√L (constant lead time); ROP = d·L + SS",
    "OEE": "availability × performance × quality",
    "Newsvendor": "Q* = μ + σ·Φ⁻¹(Cu ÷ (Cu + Co)), Cu = price − cost, Co = cost − salvage"
  },
  "role": "You are a professional industrial engineer advising a plant or supply-chain manager. State the assumptions, show the numbers with units, and say what to set on the system and what to watch.",
  "feeUsd": 1,
  "version": "1.0.0",
  "qualification": {
    "award": "MEng",
    "nqfLevel": 9,
    "qualificationType": "Professional Master's Degree (HEQSF qualification type 9b)",
    "totalCredits": 180,
    "minCreditsAtExitLevel": 120,
    "iscedFields": [
      "071"
    ],
    "standards": [
      "International Engineering Alliance — Graduate Attributes and Professional Competencies (2021), as applied by ECSA",
      "ASCM (APICS) Certified in Planning and Inventory Management (CPIM) body of knowledge",
      "Silver, E. A., Pyke, D. F. & Thomas, D. J. (2017) Inventory and Production Management in Supply Chains (4th ed.)",
      "Nakajima, S. (1988) Introduction to TPM: Total Productive Maintenance — overall equipment effectiveness"
    ],
    "registration": "not registered"
  },
  "modules": [
    {
      "code": "CDU-ENG-IND-900-901",
      "title": "Coursework — the executable units",
      "nqfLevel": 9,
      "credits": 60,
      "prerequisites": [],
      "coRequisites": [],
      "outcomes": [
        "answer every unit of the qualification against its published reference, with the working shown"
      ],
      "assessment": {
        "formative": [
          "worked examples re-run against the published reference",
          "seeded practice scenarios, deterministic per (pan, unit, attempt)"
        ],
        "summative": "every unit passed once through the seeded assessment (the seeded assessment room)",
        "passMark": 50,
        "subminimum": 40,
        "moderation": "internally assessed by the unit itself — its reference implementation is the marker; the working is published so anyone can re-run the mark (D-13.1 — no model marks anything)"
      },
      "unitIds": [
        "eoq",
        "safety_stock_rop",
        "oee",
        "newsvendor"
      ],
      "notionalHours": 600
    },
    {
      "code": "CDU-ENG-IND-900-902",
      "title": "Research report",
      "nqfLevel": 9,
      "credits": 120,
      "prerequisites": [
        "CDU-ENG-IND-900-901"
      ],
      "coRequisites": [],
      "outcomes": [
        "Stock, service and the machine: order quantities, buffers and equipment effectiveness in one plant"
      ],
      "assessment": {
        "formative": [
          "worked examples re-run against the published reference",
          "seeded practice scenarios, deterministic per (pan, unit, attempt)"
        ],
        "summative": "the research report, assessed against the qualification’s published reference block",
        "passMark": 50,
        "subminimum": 40,
        "moderation": "internally assessed by the unit itself — its reference implementation is the marker; the working is published so anyone can re-run the mark (D-13.1 — no model marks anything)"
      },
      "unitIds": [],
      "notionalHours": 1200
    }
  ],
  "units": [
    {
      "id": "eoq",
      "name": "Economic order quantity",
      "answers": "How much should be ordered at a time to minimise ordering plus holding cost, and what does that cost a year?",
      "example": {
        "annualDemand": 12000,
        "orderCost": 150,
        "holdingCostPerUnitYear": 4
      },
      "reference": "Harris, F. W. (1913) How many parts to make at once; ASCM CPIM — the EOQ model",
      "signature": {
        "input": {
          "annualDemand": {
            "type": "number",
            "describe": "Units demanded per year",
            "min": 0.01
          },
          "orderCost": {
            "type": "number",
            "describe": "Cost per order placed",
            "min": 0.01
          },
          "holdingCostPerUnitYear": {
            "type": "number",
            "describe": "Cost to hold one unit for a year",
            "min": 0.0001
          }
        },
        "output": {
          "eoq": {
            "type": "number",
            "describe": "Optimal order quantity"
          },
          "ordersPerYear": {
            "type": "number",
            "describe": "D ÷ Q*"
          },
          "annualCost": {
            "type": "number",
            "describe": "Ordering + holding at Q*"
          }
        }
      }
    },
    {
      "id": "safety_stock_rop",
      "name": "Safety stock and reorder point",
      "answers": "How much buffer stock gives this cycle-service level, and at what stock level should the next order be placed?",
      "example": {
        "avgDailyDemand": 40,
        "sdDailyDemand": 12,
        "leadTimeDays": 9,
        "serviceLevel": 0.95
      },
      "reference": "Silver, Pyke & Thomas (2017) ch. 6: safety stock for a cycle-service level, normal demand, constant lead time; ASCM CPIM",
      "signature": {
        "input": {
          "avgDailyDemand": {
            "type": "number",
            "describe": "Mean demand per day",
            "min": 0
          },
          "sdDailyDemand": {
            "type": "number",
            "describe": "Standard deviation of daily demand",
            "min": 0
          },
          "leadTimeDays": {
            "type": "number",
            "describe": "Replenishment lead time in days",
            "min": 0.01
          },
          "serviceLevel": {
            "type": "number",
            "describe": "Cycle-service level (no stock-out in a cycle), 0.5–0.999",
            "min": 0.5,
            "max": 0.999
          }
        },
        "output": {
          "z": {
            "type": "number",
            "describe": "Safety factor Φ⁻¹(service level)"
          },
          "safetyStock": {
            "type": "number",
            "describe": "z·σ·√L"
          },
          "reorderPoint": {
            "type": "number",
            "describe": "d·L + safety stock"
          }
        }
      }
    },
    {
      "id": "oee",
      "name": "Overall equipment effectiveness",
      "answers": "How much of the planned production time was truly productive, and which factor lost the most?",
      "example": {
        "plannedMinutes": 480,
        "downtimeMinutes": 47,
        "idealCycleMinutes": 0.8,
        "totalCount": 500,
        "goodCount": 485
      },
      "reference": "Nakajima (1988) Introduction to TPM: OEE = availability × performance × quality",
      "signature": {
        "input": {
          "plannedMinutes": {
            "type": "number",
            "describe": "Planned production time",
            "min": 0.01
          },
          "downtimeMinutes": {
            "type": "number",
            "describe": "Stop time within the plan",
            "min": 0
          },
          "idealCycleMinutes": {
            "type": "number",
            "describe": "Ideal time per unit",
            "min": 0.0001
          },
          "totalCount": {
            "type": "number",
            "describe": "Units produced",
            "min": 1
          },
          "goodCount": {
            "type": "number",
            "describe": "Units right first time",
            "min": 0
          }
        },
        "output": {
          "availability": {
            "type": "number",
            "describe": "Run time ÷ planned time"
          },
          "performance": {
            "type": "number",
            "describe": "Ideal cycle × total ÷ run time"
          },
          "quality": {
            "type": "number",
            "describe": "Good ÷ total"
          },
          "oee": {
            "type": "number",
            "describe": "A × P × Q"
          },
          "largestLoss": {
            "type": "string",
            "describe": "availability, performance or quality"
          }
        }
      }
    },
    {
      "id": "newsvendor",
      "name": "Newsvendor order quantity",
      "answers": "For a single season with uncertain demand, how many should be ordered to balance the cost of too few against too many?",
      "example": {
        "unitCost": 6,
        "price": 15,
        "salvageValue": 2,
        "meanDemand": 500,
        "sdDemand": 120
      },
      "reference": "Arrow, Harris & Marschak (1951); Silver, Pyke & Thomas (2017): the newsvendor model with normal demand",
      "signature": {
        "input": {
          "unitCost": {
            "type": "number",
            "describe": "Cost per unit bought",
            "min": 0
          },
          "price": {
            "type": "number",
            "describe": "Selling price per unit",
            "min": 0
          },
          "salvageValue": {
            "type": "number",
            "describe": "Value of a unit left over",
            "min": 0
          },
          "meanDemand": {
            "type": "number",
            "describe": "Mean season demand",
            "min": 0
          },
          "sdDemand": {
            "type": "number",
            "describe": "Standard deviation of season demand",
            "min": 0
          }
        },
        "output": {
          "criticalRatio": {
            "type": "number",
            "describe": "Cu ÷ (Cu + Co)"
          },
          "z": {
            "type": "number",
            "describe": "Φ⁻¹(critical ratio)"
          },
          "orderQuantity": {
            "type": "number",
            "describe": "μ + z·σ"
          }
        }
      }
    }
  ]
}