A system comprising: an implantable lead (110, 114) having electrodes (122, 124, 126, 132-138) configured to be located proximate to a heart, the electrodes (122, 124, 126, 132-138) defining a sensing vector through a region of interest in the heart; memory (152, 504, 506, 508) to store program instructions; and a processor (164, 502) that, when executing the program instructions, is configured to: collect an intra-cardiac electrogram signal (400, 450) along the sensing vector, the EGM signal (400, 450) associated with a cardiac cycle; determine a global slope minimum experienced by the EGM signal (400, 450) over the cardiac cycle; and calculate a QRS duration based on a QRS start time (408, 467) and a QRS end time, characterized by: determine a global amplitude minimum experienced by the EGM signal (400, 450) over the cardiac cycle; define the QRS start time (408, 467), within the EGM signal (400, 450), based on the global slope minimum; determine a local amplitude maximum for a segment of the EGM signal (400, 450) within a search window of the global amplitude minimum, the segment constituting a part of the cardiac cycle; and define the QRS end time, within the EGM signal (400, 450), based on the local amplitude maximum. an implantable lead (110, 114) having electrodes (122, 124, 126, 132-138) configured to be located proximate to a heart, the electrodes (122, 124, 126, 132-138) defining a sensing vector through a region of interest in the heart; memory (152, 504, 506, 508) to store program instructions; and a processor (164, 502) that, when executing the program instructions, is configured to: collect an intra-cardiac electrogram signal (400, 450) along the sensing vector, the EGM signal (400, 450) associated with a cardiac cycle; determine a global slope minimum experienced by the EGM signal (400, 450) over the cardiac cycle; and calculate a QRS duration based on a QRS start time (408, 467) and a QRS end time, characterized by: determine a global amplitude minimum experienced by the EGM signal (400, 450) over the cardiac cycle; define the QRS start time (408, 467), within the EGM signal (400, 450), based on the global slope minimum; determine a local amplitude maximum for a segment of the EGM signal (400, 450) within a search window of the global amplitude minimum, the segment constituting a part of the cardiac cycle; and define the QRS end time, within the EGM signal (400, 450), based on the local amplitude maximum. collect an intra-cardiac electrogram signal (400, 450) along the sensing vector, the EGM signal (400, 450) associated with a cardiac cycle; determine a global slope minimum experienced by the EGM signal (400, 450) over the cardiac cycle; and calculate a QRS duration based on a QRS start time (408, 467) and a QRS end time, characterized by: determine a global amplitude minimum experienced by the EGM signal (400, 450) over the cardiac cycle; define the QRS start time (408, 467), within the EGM signal (400, 450), based on the global slope minimum; determine a local amplitude maximum for a segment of the EGM signal (400, 450) within a search window of the global amplitude minimum, the segment constituting a part of the cardiac cycle; and define the QRS end time, within the EGM signal (400, 450), based on the local amplitude maximum. determine a global amplitude minimum experienced by the EGM signal (400, 450) over the cardiac cycle; define the QRS start time (408, 467), within the EGM signal (400, 450), based on the global slope minimum; determine a local amplitude maximum for a segment of the EGM signal (400, 450) within a search window of the global amplitude minimum, the segment constituting a part of the cardiac cycle; and define the QRS end time, within the EGM signal (400, 450), based on the local amplitude maximum.