@abstractmethod<EOL><INDENT>def addInstance(self, groundTruth, prediction, record = None, result = None):<DEDENT>
Add one instance consisting of ground truth and a prediction.

:param groundTruth:
  The actual measured value at the current timestep

:param prediction:
  The value predicted by the network at the current timestep

:param record: the raw input record as fed to 
       :meth:`~nupic.frameworks.opf.model.Model.run` by the user. The 
       typical usage is to feed a record to that method and get a 
       :class:`~nupic.frameworks.opf.opf_utils.ModelResult`. Then you pass 
       :class:`~nupic.frameworks.opf.opf_utils.ModelResult`.rawInput into 
       this function as the record parameter.

:param result: (:class:`~nupic.frameworks.opf.opf_utils.ModelResult`) the
       result of running a row of data through an OPF model

:returns:
    The average error as computed over the metric's window size