diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Change Log
 
+## 0.15.0 - 2020-12-16
+
+* Add support for ticky-ticky counts [#67](https://github.com/haskell/ghc-events/pull/67)
+
 ## 0.14.0 - 2020-11-17
 
 * Add support for non-moving GC events [#60](https://github.com/haskell/ghc-events/pull/60)
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
 # ghc-events
-[![Build Status](https://travis-ci.org/haskell/ghc-events.svg?branch=master)](https://travis-ci.org/haskell/ghc-events)
+
+![build](https://github.com/haskell/ghc-events/workflows/build/badge.svg)
 [![Hackage](https://img.shields.io/hackage/v/ghc-events.svg)](https://hackage.haskell.org/package/ghc-events)
 [![Hackage-Deps](https://img.shields.io/hackage-deps/v/ghc-events.svg)](http://packdeps.haskellers.com/feed?needle=ghc-events)
 
diff --git a/ghc-events.cabal b/ghc-events.cabal
--- a/ghc-events.cabal
+++ b/ghc-events.cabal
@@ -1,6 +1,6 @@
 cabal-version:    2.2
 name:             ghc-events
-version:          0.14.0
+version:          0.15.0
 synopsis:         Library and tool for parsing .eventlog files from GHC
 description:      Parses .eventlog files emitted by GHC 6.12.1 and later.
                   Includes the ghc-events tool permitting, in particular,
diff --git a/include/EventLogFormat.h b/include/EventLogFormat.h
--- a/include/EventLogFormat.h
+++ b/include/EventLogFormat.h
@@ -211,12 +211,15 @@
 #define EVENT_CONC_UPD_REM_SET_FLUSH       206
 #define EVENT_NONMOVING_HEAP_CENSUS        207
 
+#define EVENT_TICKY_COUNTER_DEF            210
+#define EVENT_TICKY_COUNTER_SAMPLE         211
+
 /*
  * The highest event code +1 that ghc itself emits. Note that some event
  * ranges higher than this are reserved but not currently emitted by ghc.
  * This must match the size of the EventDesc[] array in EventLog.c
  */
-#define NUM_GHC_EVENT_TAGS        208
+#define NUM_GHC_EVENT_TAGS        212
 
 
 /* DEPRECATED EVENTS: */
diff --git a/src/GHC/RTS/EventTypes.hs b/src/GHC/RTS/EventTypes.hs
--- a/src/GHC/RTS/EventTypes.hs
+++ b/src/GHC/RTS/EventTypes.hs
@@ -447,6 +447,18 @@
                        , nonmovingCensusFilledSegs :: !Word32
                        , nonmovingCensusLiveBlocks :: !Word32
                        }
+  | TickyCounterDef
+                       { tickyCtrDefId      :: !Word64
+                       , tickyCtrDefArity   :: !Word16
+                       , tickyCtrDefKinds   :: !Text
+                       , tickyCtrDefName    :: !Text
+                       }
+  | TickyCounterSample
+                       { tickyCtrSampleId         :: !Word64
+                       , tickyCtrSampleEntryCount :: !Word64
+                       , tickyCtrSampleAllocs     :: !Word64
+                       , tickyCtrSampleAllocd     :: !Word64
+                       }
   deriving Show
 
 {- [Note: Stop status in GHC-7.8.2]
diff --git a/src/GHC/RTS/Events.hs b/src/GHC/RTS/Events.hs
--- a/src/GHC/RTS/Events.hs
+++ b/src/GHC/RTS/Events.hs
@@ -512,6 +512,16 @@
           <> ": " <> TB.decimal nonmovingCensusActiveSegs <> " active segments"
           <> ", " <> TB.decimal nonmovingCensusFilledSegs <> " filled segments"
           <> ", " <> TB.decimal nonmovingCensusLiveBlocks <> " live blocks"
+        TickyCounterDef {..}  ->
+          "ticky counter definition " <> TB.decimal tickyCtrDefId
+          <> ", " <>  "arity: " <> TB.decimal tickyCtrDefArity
+          <> ", " <> "def kinds: " <> TB.fromText tickyCtrDefKinds
+          <> ", " <> "name: " <> TB.fromText tickyCtrDefName
+        TickyCounterSample {..}  ->
+          "ticky counter sample " <> TB.decimal tickyCtrSampleId
+          <> ": " <> "entry count: " <> TB.decimal tickyCtrSampleEntryCount
+          <> ", " <> TB.decimal tickyCtrSampleAllocs <> " allocs"
+          <> ", " <> TB.decimal tickyCtrSampleAllocd <> " allocd"
 
 -- | Replace unprintable bytes in the message with the replacement character
 replaceUnprintableWith
diff --git a/src/GHC/RTS/Events/Binary.hs b/src/GHC/RTS/Events/Binary.hs
--- a/src/GHC/RTS/Events/Binary.hs
+++ b/src/GHC/RTS/Events/Binary.hs
@@ -17,6 +17,7 @@
   , post782StopParser
   , parRTSParsers
   , binaryEventParsers
+  , tickyParsers
 
   -- * Writers
   , putEventLog
@@ -881,6 +882,31 @@
     return $! UserBinaryMessage { payload }
   ]
 
+tickyParsers :: [EventParser EventInfo]
+tickyParsers =
+  [ VariableSizeParser EVENT_TICKY_COUNTER_DEF $ do
+    payloadLen         <- get :: Get Word16
+    tickyCtrDefId      <- get
+    tickyCtrDefArity   <- get
+    tickyCtrDefKinds   <- getTextNul
+    tickyCtrDefName    <- getTextNul
+    assert
+      (fromIntegral payloadLen == sum
+        [ 8 -- tickyCtrDefId
+        , 2 -- tickyCtrDefArity
+        , textByteLen tickyCtrDefKinds
+        , textByteLen tickyCtrDefName
+        ])
+      (return ())
+    return $! TickyCounterDef{..}
+  , FixedSizeParser EVENT_TICKY_COUNTER_SAMPLE (8*4) $ do
+    tickyCtrSampleId         <- get
+    tickyCtrSampleEntryCount <- get
+    tickyCtrSampleAllocs     <- get
+    tickyCtrSampleAllocd     <- get
+    return $! TickyCounterSample{..}
+  ]
+
 -- | String byte length in the eventlog format. It includes
 -- 1 byte for NUL.
 textByteLen :: T.Text -> Int
@@ -1032,6 +1058,8 @@
     ConcSweepEnd {} -> EVENT_CONC_SWEEP_END
     ConcUpdRemSetFlush {} -> EVENT_CONC_UPD_REM_SET_FLUSH
     NonmovingHeapCensus {} -> EVENT_NONMOVING_HEAP_CENSUS
+    TickyCounterDef {} -> EVENT_TICKY_COUNTER_DEF
+    TickyCounterSample {} -> EVENT_TICKY_COUNTER_SAMPLE
 
 nEVENT_PERF_NAME, nEVENT_PERF_COUNTER, nEVENT_PERF_TRACEPOINT :: EventTypeNum
 nEVENT_PERF_NAME = EVENT_PERF_NAME
@@ -1472,3 +1500,13 @@
     putE nonmovingCensusActiveSegs
     putE nonmovingCensusFilledSegs
     putE nonmovingCensusLiveBlocks
+putEventSpec TickyCounterDef {..} = do
+    putE tickyCtrDefId
+    putE tickyCtrDefArity
+    putE (T.unpack tickyCtrDefKinds)
+    putE (T.unpack tickyCtrDefName)
+putEventSpec TickyCounterSample {..} = do
+    putE tickyCtrSampleId
+    putE tickyCtrSampleEntryCount
+    putE tickyCtrSampleAllocs
+    putE tickyCtrSampleAllocd
diff --git a/src/GHC/RTS/Events/Incremental.hs b/src/GHC/RTS/Events/Incremental.hs
--- a/src/GHC/RTS/Events/Incremental.hs
+++ b/src/GHC/RTS/Events/Incremental.hs
@@ -204,5 +204,6 @@
         , heapProfParsers
         , timeProfParsers
         , binaryEventParsers
+        , tickyParsers
         ]
     parsers = EventParsers $ mkEventTypeParsers imap event_parsers
diff --git a/test/Utils.hs b/test/Utils.hs
--- a/test/Utils.hs
+++ b/test/Utils.hs
@@ -20,6 +20,7 @@
     , "time-prof.eventlog"
     , "trace-binary-event.eventlog"
     , "unicode.eventlog"
+    , "ticky-ticky.eventlog"
     ]
 
 
