diff --git a/tests/__data__/expected/guides/allente.se/da.json b/tests/__data__/expected/guides/allente.se/da.json
new file mode 100644
index 00000000..37dcb8ba
--- /dev/null
+++ b/tests/__data__/expected/guides/allente.se/da.json
@@ -0,0 +1 @@
+{"channels":[{"id":"6eren.dk","name":"6'eren","site":"allente.se","lang":"da","logo":"https://upload.wikimedia.org/wikipedia/commons/6/64/6%27eren_2015.png","url":"https://allente.se"}],"programs":[{"site":"allente.se","channel":"6eren.dk","titles":[{"value":"Diners, Drive-Ins and Dives","lang":"da"}],"sub_titles":[],"descriptions":[{"value":"Underholdning","lang":"da"}],"icon":{"src":"https://viasatps.api.comspace.se/PS/channeldate/image/viasat.ps/487/2022-10-24/se.cs.6eren.event.B_0254194276971024040000.jpg?size=2560x1440"},"episodeNumbers":[{"system":"xmltv_ns","value":"23.5.0/1"},{"system":"onscreen","value":"S24E06"}],"date":null,"start":1666584000000,"stop":1666585500000,"urls":[],"ratings":[],"categories":[{"value":"series","lang":"da"}],"directors":[],"actors":[],"writers":[],"adapters":[],"producers":[],"composers":[],"editors":[],"presenters":[],"commentators":[],"guests":[]}]}
\ No newline at end of file
diff --git a/tests/__data__/expected/guides/allente.se/da.xml b/tests/__data__/expected/guides/allente.se/da.xml
new file mode 100644
index 00000000..40e099ac
--- /dev/null
+++ b/tests/__data__/expected/guides/allente.se/da.xml
@@ -0,0 +1,4 @@
+
+6'erenhttps://allente.se
+Diners, Drive-Ins and DivesUnderholdningseries23.5.0/1S24E06
+
\ No newline at end of file
diff --git a/tests/__data__/expected/guides/allente.se/da.xml.gz b/tests/__data__/expected/guides/allente.se/da.xml.gz
new file mode 100644
index 00000000..fe964bfa
Binary files /dev/null and b/tests/__data__/expected/guides/allente.se/da.xml.gz differ
diff --git a/tests/__data__/expected/guides/sky.com/en.json b/tests/__data__/expected/guides/sky.com/en.json
new file mode 100644
index 00000000..03f35c39
--- /dev/null
+++ b/tests/__data__/expected/guides/sky.com/en.json
@@ -0,0 +1 @@
+{"channels":[{"id":"BBCNews.uk","name":"BBC News","site":"sky.com","lang":"en","logo":"https://i.imgur.com/rPzH88J.png","url":"https://sky.com"}],"programs":[{"site":"sky.com","channel":"BBCNews.uk","titles":[{"value":"BBC News at One","lang":"en"}],"sub_titles":[],"descriptions":[{"value":"The latest national and international news from the BBC. [S,SL]","lang":"en"}],"icon":{"src":"http://epgstatic.sky.com/epgdata/1.0/paimage/46/1/lisa/5.2.2/linear/channel/ca247bc8-6be0-48f9-88d1-865f87f7680e/2011"},"episodeNumbers":[],"date":null,"start":1666872000000,"stop":1666873800000,"urls":[],"ratings":[],"categories":[],"directors":[],"actors":[],"writers":[],"adapters":[],"producers":[],"composers":[],"editors":[],"presenters":[],"commentators":[],"guests":[]}]}
\ No newline at end of file
diff --git a/tests/__data__/expected/guides/sky.com/en.xml b/tests/__data__/expected/guides/sky.com/en.xml
new file mode 100644
index 00000000..1eeac223
--- /dev/null
+++ b/tests/__data__/expected/guides/sky.com/en.xml
@@ -0,0 +1,4 @@
+
+BBC Newshttps://sky.com
+BBC News at OneThe latest national and international news from the BBC. [S,SL]
+
\ No newline at end of file
diff --git a/tests/__data__/expected/guides/sky.com/en.xml.gz b/tests/__data__/expected/guides/sky.com/en.xml.gz
new file mode 100644
index 00000000..c3f1f279
Binary files /dev/null and b/tests/__data__/expected/guides/sky.com/en.xml.gz differ
diff --git a/tests/__data__/expected/guides/virginmedia.com/en.json b/tests/__data__/expected/guides/virginmedia.com/en.json
new file mode 100644
index 00000000..5ff6b490
--- /dev/null
+++ b/tests/__data__/expected/guides/virginmedia.com/en.json
@@ -0,0 +1 @@
+{"channels":[{"id":"BBCNews.uk","name":"BBC News","site":"virginmedia.com","lang":"en","logo":"https://i.imgur.com/rPzH88J.png","url":"https://virginmedia.com"}],"programs":[{"site":"virginmedia.com","channel":"BBCNews.uk","titles":[{"value":"BBC News at One","lang":"en"}],"sub_titles":[],"descriptions":[{"value":"The latest national and international news, followed by weather.","lang":"en"}],"icon":{"src":""},"episodeNumbers":[{"system":"xmltv_ns","value":"96839999.145799123.0/1"},{"system":"onscreen","value":"S96840000E145799124"}],"date":null,"start":1666872000000,"stop":1666873800000,"urls":[],"ratings":[],"categories":[{"value":"News","lang":"en"}],"directors":[],"actors":[],"writers":[],"adapters":[],"producers":[],"composers":[],"editors":[],"presenters":[],"commentators":[],"guests":[]}]}
\ No newline at end of file
diff --git a/tests/__data__/expected/guides/virginmedia.com/en.xml b/tests/__data__/expected/guides/virginmedia.com/en.xml
new file mode 100644
index 00000000..667c2f07
--- /dev/null
+++ b/tests/__data__/expected/guides/virginmedia.com/en.xml
@@ -0,0 +1,4 @@
+
+BBC Newshttps://virginmedia.com
+BBC News at OneThe latest national and international news, followed by weather.News96839999.145799123.0/1S96840000E145799124
+
\ No newline at end of file
diff --git a/tests/__data__/expected/guides/virginmedia.com/en.xml.gz b/tests/__data__/expected/guides/virginmedia.com/en.xml.gz
new file mode 100644
index 00000000..c41ccf96
Binary files /dev/null and b/tests/__data__/expected/guides/virginmedia.com/en.xml.gz differ
diff --git a/tests/__data__/expected/logs/guides/update.log b/tests/__data__/expected/logs/guides/update.log
index fdba1db3..ac7777d7 100644
--- a/tests/__data__/expected/logs/guides/update.log
+++ b/tests/__data__/expected/logs/guides/update.log
@@ -1,2 +1,5 @@
-{"country":"DK","lang":"da","site":"allente.se","channel":"6eren.dk","filename":"dk"}
-{"country":"UK","lang":"en","site":"virginmedia.com","channel":"BBCNews.uk","filename":"uk"}
+{"groupedBy":"broadcast_area","country":"DK","lang":"da","site":"allente.se","channel":"6eren.dk","filename":"dk"}
+{"groupedBy":"broadcast_area","country":"UK","lang":"en","site":"virginmedia.com","channel":"BBCNews.uk","filename":"uk"}
+{"groupedBy":"site+lang","lang":"da","site":"allente.se","channel":"6eren.dk","filename":"allente.se/da"}
+{"groupedBy":"site+lang","lang":"en","site":"virginmedia.com","channel":"BBCNews.uk","filename":"virginmedia.com/en"}
+{"groupedBy":"site+lang","lang":"en","site":"sky.com","channel":"BBCNews.uk","filename":"sky.com/en"}