       if user.punches and
          user.punches.length > 0 and
          user.punches.slice(-1)[0].mode is 'in'
-        return 'You haven\'t punched out yet.'
+        last = user.punches.slice(-1)[0]
+        time = last.times[0].tz(user.timetable.timezone.name)
+        return "You haven't punched out yet. Your last in-punch was at #{time.format('h:mma')} on #{time.format('dddd, MMMM Do')}."
       else if @times
         yesterday = moment().subtract(1, 'days').startOf('day')
         for time in @times

    datetimes = []
    for i in [0..1]
      if row[headers[MODES[i]]]
        newDate = moment(row[headers[MODES[i]]], 'MM/DD/YYYY hh:mm:ss a')
        if not newDate or
           not newDate.isValid() or
           newDate.format('MM/DD/YYYY') isnt row[headers.today]
          newDate = moment(row[headers.today] + ' ' +
                              row[headers[MODES[i]]], 'MM/DD/YYYY hh:mm:ss a')
        datetimes.push newDate.tz(user.timetable.timezone.name)

      if user.punches and
         user.punches.length > 0 and
         user.punches.slice(-1)[0].mode is 'out'
        last = user.punches.slice(-1)[0]
        time = last.times[0].tz(user.timetable.timezone.name)
        return "You cannot punch out before punching in. Your last out-punch was at #{time.format('h:mma')} on #{time.format('dddd, MMMM Do')}."
    # if mode is 'unpaid' and user is non-salary
    else if @mode is 'unpaid' and not user.salary
      return 'You aren\'t eligible to punch for unpaid time.'
