From f1c24fb0cffc39070a43d1b46649211402143efb Mon Sep 17 00:00:00 2001 From: slowe <299787+slowe@users.noreply.github.com> Date: Thu, 14 Nov 2024 14:20:16 +0000 Subject: [PATCH] Update Heritage at Risk --- pipelines/society/heritage-at-risk-2024.pl | 532 +++++++++++++++++ .../embed-national-churches-trust.njk | 2 +- .../heritage-at-risk/_data/HAR2023.csv} | 0 .../heritage-at-risk/_data/HAR2024.csv | 546 ++++++++++++++++++ .../heritage-at-risk/embeds/_partials/all.njk | 12 +- .../embeds/_partials/archaeology.njk | 12 +- .../_partials/building-or-structure.njk | 12 +- .../embeds/_partials/conservation-area.njk | 12 +- .../embeds/_partials/place-of-worship.njk | 12 +- .../embeds/place-of-worship-2024.njk | 198 +++++++ .../embeds/place-of-worship.njk | 14 +- src/themes/society/heritage-at-risk/index.njk | 8 +- 12 files changed, 1317 insertions(+), 43 deletions(-) create mode 100644 pipelines/society/heritage-at-risk-2024.pl rename src/{_data/sources/society/heritage-at-risk.csv => themes/society/heritage-at-risk/_data/HAR2023.csv} (100%) create mode 100644 src/themes/society/heritage-at-risk/_data/HAR2024.csv create mode 100644 src/themes/society/heritage-at-risk/embeds/place-of-worship-2024.njk diff --git a/pipelines/society/heritage-at-risk-2024.pl b/pipelines/society/heritage-at-risk-2024.pl new file mode 100644 index 0000000..35e9002 --- /dev/null +++ b/pipelines/society/heritage-at-risk-2024.pl @@ -0,0 +1,532 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use utf8; +use JSON::XS; +use Data::Dumper; +use Cwd qw(abs_path); +binmode STDOUT, 'utf8'; +binmode STDERR, 'utf8'; + + +# Get the real base directory for this script +my ($basedir, $path); +BEGIN { ($basedir, $path) = abs_path($0) =~ m{(.*/)?([^/]+)$}; push @INC, $basedir; } + + +my $hexmap = LoadJSON($basedir.'../../src/_data/hexjson/uk-constituencies-2024.hexjson'); +my $constituencies = {}; +foreach my $hex (sort(keys(%{$hexmap->{'hexes'}}))){ + $constituencies->{$hexmap->{'hexes'}{$hex}{'n'}} = { + 'Name'=>$hexmap->{'hexes'}{$hex}{'n'}, + 'Region'=>$hexmap->{'hexes'}{$hex}{'region'}, + 'PCON24CD'=>$hex + }; +} + + +my $mpdata = LoadCSV($basedir.'../../src/_data/sources/society/general-elections-2024.csv',{ + 'columns'=>{ + 'PCON24CD'=>'PCON24CD', + 'MP'=>'MP', + 'Party'=>'Party' + }, + 'key'=>'PCON24CD' +}); + +my $twfy = LoadCSV($basedir.'../../lookups/theyworkforyou-2024.csv',{ + 'columns'=>{ + 'Person ID'=>'ID', + 'URI'=>'URI', + 'Constituency'=>'Constituency' + }, + 'key'=>'Constituency' +}); + +#my @rows = getXLSX({ +# 'url'=>'https://historicengland.org.uk/content/docs/har/har-2024-entries-additions-removals/', +# 'file'=>$basedir.'temp/har.xlsx', +# 'sheet'=>'sheet2', +# 'keys'=>{ +# 'Site name'=>'B', +# 'PCON24NM'=>'I', +# 'Heritage Category'=>'K', +# 'List Entry Number'=>'M', +# 'Place of worship'=>'P', +# 'Risk methodology'=>'Q', +# 'Priority category'=>'W', +# 'Narrow Term'=>'AC' +# }, +# 'startrow'=>2 +#}); + +#my @rows = LoadCSV($basedir.'../../../../../Downloads/HARExport.csv',{ +# 'columns'=>{ +# 'Parliamentary Constituency'=>'PCON24NM', +# 'Entry Name'=>'Site name', +# 'Heritage Category'=>'Heritage Category', +# 'List Entry Number'=>'List Entry Number', +# 'Designation'=>'Narrow Term', +# 'Assessment Type'=>'Risk methodology' +# }, +# 'startrow'=>2 +#}); + +# Heritage England provide an ODS (previously XLSX) file at https://historicengland.org.uk/content/docs/har/har-2024-entries-additions-removals/ +# Extract the second sheet and make sure it is converted to UTF8 +my @rows = LoadCSV($basedir.'../../raw-data/HAR Register 2024 Entries including additions and removals.csv',{ + 'columns'=>{ + 'Parliamentary Constituency (as at General Election July 2024)'=>'PCON24NM', + 'Published site name'=>'Site name', + 'Heritage Category'=>'Heritage Category', + 'List Entry Number (LEN) or Conservation Area Number (CAN)'=>'List Entry Number', + 'Narrow Term'=>'Narrow Term', + 'Risk methodology'=>'Risk methodology' + }, + 'startrow'=>2 +}); + +my $mplookup = LoadCSV($basedir.'../../lookups/current-MPs.csv',{ + 'columns'=>{ + 'PCON24CD'=>'PCON24CD', + 'MP ID'=>'MPID', + 'BG'=>'BG' + }, + 'key'=>'PCON24CD' +}); + + +my $nocon = 0; +my $badcon = 0; +my $double = 0; +my $counts = {}; +my $types = {}; +my $nrows = @rows; +my ($r,$pcon,@pcons,$p,$pid,$pname); + + +foreach $pcon (keys(%{$constituencies})){ + $constituencies->{$pcon}{'Historic England Name'} = $pcon; + $constituencies->{$pcon}{'TWFY'} = $twfy->{$pcon}{'URI'}; +} + + +for($r = 0; $r < @rows; $r++){ + $pname = $rows[$r]{'PCON24NM'}; + @pcons = (); + # Split into multiple constituencies + if($pname){ + if($pname =~ / \/.*/){ + @pcons = split(/ \/ /,$pname); + $double++; + }else{ + @pcons = ($pname); + } + } + $p = @pcons; + if($p > 0){ + for($p = 0; $p < @pcons; $p++){ + $pname = $pcons[$p]; + $pcon = $pname; + $pcon =~ s/St\./St/g; + $pcon =~ s/-Super-/-super-/g; + if($pcon){ + + if($constituencies->{$pcon}){ + $constituencies->{$pcon}{'Historic England Name'} = $pname; + $pid = $constituencies->{$pcon}{'PCON24CD'}; + if(!$counts->{$pid}){ $counts->{$pid} = {'name'=>$pcon,'total'=>0,'types'=>{}}; } + + if($rows[$r]{'Narrow Term'}){ + # Only keep a count of the types once per row + if($p==0){ + if(!$types->{$rows[$r]{'Risk methodology'}}){ $types->{$rows[$r]{'Risk methodology'}} = 0; } + $types->{$rows[$r]{'Risk methodology'}}++; + if(!$types->{'All'}){ $types->{'All'} = 0; } + $types->{'All'}++; + } + if(!$counts->{$pid}{'types'}{'All'}){ $counts->{$pid}{'types'}{'All'} = 0; } + $counts->{$pid}{'types'}{'All'}++; + if(!$counts->{$pid}{'types'}{$rows[$r]{'Risk methodology'}}){ $counts->{$pid}{'types'}{$rows[$r]{'Risk methodology'}} = 0; } + $counts->{$pid}{'types'}{$rows[$r]{'Risk methodology'}}++; + } + $counts->{$pid}{'total'}++; + }else{ + warning("No constituency matches $pcon\n"); + $badcon++; + } + } + } + }else{ + #warning("No constituency for row ".($r+2)." \"$rows[$r]{'Site name'}\"\n"); + $nocon++; + } +} + +msg("Stats:\n"); +msg("\t$nrows entries in the register.\n"); +msg("\t$nocon with no constituency given.\n"); +msg("\t$double with multiple constituencies.\n"); +msg("\t$badcon with a bad constituency name.\n"); +print Dumper $types; + +my ($t,$fh,@typ); +foreach $t (sort(keys(%{$types}))){ + push(@typ,$t); +} +@typ = sort(@typ); + + + + +my ($csvpow,$csvfull,$file); + +# Create CSV headers +$csvfull = "PCON24CD,PCON24NM,HAR name,MP,Party short,Party,ID,BG"; +for($t=0;$t < @typ;$t++){ + $csvfull .= ",Type"; +} +$csvfull .= "\n,,,,,,,"; +for($t=0;$t < @typ;$t++){ + $csvfull .= ",".$typ[$t]; +} +$csvfull .= "\n---,---,---,---,---,---,---"; +for($t=0;$t< @typ;$t++){ + $csvfull .= ",---"; +} +$csvfull .= "\n"; + +# Add data to CSVs +foreach $pcon (sort(keys(%{$constituencies}))){ + $pid = $constituencies->{$pcon}{'PCON24CD'}; + if($pid =~ /^E/){ + #print Dumper $constituencies->{$pcon}; + $pname = $constituencies->{$pcon}{'Historic England Name'}||$pcon; + + # Build full CSV row + $csvfull .= $pid; + $csvfull .= ",".($pcon =~ /,/ ? "\"$pcon\"" : $pcon); + $csvfull .= ",".($pname =~ /,/ ? "\"$pname\"" : $pname); + $csvfull .= ",".($mpdata->{$pid}{'MP'}||"?"); + $csvfull .= ",".$mpdata->{$pid}{'Party'}.",".updatePartyName($mpdata->{$pid}{'Party'}); + $csvfull .= ",".$mplookup->{$pid}{'MPID'};#($mplookup->{$pid}{'MPID'} ? "https://members.parliament.uk/member/$mplookup->{$pid}{'MPID'}/contact" : ""); + $csvfull .= ",".($mplookup->{$pid}{'BG'}); + for($t=0;$t< @typ;$t++){ + $csvfull .= ",".($counts->{$pid}{'types'}{$typ[$t]}||"0"); + } + $csvfull .= "\n"; + + } +} + +# Save outputs +$file = $basedir."../../src/themes/society/heritage-at-risk/_data/HAR2024.csv"; +msg("Save to $file\n"); +open($fh,">:utf8",$file); +print $fh $csvfull; +close($fh); + + + + +##################### + +sub msg { + my $str = $_[0]; + my $dest = $_[1]||"STDOUT"; + + my %colours = ( + 'black'=>"\033[0;30m", + 'red'=>"\033[0;31m", + 'green'=>"\033[0;32m", + 'yellow'=>"\033[0;33m", + 'blue'=>"\033[0;34m", + 'magenta'=>"\033[0;35m", + 'cyan'=>"\033[0;36m", + 'white'=>"\033[0;37m", + 'none'=>"\033[0m" + ); + foreach my $c (keys(%colours)){ $str =~ s/\< ?$c ?\>/$colours{$c}/g; } + if($dest eq "STDERR"){ + print STDERR $str; + }else{ + print STDOUT $str; + } +} + +sub error { + my $str = $_[0]; + $str =~ s/(^[\t\s]*)/$1ERROR: /; + msg($str,"STDERR"); +} + +sub warning { + my $str = $_[0]; + $str =~ s/(^[\t\s]*)/$1WARNING: /; + msg($str,"STDERR"); +} + +sub makeDir { + my $str = $_[0]; + my @bits = split(/\//,$str); + my $tdir = ""; + my $i; + for($i = 0; $i < @bits; $i++){ + $tdir .= $bits[$i]."/"; + if(!-d $tdir){ + `mkdir $tdir`; + } + } +} + +sub getDataFromURL { + + my $d = shift; + my ($url,$file,$dir,$age,$now,$epoch_timestamp,$args,$h,$n); + + $url = $d->{'url'}; + $file = $d->{'file'}; + + if(!$file){ + $file = $url; + $file =~ s/^https:\/\///g; + $file =~ s/[^A-Za-z0-9\-\.]/\_/g; + $file =~ s/\_+$//g; + } + + $dir = $file; + if(!-d $dir){ $dir =~ s/[^\/]*$//g; } + + if($dir && !-d $dir){ makeDir($dir); } + + $age = 100000; + if(-e $file){ + $epoch_timestamp = (stat($file))[9]; + $now = time; + $age = ($now-$epoch_timestamp); + } + + if($age >= 86400 || -s $file == 0){ + $args = ""; + if($d->{'headers'}){ + foreach $h (keys(%{$d->{'headers'}})){ + $args .= ($args ? " " : "")."-H \"$h: $d->{'headers'}{$h}\""; + } + } + if($d->{'method'}){ + $args .= " -X $d->{'data'}[$n]{'method'}" + } + if($d->{'form'}){ + $args .= " --data-raw \'$d->{'data'}[$n]{'form'}\'"; + } + msg("Getting $url\n"); + `curl -s --insecure -L $args --compressed -o $file "$url"`; + msg("\tDownloaded to $file\n"); + } + return $file; +} + +sub getXLSX { + # Version 2 + + my $d = shift; + my ($url,$file,$str,$t,@si,@strings,$sheet,$props,$row,$col,$attr,$cols,@rows,$rowdata,@geo,@features,$c,$r,$n,$datum,@orows,$orow,$propsstrip,$colstrip,$added,$key); + + $url = $d->{'url'}; + $file = $d->{'file'}; + + # Get the data (if we don't have a cached version) + $file = getDataFromURL($d); + + msg("Processing xlsx to extract data from $file\n"); + + # First we need to get the sharedStrings.xml + $str = decode_utf8(join("",`unzip -p $file xl/sharedStrings.xml`)); + + msg("\tGetting shared strings\n"); + @strings = split(//,$str); + for($c = 0; $c < @strings; $c++){ + $strings[$c] =~ s/(.*?)<\/si>.*/$1/g; + $strings[$c] =~ s/<[^\>]+>//g; + } + shift(@strings); + + msg("\tGetting data from sheet $d->{'sheet'}\n"); + $str = decode_utf8(join("",`unzip -p $file xl/worksheets/$d->{'sheet'}.xml`)); + if($str =~ /(.*?)<\/sheetData>/){ + $sheet = $1; + @orows = split(/]*?)>(.*?)<\/row>.*/){ + $props = $1; + $orow = $2; + $row = $orow; + $attr = {}; + while($props =~ s/([^\s]+)="([^\"]+)"//){ $attr->{$1} = $2; } + $rowdata = {'content'=>$orow,'attr'=>$attr,'cols'=>{}}; + # Remove empty cells + $row =~ s/]+\/>//g; + while($row =~ s/]*?)>(.*?)<\/c>//){ + $props = $1; + $propsstrip = $props; + $col = $2; + $colstrip = $col; + $colstrip =~ s/<[^\>]+>//g; + $attr = {}; + while($propsstrip =~ s/([^\s]+)="([^\"]+)"//){ $attr->{$1} = $2; } + if($attr->{'r'} =~ /^([A-Z]+)([0-9]+)/){ + $c = $1; + $n = $2; + $rowdata->{'cols'}{$c} = $strings[$colstrip]; + } + } + push(@rows,$rowdata); + } + } + + for($r = 0; $r < @rows; $r++){ + if($rows[$r]->{'attr'}{'r'} >= $d->{'startrow'}){ + $datum = {}; + $added = 0; + foreach $key (keys(%{$d->{'keys'}})){ + if($rows[$r]->{'cols'}{$d->{'keys'}{$key}}){ + $added++; + } + $datum->{$key} = $rows[$r]->{'cols'}{$d->{'keys'}{$key}}||""; + } + if($added > 0){ push(@features,$datum); } + } + } + } + `rm $file`; + return @features; +} + + +# Version 1.4.2 +sub ParseCSV { + my $str = shift; + my $config = shift; + my (@rows,@cols,@header,$r,$c,@features,$data,$key,$k,$f,$n,$n2,$compact,$hline,$sline,$col,$headerlookup,$v); + + $compact = $config->{'compact'}; + if(not defined($config->{'header'})){ $config->{'header'} = {}; } + if(not defined($config->{'header'}{'start'})){ $config->{'header'}{'start'} = 0; } + if(not defined($config->{'header'}{'spacer'})){ $config->{'header'}{'spacer'} = 0; } + if(not defined($config->{'header'}{'join'})){ $config->{'header'}{'join'} = "→"; } + $sline = $config->{'startrow'}||1; + $col = $config->{'key'}; + + $n = () = $str =~ /\r\n/g; + $n2 = () = $str =~ /\n/g; + if($n < $n2 * 0.25){ + # Replace CR LF with escaped newline + $str =~ s/\r\n/\\n/g; + } + @rows = split(/[\n]/,$str); + + $n = @rows; + + for($r = $config->{'header'}{'start'}; $r < @rows; $r++){ + $rows[$r] =~ s/[\n\r]//g; + @cols = split(/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/,$rows[$r]); + + if($r < $sline-$config->{'header'}{'spacer'}){ + # Header + if(!@header){ + for($c = 0; $c < @cols; $c++){ + $cols[$c] =~ s/(^\"|\"$)//g; + } + @header = @cols; + }else{ + for($c = 0; $c < @cols; $c++){ + if($cols[$c]){ $header[$c] .= $config->{'header'}{'join'}.$cols[$c]; } + } + } + for($c = 0; $c < @header; $c++){ + $headerlookup->{$header[$c]} = $c; + } + } + if($r >= $sline){ + $data = {}; + for($c = 0; $c < @cols; $c++){ + $cols[$c] =~ s/(^\"|\"$)//g; + if(defined($config->{'columns'})){ + foreach $k (keys(%{$config->{'columns'}})){ + $v = $cols[$headerlookup->{$k}]; + $v =~ s/(^\"|\"$)//g; + $data->{$config->{'columns'}{$k}} = $v; + } + }else{ + $data->{$header[$c]} = $cols[$c]; + } + } + push(@features,$data); + } + } + if($col){ + $data = {}; + for($r = 0; $r < @features; $r++){ + $f = $features[$r]->{$col}||""; + if($compact){ $f =~ s/ //g; } + $data->{$f} = $features[$r]; + } + return $data; + }else{ + return @features; + } +} + +sub LoadCSV { + # version 1.3 + my $file = shift; + my $config = shift; + + msg("Processing CSV from $file\n"); + open(FILE,"<:utf8",$file); + my @lines = ; + close(FILE); + return ParseCSV(join("",@lines),$config); +} + +sub ParseJSON { + my $str = shift; + my $json = {}; + if(!$str){ $str = "{}"; } + eval { + $json = JSON::XS->new->decode($str); + }; + if($@){ error("\tInvalid output.\n"); } + return $json; +} + +sub LoadJSON { + my (@files,$str,@lines,$json); + my $file = $_[0]; + open(FILE,"<:utf8",$file); + @lines = ; + close(FILE); + $str = (join("",@lines)); + # Error check for JS variable e.g. South Tyneside https://maps.southtyneside.gov.uk/warm_spaces/assets/data/wsst_council_spaces.geojson.js + $str =~ s/[^\{]*var [^\{]+ = //g; + return ParseJSON($str); +} + + +sub updatePartyName { + my $party = shift||""; + + if($party eq "Con"){ $party = "Conservative"; } + elsif($party eq "Lab"){ $party = "Labour"; } + elsif($party eq "LD" || $party eq "LDem"){ $party = "Liberal Democrat"; } + elsif($party eq "Grn"){ $party = "Green"; } + elsif($party eq "PC"){ $party = "Plaid Cymru"; } + elsif($party eq "Ind"){ $party = "Independent"; } + elsif($party eq "SF"){ $party = "Sinn Féin"; } + elsif($party eq "WPB"){ $party = "Workers Party of Britain"; } + elsif($party eq "Spk"){ $party = "Speaker"; } + + return $party; +} \ No newline at end of file diff --git a/src/_includes/template/embed-national-churches-trust.njk b/src/_includes/template/embed-national-churches-trust.njk index 58fdb24..4eea3fc 100644 --- a/src/_includes/template/embed-national-churches-trust.njk +++ b/src/_includes/template/embed-national-churches-trust.njk @@ -129,7 +129,7 @@ h1 { margin-top: 0; font-size: 2rem; } panelSelector .capture[role="tabpanel"] { border-radius: 0; border: 0; padding-bottom: 2.5rem; } .capture .oi-attribution:after { content: "Visualisation: National Churches Trust / Open Innovations"; position: absolute; top: 100%; left: 50%; transform: translate3d(-50%,0,0); background-image: url("data:image/svg+xml,%3Csvg width='1em' height='1em' overflow='auto' viewBox='-32 -32 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cmask id='oi-person'%3E%3Cpath d='m-32-32h64v64h-12v-24a4 4 0 0 0 -4 -4h-8a4 4 0 0 0 -4 4v24h-36zm44 27m-8 0a8 8 0 1 0 16 0 8 8 0 1 0-16 0' fill='%23fff'%3E%3C/path%3E%3C/mask%3E%3Cg id='oi-logo' fill='black'%3E%3Ccircle r='32' mask='url(%23oi-person)'%3E%3C/circle%3E%3C/g%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right; padding-right: 1.25rem; } .oi-left, .oi-right { max-width: 100%; } -.oi-filter input { width: 21em; max-width: 80%; } +.oi-filter input { width: 21em; max-width: 80%; font-size: inherit; } /* .oi-filter .oi-filter-button { background: #E3051F; } .oi-filter input { border-color: #E3051F; } diff --git a/src/_data/sources/society/heritage-at-risk.csv b/src/themes/society/heritage-at-risk/_data/HAR2023.csv similarity index 100% rename from src/_data/sources/society/heritage-at-risk.csv rename to src/themes/society/heritage-at-risk/_data/HAR2023.csv diff --git a/src/themes/society/heritage-at-risk/_data/HAR2024.csv b/src/themes/society/heritage-at-risk/_data/HAR2024.csv new file mode 100644 index 0000000..ff81f2d --- /dev/null +++ b/src/themes/society/heritage-at-risk/_data/HAR2024.csv @@ -0,0 +1,546 @@ +PCON24CD,PCON24NM,HAR name,MP,Party short,Party,ID,BG,Type,Type,Type,Type,Type,Type,Type +,,,,,,,,All,Archaeology,Battlefield,Building or structure,Conservation area,Park and garden,Place of worship +---,---,---,---,---,---,---,---,---,---,---,---,---,--- +E14001063,Aldershot,Aldershot,Alex Baker,Lab,Labour,5173,#d50000,3,0,0,2,0,0,1 +E14001064,Aldridge-Brownhills,Aldridge-Brownhills,Wendy Morton,Con,Conservative,4358,#0063ba,1,0,0,0,0,1,0 +E14001065,Altrincham and Sale West,Altrincham and Sale West,Connor Rand,Lab,Labour,5159,#d50000,1,0,0,0,1,0,0 +E14001066,Amber Valley,Amber Valley,Linsey Farnsworth,Lab,Labour,5107,#d50000,5,1,0,4,0,0,0 +E14001067,Arundel and South Downs,Arundel and South Downs,Andrew Griffith,Con,Conservative,4874,#0063ba,13,5,0,2,1,1,4 +E14001068,Ashfield,Ashfield,Lee Anderson,Ref,Ref,4743,#12b6cf,3,1,0,0,1,1,0 +E14001069,Ashford,Ashford,Sojan Joseph,Lab,Labour,5247,#d50000,7,4,0,1,0,0,2 +E14001070,Ashton-under-Lyne,Ashton-under-Lyne,Angela Rayner,Lab,Labour,4356,#d50000,5,0,0,1,0,0,4 +E14001071,Aylesbury,Aylesbury,Laura Elizabeth Kyrke-Smith,Lab,Labour,5341,#d50000,7,0,0,3,0,2,2 +E14001072,Banbury,Banbury,Sean Woodcock,Lab,Labour,5328,#d50000,7,2,0,1,2,0,2 +E14001073,Barking,Barking,Nesil Caliskan,Lab,Labour,5180,#d50000,1,1,0,0,0,0,0 +E14001074,Barnsley North,Barnsley North,Dan Jarvis,Lab,Labour,4243,#d50000,3,1,0,1,0,0,1 +E14001075,Barnsley South,Barnsley South,Stephanie Peacock,Lab,Labour,4607,#d50000,4,2,0,0,1,0,1 +E14001076,Barrow and Furness,Barrow and Furness,Michelle Scrogham,Lab,Labour,5049,#d50000,20,11,0,4,3,0,2 +E14001077,Basildon and Billericay,Basildon and Billericay,Richard John Holden,Con,Conservative,4813,#0063ba,0,0,0,0,0,0,0 +E14001078,Basingstoke,Basingstoke,Luke Murphy,Lab,Labour,5248,#d50000,0,0,0,0,0,0,0 +E14001079,Bassetlaw,Bassetlaw,Jo White,Lab,Labour,5105,#d50000,18,1,0,8,2,1,6 +E14001080,Bath,Bath,Wera Hobhouse,LD,Liberal Democrat,4602,#faa01a,5,3,0,2,0,0,0 +E14001081,Battersea,Battersea,Marsha de Cordova,Lab,Labour,4676,#d50000,2,0,0,2,0,0,0 +E14001082,Beaconsfield,Beaconsfield,Joy Morrissey,Con,Conservative,4759,#0063ba,0,0,0,0,0,0,0 +E14001083,Beckenham and Penge,Beckenham and Penge,Liam Conlon,Lab,Labour,5132,#d50000,7,0,0,5,0,1,1 +E14001084,Bedford,Bedford,Mohammad Yasin,Lab,Labour,4598,#d50000,2,0,0,0,1,0,1 +E14001085,Bermondsey and Old Southwark,Bermondsey and Old Southwark,Neil Coyle,Lab,Labour,4368,#d50000,10,1,0,7,0,0,2 +E14001086,Bethnal Green and Stepney,Bethnal Green and Stepney,Rushanara Ali,Lab,Labour,4138,#d50000,15,1,0,8,3,0,3 +E14001087,Beverley and Holderness,Beverley and Holderness,Graham Stuart,Con,Conservative,1482,#0063ba,24,20,0,2,0,0,2 +E14001088,Bexhill and Battle,Bexhill and Battle,Kieran Mullan,Con,Conservative,4860,#0063ba,3,1,0,1,0,0,1 +E14001089,Bexleyheath and Crayford,Bexleyheath and Crayford,Daniel Francis,Lab,Labour,5184,#d50000,1,0,0,1,0,0,0 +E14001090,Bicester and Woodstock,Bicester and Woodstock,Calum Miller,LD,Liberal Democrat,5346,#faa01a,6,2,0,1,1,0,2 +E14001091,Birkenhead,Birkenhead,Alison McGovern,Lab,Labour,4083,#d50000,5,0,0,1,3,1,0 +E14001092,Birmingham Edgbaston,Birmingham Edgbaston,Preet Kaur Gill,Lab,Labour,4603,#d50000,2,0,0,1,1,0,0 +E14001093,Birmingham Erdington,Birmingham Erdington,Paulette Hamilton,Lab,Labour,4938,#d50000,0,0,0,0,0,0,0 +E14001094,Birmingham Hall Green and Moseley,Birmingham Hall Green and Moseley,Tahir Ali,Lab,Labour,4747,#d50000,5,0,0,2,1,1,1 +E14001095,Birmingham Hodge Hill and Solihull North,Birmingham Hodge Hill and Solihull North,Liam Byrne,Lab,Labour,1171,#d50000,1,1,0,0,0,0,0 +E14001096,Birmingham Ladywood,Birmingham Ladywood,Shabana Mahmood,Lab,Labour,3914,#d50000,15,0,0,5,4,0,6 +E14001097,Birmingham Northfield,Birmingham Northfield,Laurence Turner,Lab,Labour,5234,#d50000,3,0,0,1,1,0,1 +E14001098,Birmingham Perry Barr,Birmingham Perry Barr,Ayoub Khan,Ind,Independent,5357,#909090,4,0,0,1,1,0,2 +E14001099,Birmingham Selly Oak,Birmingham Selly Oak,Alistair Carns,Lab,Labour,5235,#d50000,0,0,0,0,0,0,0 +E14001100,Birmingham Yardley,Birmingham Yardley,Jess Phillips,Lab,Labour,4370,#d50000,2,0,0,0,1,0,1 +E14001101,Bishop Auckland,Bishop Auckland,Sam Rushworth,Lab,Labour,5108,#d50000,28,16,0,8,2,0,2 +E14001102,Blackburn,Blackburn,Adnan Hussain,Ind,Independent,5231,#909090,3,0,0,0,2,1,0 +E14001103,Blackley and Middleton South,Blackley and Middleton South,Graham Stringer,Lab,Labour,449,#d50000,4,0,0,3,1,0,0 +E14001104,Blackpool North and Fleetwood,Blackpool North and Fleetwood,Lorraine Beavers,Lab,Labour,5232,#d50000,2,0,0,0,1,0,1 +E14001105,Blackpool South,Blackpool South,Chris Webb,Lab,Labour,5025,#d50000,4,0,0,2,1,0,1 +E14001106,Blaydon and Consett,Blaydon and Consett,Liz Twist,Lab,Labour,4618,#d50000,4,1,1,0,0,0,2 +E14001107,Blyth and Ashington,Blyth and Ashington,Ian Lavery,Lab,Labour,4139,#d50000,4,0,0,3,1,0,0 +E14001108,Bognor Regis and Littlehampton,Bognor Regis and Littlehampton,Alison Griffiths,Con,Conservative,5203,#0063ba,3,0,0,2,0,0,1 +E14001109,Bolsover,Bolsover,Natalie Fleet,Lab,Labour,5053,#d50000,8,2,0,2,4,0,0 +E14001110,Bolton North East,Bolton North East,Kirith Entwistle,Lab,Labour,5095,#d50000,7,0,0,1,1,0,5 +E14001111,Bolton South and Walkden,Bolton South and Walkden,Yasmin Qureshi,Lab,Labour,3924,#d50000,2,0,0,1,0,0,1 +E14001112,Bolton West,Bolton West,Phil Brickell,Lab,Labour,5128,#d50000,2,0,0,0,1,0,1 +E14001113,Bootle,Bootle,Peter Dowd,Lab,Labour,4397,#d50000,2,0,0,0,2,0,0 +E14001114,Boston and Skegness,Boston and Skegness,Richard Tice,Ref,Ref,5161,#12b6cf,19,3,0,5,5,0,6 +E14001115,Bournemouth East,Bournemouth East,Tom Hayes,Lab,Labour,5210,#d50000,4,1,0,0,1,0,2 +E14001116,Bournemouth West,Bournemouth West,Jessica Toale,Lab,Labour,5202,#d50000,3,1,0,0,0,0,2 +E14001117,Bracknell,Bracknell,Peter Swallow,Lab,Labour,5165,#d50000,1,0,0,0,0,1,0 +E14001118,Bradford East,Bradford East,Imran Hussain,Lab,Labour,4394,#909090,4,0,0,1,1,0,2 +E14001119,Bradford South,Bradford South,Judith Cummins,Lab,Labour,4391,#d50000,2,0,1,0,1,0,0 +E14001120,Bradford West,Bradford West,Naz Shah,Lab,Labour,4409,#d50000,14,0,0,2,9,0,3 +E14001121,Braintree,Braintree,James Cleverly,Con,Conservative,4366,#0063ba,6,1,0,2,1,0,2 +E14001122,Brent East,Brent East,Dawn Butler,Lab,Labour,1489,#d50000,4,0,0,1,0,0,3 +E14001123,Brent West,Brent West,Barry Gardiner,Lab,Labour,146,#d50000,1,0,0,1,0,0,0 +E14001124,Brentford and Isleworth,Brentford and Isleworth,Ruth Cadbury,Lab,Labour,4389,#d50000,10,0,0,6,2,1,1 +E14001125,Brentwood and Ongar,Brentwood and Ongar,Alex Burghart,Con,Conservative,4613,#0063ba,9,1,0,4,0,1,3 +E14001126,Bridgwater,Bridgwater,Ashley Fox,Con,Conservative,5101,#0063ba,14,2,0,3,0,1,8 +E14001127,Bridlington and The Wolds,Bridlington and The Wolds,Charlie Dewhirst,Con,Conservative,5169,#0063ba,68,63,0,0,1,1,3 +E14001128,Brigg and Immingham,Brigg and Immingham,Martin Vickers,Con,Conservative,3957,#0063ba,15,8,0,4,0,0,3 +E14001129,Brighton Kemptown and Peacehaven,Brighton Kemptown and Peacehaven,Chris Ward,Lab,Labour,5276,#d50000,4,0,0,1,2,0,1 +E14001130,Brighton Pavilion,Brighton Pavilion,Siân Berry,Green,Green,5314,#78b82a,10,0,0,3,3,2,2 +E14001131,Bristol Central,Bristol Central,Carla Denyer,Green,Green,5102,#78b82a,5,2,0,2,1,0,0 +E14001132,Bristol East,Bristol East,Kerry McCarthy,Lab,Labour,1491,#d50000,3,0,0,1,0,1,1 +E14001133,Bristol North East,Bristol North East,Damien Egan,Lab,Labour,5010,#d50000,4,1,0,1,1,1,0 +E14001134,Bristol North West,Bristol North West,Darren Jones,Lab,Labour,4621,#d50000,3,0,0,1,0,0,2 +E14001135,Bristol South,Bristol South,Karin Smyth,Lab,Labour,4444,#d50000,1,0,0,1,0,0,0 +E14001136,Broadland and Fakenham,Broadland and Fakenham,Jerome Mayhew,Con,Conservative,4739,#0063ba,12,0,0,4,2,0,6 +E14001137,Bromley and Biggin Hill,Bromley and Biggin Hill,Peter Fortune,Con,Conservative,5209,#0063ba,14,1,0,12,1,0,0 +E14001138,Bromsgrove,Bromsgrove,Bradley Anthony Thomas,Con,Conservative,5186,#0063ba,8,1,0,2,1,1,3 +E14001139,Broxbourne,Broxbourne,Lewis Christopher Cocking,Con,Conservative,5050,#0063ba,5,2,0,0,2,1,0 +E14001140,Broxtowe,Broxtowe,Juliet Campbell,Lab,Labour,5058,#d50000,4,1,0,2,1,0,0 +E14001141,Buckingham and Bletchley,Buckingham and Bletchley,Callum Anderson,Lab,Labour,5193,#d50000,6,2,0,2,0,0,2 +E14001142,Burnley,Burnley,Oliver Ryan,Lab,Labour,5135,#d50000,8,0,0,4,4,0,0 +E14001143,Burton and Uttoxeter,Burton and Uttoxeter,Jacob Collier,Lab,Labour,5077,#d50000,2,0,0,1,1,0,0 +E14001144,Bury North,Bury North,James Frith,Lab,Labour,4637,#d50000,5,0,0,1,2,0,2 +E14001145,Bury South,Bury South,Christian Wakeford,Lab,Labour,4871,#d50000,4,0,0,0,1,0,3 +E14001146,Bury St Edmunds and Stowmarket,Bury St. Edmunds and Stowmarket,Peter Prinsley,Lab,Labour,5163,#d50000,7,2,0,3,0,0,2 +E14001147,Calder Valley,Calder Valley,Josh Fenton-Glynn,Lab,Labour,5295,#d50000,13,3,0,7,1,0,2 +E14001148,Camborne and Redruth,Camborne and Redruth,Perran Moon,Lab,Labour,5208,#d50000,17,10,0,6,0,0,1 +E14001149,Cambridge,Cambridge,Daniel Zeichner,Lab,Labour,4382,#d50000,3,0,0,2,0,0,1 +E14001150,Cannock Chase,Cannock Chase,Josh Newbury,Lab,Labour,5034,#d50000,0,0,0,0,0,0,0 +E14001151,Canterbury,Canterbury,Rosie Duffield,Lab,Labour,4616,#909090,9,4,0,5,0,0,0 +E14001152,Carlisle,Carlisle,Julie Minns,Lab,Labour,5094,#d50000,22,11,0,6,2,0,3 +E14001153,Carshalton and Wallington,Carshalton and Wallington,Bobby Dean,LD,Liberal Democrat,5083,#faa01a,5,0,0,4,0,0,1 +E14001154,Castle Point,Castle Point,Rebecca Harris,Con,Conservative,3948,#0063ba,0,0,0,0,0,0,0 +E14001155,Central Devon,Central Devon,Mel Stride,Con,Conservative,3935,#0063ba,51,39,0,3,2,0,7 +E14001156,Central Suffolk and North Ipswich,Central Suffolk and North Ipswich,Patrick Spencer,Con,Conservative,5303,#0063ba,16,1,0,10,0,1,4 +E14001157,Chatham and Aylesford,Chatham and Aylesford,Tristan Osborne,Lab,Labour,5220,#d50000,2,1,0,0,0,0,1 +E14001158,Cheadle,Cheadle,Tom Morrison,LD,Liberal Democrat,5090,#faa01a,0,0,0,0,0,0,0 +E14001159,Chelmsford,Chelmsford,Marie Goldman,LD,Liberal Democrat,5073,#faa01a,1,0,0,0,1,0,0 +E14001160,Chelsea and Fulham,Chelsea and Fulham,Ben Coleman,Lab,Labour,5344,#d50000,7,0,0,6,0,0,1 +E14001161,Cheltenham,Cheltenham,Max Wilkinson,LD,Liberal Democrat,5055,#faa01a,3,0,0,0,0,0,3 +E14001162,Chesham and Amersham,Chesham and Amersham,Sarah Green,LD,Liberal Democrat,4918,#faa01a,1,0,0,1,0,0,0 +E14001163,Chester North and Neston,Chester North and Neston,Samantha Dixon,Lab,Labour,4976,#d50000,2,0,0,1,0,0,1 +E14001164,Chester South and Eddisbury,Chester South and Eddisbury,Aphra Brandreth,Con,Conservative,5241,#0063ba,12,6,0,5,0,0,1 +E14001165,Chesterfield,Chesterfield,Toby Perkins,Lab,Labour,3952,#d50000,4,0,0,3,0,0,1 +E14001166,Chichester,Chichester,Jessica Brown-Fuller,LD,Liberal Democrat,5335,#faa01a,12,9,0,2,1,0,0 +E14001167,Chingford and Woodford Green,Chingford and Woodford Green,Iain Duncan Smith,Con,Conservative,152,#0063ba,6,0,0,4,1,0,1 +E14001168,Chippenham,Chippenham,Sarah Gibson,LD,Liberal Democrat,5239,#faa01a,5,2,0,3,0,0,0 +E14001169,Chipping Barnet,Chipping Barnet,Dan Tomlinson,Lab,Labour,5282,#d50000,1,0,0,0,0,0,1 +E14001170,Chorley,Chorley,Lindsay Hoyle,Spk,Speaker,467,#4d4d4d,3,1,0,1,0,0,1 +E14001171,Christchurch,Christchurch,Christopher Chope,Con,Conservative,242,#0063ba,9,8,0,0,0,0,1 +E14001172,Cities of London and Westminster,Cities of London and Westminster,Rachel Blake,Lab,Labour,5257,#d50000,20,0,0,10,1,0,9 +E14001173,City of Durham,City of Durham,Mary Kelly Foy,Lab,Labour,4753,#d50000,10,0,0,10,0,0,0 +E14001174,Clacton,Clacton,Nigel Farage,Ref,Ref,5091,#12b6cf,9,0,0,4,4,0,1 +E14001175,Clapham and Brixton Hill,Clapham and Brixton Hill,Bell Ribeiro-Addy,Lab,Labour,4764,#d50000,2,0,0,1,0,0,1 +E14001176,Colchester,Colchester,Pam Cox,Lab,Labour,5042,#d50000,3,1,0,2,0,0,0 +E14001177,Colne Valley,Colne Valley,Paul Davies,Lab,Labour,5317,#d50000,8,1,0,5,0,0,2 +E14001178,Congleton,Congleton,Sarah Alison Russell,Lab,Labour,5324,#d50000,4,1,0,1,1,0,1 +E14001179,Corby and East Northamptonshire,Corby and East Northamptonshire,Lee Barron,Lab,Labour,5315,#d50000,12,1,0,4,0,0,7 +E14001180,Coventry East,Coventry East,Mary Creagh,Lab,Labour,1579,#d50000,0,0,0,0,0,0,0 +E14001181,Coventry North West,Coventry North West,Taiwo Owatemi,Lab,Labour,4779,#d50000,2,1,0,0,1,0,0 +E14001182,Coventry South,Coventry South,Zarah Sultana,Lab,Labour,4786,#909090,8,0,0,3,2,1,2 +E14001183,Cramlington and Killingworth,Cramlington and Killingworth,Emma Foody,Lab,Labour,5029,#d50000,6,0,0,3,1,1,1 +E14001184,Crawley,Crawley,Peter Lamb,Lab,Labour,5345,#d50000,0,0,0,0,0,0,0 +E14001185,Crewe and Nantwich,Crewe and Nantwich,Connor Naismith,Lab,Labour,5273,#d50000,4,1,0,1,0,1,1 +E14001186,Croydon East,Croydon East,Natasha Dawn Irons,Lab,Labour,5119,#d50000,3,0,0,2,1,0,0 +E14001187,Croydon South,Croydon South,Chris Philp,Con,Conservative,4503,#0063ba,2,1,0,0,0,0,1 +E14001188,Croydon West,Croydon West,Sarah Jones,Lab,Labour,4631,#d50000,8,0,0,4,1,0,3 +E14001189,Dagenham and Rainham,Dagenham and Rainham,Margaret Mullane,Lab,Labour,5272,#d50000,2,0,0,2,0,0,0 +E14001190,Darlington,Darlington,Lola McEvoy,Lab,Labour,5037,#d50000,4,0,0,1,2,0,1 +E14001191,Dartford,Dartford,Jim Dickson,Lab,Labour,5223,#d50000,2,2,0,0,0,0,0 +E14001192,Daventry,Daventry,Stuart Andrew,Con,Conservative,4032,#0063ba,15,2,0,8,0,0,5 +E14001193,Derby North,Derby North,Catherine Atkinson,Lab,Labour,5143,#d50000,3,0,0,3,0,0,0 +E14001194,Derby South,Derby South,Baggy Shanker,Lab,Labour,5176,#d50000,2,0,0,0,1,0,1 +E14001195,Derbyshire Dales,Derbyshire Dales,John Whitby,Lab,Labour,5342,#d50000,9,3,0,2,0,0,4 +E14001196,Dewsbury and Batley,Dewsbury and Batley,Iqbal Hussain Mohamed,Ind,Independent,5268,#909090,2,0,0,0,2,0,0 +E14001197,Didcot and Wantage,Didcot and Wantage,Olly Glover,LD,Liberal Democrat,5318,#faa01a,9,7,0,1,0,0,1 +E14001198,Doncaster Central,Doncaster Central,Sally Jameson,Lab,Labour,5178,#d50000,8,3,0,1,2,0,2 +E14001199,Doncaster East and the Isle of Axholme,Doncaster East and the Isle of Axholme,Lee Pitcher,Lab,Labour,5233,#d50000,8,4,0,0,3,0,1 +E14001200,Doncaster North,Doncaster North,Ed Miliband,Lab,Labour,1510,#d50000,12,4,0,1,3,0,4 +E14001201,Dorking and Horley,Dorking and Horley,Chris Coghlan,LD,Liberal Democrat,5198,#faa01a,7,2,0,3,0,0,2 +E14001202,Dover and Deal,Dover and Deal,Mike Tapp,Lab,Labour,5266,#d50000,11,3,0,5,2,0,1 +E14001203,Droitwich and Evesham,Droitwich and Evesham,Nigel Huddleston,Con,Conservative,4407,#0063ba,16,4,0,4,0,1,7 +E14001204,Dudley,Dudley,Sonia Kumar,Lab,Labour,5274,#d50000,3,1,0,0,0,0,2 +E14001205,Dulwich and West Norwood,Dulwich and West Norwood,Helen Hayes,Lab,Labour,4510,#d50000,8,0,0,6,1,0,1 +E14001206,Dunstable and Leighton Buzzard,Dunstable and Leighton Buzzard,Alex Mayer,Lab,Labour,5141,#d50000,1,0,0,1,0,0,0 +E14001207,Ealing Central and Acton,Ealing Central and Acton,Rupa Huq,Lab,Labour,4511,#d50000,10,0,0,3,5,1,1 +E14001208,Ealing North,Ealing North,James Murray,Lab,Labour,4797,#d50000,4,1,0,2,1,0,0 +E14001209,Ealing Southall,Ealing Southall,Deirdre Costigan,Lab,Labour,5075,#d50000,6,1,0,3,2,0,0 +E14001210,Earley and Woodley,Earley and Woodley,Yuan Yang,Lab,Labour,5267,#d50000,2,2,0,0,0,0,0 +E14001211,Easington,Easington,Grahame Morris,Lab,Labour,3973,#d50000,1,0,0,0,1,0,0 +E14001212,East Grinstead and Uckfield,East Grinstead and Uckfield,Mims Davies,Con,Conservative,4513,#0063ba,4,1,0,2,0,1,0 +E14001213,East Ham,East Ham,Stephen Timms,Lab,Labour,163,#d50000,3,0,0,3,0,0,0 +E14001214,East Hampshire,East Hampshire,Damian Hinds,Con,Conservative,3969,#0063ba,4,3,0,1,0,0,0 +E14001215,East Surrey,East Surrey,Claire Coutinho,Con,Conservative,4806,#0063ba,3,0,0,2,0,0,1 +E14001216,East Thanet,East Thanet,Polly Billington,Lab,Labour,5123,#d50000,8,2,0,3,1,0,2 +E14001217,East Wiltshire,East Wiltshire,Danny Kruger,Con,Conservative,4858,#0063ba,80,74,0,3,0,1,2 +E14001218,East Worthing and Shoreham,East Worthing and Shoreham,Tom Rutland,Lab,Labour,5222,#d50000,2,0,0,0,1,0,1 +E14001219,Eastbourne,Eastbourne,Josh Babarinde,LD,Liberal Democrat,5086,#faa01a,7,2,0,5,0,0,0 +E14001220,Eastleigh,Eastleigh,Liz Jarvis,LD,Liberal Democrat,5040,#faa01a,0,0,0,0,0,0,0 +E14001221,Edmonton and Winchmore Hill,Edmonton and Winchmore Hill,Kate Osamor,Lab,Labour,4515,#d50000,9,0,0,2,5,1,1 +E14001222,Ellesmere Port and Bromborough,Ellesmere Port and Bromborough,Justin Madders,Lab,Labour,4418,#d50000,2,0,0,1,0,0,1 +E14001223,Eltham and Chislehurst,Eltham and Chislehurst,Clive Efford,Lab,Labour,165,#d50000,5,1,0,2,1,0,1 +E14001224,Ely and East Cambridgeshire,Ely and East Cambridgeshire,Charlotte Cane,LD,Liberal Democrat,5182,#faa01a,11,6,0,2,2,0,1 +E14001225,Enfield North,Enfield North,Feryal Clark,Lab,Labour,4822,#d50000,10,1,0,5,2,1,1 +E14001226,Epping Forest,Epping Forest,Neil Hudson,Con,Conservative,4853,#0063ba,8,2,0,2,4,0,0 +E14001227,Epsom and Ewell,Epsom and Ewell,Helen Maguire,LD,Liberal Democrat,5336,#faa01a,3,0,0,0,2,1,0 +E14001228,Erewash,Erewash,Adam Thompson,Lab,Labour,5044,#d50000,4,0,0,1,2,0,1 +E14001229,Erith and Thamesmead,Erith and Thamesmead,Abena Oppong-Asare,Lab,Labour,4820,#d50000,1,0,0,1,0,0,0 +E14001230,Esher and Walton,Esher and Walton,Monica Harding,LD,Liberal Democrat,5299,#faa01a,1,0,0,1,0,0,0 +E14001231,Exeter,Exeter,Steve Race,Lab,Labour,5064,#d50000,7,3,0,2,0,0,2 +E14001232,Exmouth and Exeter East,Exmouth and Exeter East,David George Reed,Con,Conservative,5347,#0063ba,12,7,0,3,0,1,1 +E14001233,Fareham and Waterlooville,Fareham and Waterlooville,Suella Braverman,Con,Conservative,4475,#0063ba,2,0,0,2,0,0,0 +E14001234,Farnham and Bordon,Farnham and Bordon,Gregory Stafford,Con,Conservative,5351,#0063ba,4,4,0,0,0,0,0 +E14001235,Faversham and Mid Kent,Faversham and Mid Kent,Helen Whately,Con,Conservative,4527,#0063ba,12,2,0,4,1,0,5 +E14001236,Feltham and Heston,Feltham and Heston,Seema Malhotra,Lab,Labour,4253,#d50000,13,2,0,9,1,0,1 +E14001237,Filton and Bradley Stoke,Filton and Bradley Stoke,Claire Hazelgrove,Lab,Labour,5306,#d50000,3,1,0,1,0,1,0 +E14001238,Finchley and Golders Green,Finchley and Golders Green,Sarah Sackman,Lab,Labour,5204,#d50000,6,0,0,3,1,0,2 +E14001239,Folkestone and Hythe,Folkestone and Hythe,Tony Vaughan,Lab,Labour,5067,#d50000,8,1,0,7,0,0,0 +E14001240,Forest of Dean,Forest of Dean,Matt Bishop,Lab,Labour,5323,#d50000,16,8,0,4,0,0,4 +E14001241,Frome and East Somerset,Frome and East Somerset,Anna Sabine,LD,Liberal Democrat,5286,#faa01a,23,10,0,4,1,0,8 +E14001242,Fylde,Fylde,Andrew Snowden,Con,Conservative,5072,#0063ba,0,0,0,0,0,0,0 +E14001243,Gainsborough,Gainsborough,Sir Edward Leigh,Con,Conservative,345,#0063ba,25,7,0,7,3,0,8 +E14001244,Gateshead Central and Whickham,Gateshead Central and Whickham,Mark Ferguson,Lab,Labour,5031,#d50000,6,2,0,2,1,0,1 +E14001245,Gedling,Gedling,Michael Payne,Lab,Labour,5146,#d50000,3,1,0,0,1,0,1 +E14001246,Gillingham and Rainham,Gillingham and Rainham,Naushabah Khan,Lab,Labour,5215,#d50000,5,0,0,2,3,0,0 +E14001247,Glastonbury and Somerton,Glastonbury and Somerton,Sarah Joanne Dyke,LD,Liberal Democrat,4995,#faa01a,19,4,0,5,0,1,9 +E14001248,Gloucester,Gloucester,Alex McIntyre,Lab,Labour,5349,#d50000,13,1,0,10,1,0,1 +E14001249,Godalming and Ash,Godalming and Ash,Jeremy Hunt,Con,Conservative,1572,#0063ba,1,1,0,0,0,0,0 +E14001250,Goole and Pocklington,Goole and Pocklington,David Davis,Con,Conservative,373,#0063ba,12,6,0,1,1,0,4 +E14001251,Gorton and Denton,Gorton and Denton,Andrew Gwynne,Lab,Labour,1506,#d50000,2,0,0,1,0,0,1 +E14001252,Gosport,Gosport,Caroline Dinenage,Con,Conservative,4008,#0063ba,12,3,0,6,3,0,0 +E14001253,Grantham and Bourne,Grantham and Bourne,Gareth Davies,Con,Conservative,4850,#0063ba,20,5,0,5,1,2,7 +E14001254,Gravesham,Gravesham,Lauren Sullivan,Lab,Labour,5269,#d50000,0,0,0,0,0,0,0 +E14001255,Great Grimsby and Cleethorpes,Great Grimsby and Cleethorpes,Melanie Onn,Lab,Labour,4464,#d50000,9,0,0,2,6,0,1 +E14001256,Great Yarmouth,Great Yarmouth,Rupert Lowe,Ref,Ref,5158,#12b6cf,17,1,0,5,4,0,7 +E14001257,Greenwich and Woolwich,Greenwich and Woolwich,Matthew Pennycook,Lab,Labour,4520,#d50000,12,0,0,6,4,1,1 +E14001258,Guildford,Guildford,Zöe Franklin,LD,Liberal Democrat,5313,#faa01a,3,0,0,1,0,1,1 +E14001259,Hackney North and Stoke Newington,Hackney North and Stoke Newington,Diane Abbott,Lab,Labour,172,#d50000,14,0,0,7,0,0,7 +E14001260,Hackney South and Shoreditch,Hackney South and Shoreditch,Meg Hillier,Lab,Labour,1524,#d50000,20,0,0,12,4,0,4 +E14001261,Halesowen,Halesowen,Alex Ballinger,Lab,Labour,5238,#d50000,1,0,0,1,0,0,0 +E14001262,Halifax,Halifax,Kate Alexandra Dearden,Lab,Labour,5224,#d50000,10,2,0,5,1,0,2 +E14001263,Hamble Valley,Hamble Valley,Paul Holmes,Con,Conservative,4803,#0063ba,2,1,0,1,0,0,0 +E14001264,Hammersmith and Chiswick,Hammersmith and Chiswick,Andy Slaughter,Lab,Labour,1516,#d50000,15,0,0,13,1,1,0 +E14001265,Hampstead and Highgate,Hampstead and Highgate,Tulip Siddiq,Lab,Labour,4518,#d50000,13,0,0,7,1,0,5 +E14001266,"Harborough, Oadby and Wigston","Harborough, Oadby and Wigston",Neil O'Brien,Con,Conservative,4679,#0063ba,5,0,0,0,0,0,5 +E14001267,Harlow,Harlow,Christopher John Vince,Lab,Labour,5237,#d50000,4,1,0,0,2,0,1 +E14001268,Harpenden and Berkhamsted,Harpenden and Berkhamsted,Victoria Collins,LD,Liberal Democrat,5201,#faa01a,2,0,0,1,0,1,0 +E14001269,Harrogate and Knaresborough,Harrogate and Knaresborough,Tom Gordon,LD,Liberal Democrat,5032,#faa01a,2,0,0,1,0,1,0 +E14001270,Harrow East,Harrow East,Bob Blackman,Con,Conservative,4005,#0063ba,13,2,0,9,0,1,1 +E14001271,Harrow West,Harrow West,Gareth Thomas,Lab,Labour,177,#d50000,3,1,0,2,0,0,0 +E14001272,Hartlepool,Hartlepool,Jonathan Brash,Lab,Labour,5045,#d50000,9,2,0,0,4,0,3 +E14001273,Harwich and North Essex,Harwich and North Essex,Bernard Jenkin,Con,Conservative,40,#0063ba,10,4,0,5,1,0,0 +E14001274,Hastings and Rye,Hastings and Rye,Helena Dollimore,Lab,Labour,5192,#d50000,16,0,0,9,1,0,6 +E14001275,Havant,Havant,Alan Mak,Con,Conservative,4484,#0063ba,3,1,0,0,1,0,1 +E14001276,Hayes and Harlington,Hayes and Harlington,John McDonnell,Lab,Labour,178,#909090,22,0,0,16,5,0,1 +E14001277,Hazel Grove,Hazel Grove,Lisa Smart,LD,Liberal Democrat,5070,#faa01a,3,0,0,1,0,0,2 +E14001278,Hemel Hempstead,Hemel Hempstead,David Taylor,Lab,Labour,5348,#d50000,0,0,0,0,0,0,0 +E14001279,Hendon,Hendon,David Pinto-Duschinsky,Lab,Labour,5360,#d50000,2,0,0,1,0,0,1 +E14001280,Henley and Thame,Henley and Thame,Freddie Van Mierlo,LD,Liberal Democrat,5296,#faa01a,10,6,0,3,0,1,0 +E14001281,Hereford and South Herefordshire,Hereford and South Herefordshire,Jesse Norman,Con,Conservative,3991,#0063ba,25,8,0,6,1,0,10 +E14001282,Herne Bay and Sandwich,Herne Bay and Sandwich,Roger Gale,Con,Conservative,87,#0063ba,8,3,0,0,0,0,5 +E14001283,Hertford and Stortford,Hertford and Stortford,Josh Dean,Lab,Labour,5187,#d50000,4,0,0,1,1,2,0 +E14001284,Hertsmere,Hertsmere,Oliver Dowden,Con,Conservative,4441,#0063ba,0,0,0,0,0,0,0 +E14001285,Hexham,Hexham,Joe Morris,Lab,Labour,5081,#d50000,41,28,1,11,0,0,1 +E14001286,Heywood and Middleton North,Heywood and Middleton North,Elsie Blundell,Lab,Labour,5084,#d50000,9,0,0,2,2,0,5 +E14001287,High Peak,High Peak,Jonathan Brian Pearce,Lab,Labour,5115,#d50000,7,3,0,3,0,0,1 +E14001288,Hinckley and Bosworth,Hinckley and Bosworth,Luke Evans,Con,Conservative,4781,#0063ba,5,0,0,0,3,0,2 +E14001289,Hitchin,Hitchin,Alistair Strathern,Lab,Labour,5000,#d50000,4,0,0,2,1,0,1 +E14001290,Holborn and St Pancras,Holborn and St. Pancras,Keir Starmer,Lab,Labour,4514,#d50000,20,0,0,10,0,0,10 +E14001291,Honiton and Sidmouth,Honiton and Sidmouth,Richard Foord,LD,Liberal Democrat,4942,#faa01a,17,12,0,2,1,0,2 +E14001292,Hornchurch and Upminster,Hornchurch and Upminster,Julia Lopez,Con,Conservative,4647,#0063ba,8,2,0,6,0,0,0 +E14001293,Hornsey and Friern Barnet,Hornsey and Friern Barnet,Catherine West,Lab,Labour,4523,#d50000,2,0,0,1,1,0,0 +E14001294,Horsham,Horsham,John Milne,LD,Liberal Democrat,5329,#faa01a,7,2,0,2,1,0,2 +E14001295,Houghton and Sunderland South,Houghton and Sunderland South,Bridget Phillipson,Lab,Labour,4046,#d50000,1,1,0,0,0,0,0 +E14001296,Hove and Portslade,Hove and Portslade,Peter Kyle,Lab,Labour,4505,#d50000,5,0,0,1,2,0,2 +E14001297,Huddersfield,Huddersfield,Harpreet Uppal,Lab,Labour,5289,#d50000,8,0,0,2,2,0,4 +E14001298,Huntingdon,Huntingdon,Ben Obese-Jecty,Con,Conservative,5089,#0063ba,5,0,0,0,0,0,5 +E14001299,Hyndburn,Hyndburn,Sarah Smith,Lab,Labour,5117,#d50000,7,0,0,2,2,0,3 +E14001300,Ilford North,Ilford North,Wes Streeting,Lab,Labour,4504,#d50000,0,0,0,0,0,0,0 +E14001301,Ilford South,Ilford South,Jas Athwal,Lab,Labour,5227,#d50000,6,0,0,4,2,0,0 +E14001302,Ipswich,Ipswich,Jack Simon Abbott,Lab,Labour,5131,#d50000,1,0,0,1,0,0,0 +E14001303,Isle of Wight East,Isle of Wight East,Joe Robertson,Con,Conservative,5255,#0063ba,11,1,0,2,3,0,5 +E14001304,Isle of Wight West,Isle of Wight West,Richard Quigley,Lab,Labour,5144,#d50000,17,1,0,6,4,2,4 +E14001305,Islington North,Islington North,Jeremy Corbyn,Ind,Independent,185,#909090,6,0,0,2,3,0,1 +E14001306,Islington South and Finsbury,Islington South and Finsbury,Emily Thornberry,Lab,Labour,1536,#d50000,24,0,0,10,7,0,7 +E14001307,Jarrow and Gateshead East,Jarrow and Gateshead East,Kate Osborne,Lab,Labour,4783,#d50000,4,0,0,1,1,0,2 +E14001308,Keighley and Ilkley,Keighley and Ilkley,Robbie Moore,Con,Conservative,4861,#0063ba,5,0,0,2,1,1,1 +E14001309,Kenilworth and Southam,Kenilworth and Southam,Jeremy Wright,Con,Conservative,1560,#0063ba,21,7,0,0,2,3,9 +E14001310,Kensington and Bayswater,Kensington and Bayswater,Joe Powell,Lab,Labour,5229,#d50000,36,0,0,29,2,1,4 +E14001311,Kettering,Kettering,Rosie Wrighting,Lab,Labour,5331,#d50000,2,0,0,2,0,0,0 +E14001312,Kingston and Surbiton,Kingston and Surbiton,Ed Davey,LD,Liberal Democrat,188,#faa01a,7,0,0,4,2,0,1 +E14001313,Kingston upon Hull East,Kingston upon Hull East,Karl Turner,Lab,Labour,4030,#d50000,0,0,0,0,0,0,0 +E14001314,Kingston upon Hull North and Cottingham,Kingston upon Hull North and Cottingham,Diana Johnson,Lab,Labour,1533,#d50000,3,1,0,0,1,1,0 +E14001315,Kingston upon Hull West and Haltemprice,Kingston upon Hull West and Haltemprice,Emma Hardy,Lab,Labour,4645,#d50000,3,1,0,1,1,0,0 +E14001316,Kingswinford and South Staffordshire,Kingswinford and South Staffordshire,Mike Wood,Con,Conservative,4384,#0063ba,5,0,0,4,1,0,0 +E14001317,Knowsley,Knowsley,Anneliese Midgley,Lab,Labour,5038,#d50000,2,0,0,0,1,0,1 +E14001318,Lancaster and Wyre,Lancaster and Wyre,Cat Smith,Lab,Labour,4436,#d50000,7,2,0,3,0,0,2 +E14001319,Leeds Central and Headingley,Leeds Central and Headingley,Alex Sobel,Lab,Labour,4658,#d50000,6,3,0,1,2,0,0 +E14001320,Leeds East,Leeds East,Richard Burgon,Lab,Labour,4493,#909090,1,0,0,1,0,0,0 +E14001321,Leeds North East,Leeds North East,Fabian Hamilton,Lab,Labour,415,#d50000,2,0,0,0,2,0,0 +E14001322,Leeds North West,Leeds North West,Katie White,Lab,Labour,5260,#d50000,3,1,0,0,0,1,1 +E14001323,Leeds South,Leeds South,Hilary Benn,Lab,Labour,413,#d50000,8,0,0,4,2,0,2 +E14001324,Leeds South West and Morley,Leeds South West and Morley,Mark Sewards,Lab,Labour,5166,#d50000,3,1,1,1,0,0,0 +E14001325,Leeds West and Pudsey,Leeds West and Pudsey,Rachel Reeves,Lab,Labour,4031,#d50000,0,0,0,0,0,0,0 +E14001326,Leicester East,Leicester East,Shivani Raja,Con,Conservative,5068,#0063ba,2,0,0,2,0,0,0 +E14001327,Leicester South,Leicester South,Shockat Adam,Ind,Independent,5120,#909090,11,0,0,5,3,0,3 +E14001328,Leicester West,Leicester West,Liz Kendall,Lab,Labour,4026,#d50000,3,0,0,1,1,0,1 +E14001329,Leigh and Atherton,Leigh and Atherton,Jo Platt,Lab,Labour,4673,#d50000,3,0,0,1,2,0,0 +E14001330,Lewes,Lewes,James MacCleary,LD,Liberal Democrat,5265,#faa01a,11,6,0,2,0,1,2 +E14001331,Lewisham East,Lewisham East,Janet Daby,Lab,Labour,4698,#d50000,4,0,0,3,0,0,1 +E14001332,Lewisham North,Lewisham North,Vicky Foxcroft,Lab,Labour,4491,#d50000,16,0,0,14,1,0,1 +E14001333,Lewisham West and East Dulwich,Lewisham West and East Dulwich,Ellie Reeves,Lab,Labour,4620,#d50000,5,0,0,2,1,1,1 +E14001334,Leyton and Wanstead,Leyton and Wanstead,Calvin Bailey,Lab,Labour,5054,#d50000,13,0,0,7,1,1,4 +E14001335,Lichfield,Lichfield,Dave Robertson,Lab,Labour,5126,#d50000,6,4,0,2,0,0,0 +E14001336,Lincoln,Lincoln,Hamish Falconer,Lab,Labour,5148,#d50000,14,1,0,3,6,0,4 +E14001337,Liverpool Garston,Liverpool Garston,Maria Eagle,Lab,Labour,483,#d50000,2,0,0,1,0,0,1 +E14001338,Liverpool Riverside,Liverpool Riverside,Kim Johnson,Lab,Labour,4824,#d50000,10,0,0,1,3,2,4 +E14001339,Liverpool Walton,Liverpool Walton,Dan Carden,Lab,Labour,4651,#d50000,2,0,0,0,1,0,1 +E14001340,Liverpool Wavertree,Liverpool Wavertree,Paula Barker,Lab,Labour,4828,#d50000,6,0,0,1,1,0,4 +E14001341,Liverpool West Derby,Liverpool West Derby,Ian Byrne,Lab,Labour,4831,#909090,4,0,0,0,3,0,1 +E14001342,Loughborough,Loughborough,Jeevun Sandher,Lab,Labour,5259,#d50000,9,0,0,5,2,1,1 +E14001343,Louth and Horncastle,Louth and Horncastle,Victoria Atkins,Con,Conservative,4399,#0063ba,45,12,0,8,6,0,19 +E14001344,Lowestoft,Lowestoft,Jessica Asato,Lab,Labour,5156,#d50000,6,0,0,2,1,0,3 +E14001345,Luton North,Luton North,Sarah Owen,Lab,Labour,4777,#d50000,0,0,0,0,0,0,0 +E14001346,Luton South and South Bedfordshire,Luton South and South Bedfordshire,Rachel Hopkins,Lab,Labour,4873,#d50000,4,1,0,0,3,0,0 +E14001347,Macclesfield,Macclesfield,Tim Roca,Lab,Labour,5287,#d50000,5,2,0,0,0,0,3 +E14001348,Maidenhead,Maidenhead,Joshua Peter Reynolds,LD,Liberal Democrat,5343,#faa01a,3,0,0,1,1,1,0 +E14001349,Maidstone and Malling,Maidstone and Malling,Helen Grant,Con,Conservative,4018,#0063ba,4,0,0,2,1,0,1 +E14001350,Makerfield,Makerfield,Josh Simons,Lab,Labour,5060,#d50000,2,0,0,2,0,0,0 +E14001351,Maldon,Maldon,John Whittingdale,Con,Conservative,39,#0063ba,5,0,0,1,2,1,1 +E14001352,Manchester Central,Manchester Central,Lucy Powell,Lab,Labour,4263,#d50000,7,0,0,1,0,0,6 +E14001353,Manchester Rusholme,Manchester Rusholme,Afzal Khan,Lab,Labour,4671,#d50000,3,0,0,1,0,0,2 +E14001354,Manchester Withington,Manchester Withington,Jeff Smith,Lab,Labour,4456,#d50000,4,0,0,0,0,0,4 +E14001355,Mansfield,Mansfield,Steve Yemm,Lab,Labour,5194,#d50000,3,1,0,0,1,0,1 +E14001356,Melksham and Devizes,Melksham and Devizes,Brian Mathew,LD,Liberal Democrat,5214,#faa01a,20,14,0,4,0,0,2 +E14001357,Melton and Syston,Melton and Syston,Edward Argar,Con,Conservative,4362,#0063ba,19,0,0,1,1,0,17 +E14001358,Meriden and Solihull East,Meriden and Solihull East,Saqib Bhatti,Con,Conservative,4818,#0063ba,1,0,0,1,0,0,0 +E14001359,Mid Bedfordshire,Mid Bedfordshire,Blake Stephenson,Con,Conservative,5100,#0063ba,8,2,0,2,0,0,4 +E14001360,Mid Buckinghamshire,Mid Buckinghamshire,Greg Smith,Con,Conservative,4778,#0063ba,10,5,0,2,0,1,2 +E14001361,Mid Cheshire,Mid Cheshire,Andrew Graham Cooper,Lab,Labour,5195,#d50000,3,0,0,0,2,0,1 +E14001362,Mid Derbyshire,Mid Derbyshire,Jonathan Peter Tom Davies,Lab,Labour,5256,#d50000,8,0,0,5,1,0,2 +E14001363,Mid Dorset and North Poole,Mid Dorset and North Poole,Vikki Slade,LD,Liberal Democrat,5327,#faa01a,24,23,0,1,0,0,0 +E14001364,Mid Leicestershire,Mid Leicestershire,Peter Bedford,Con,Conservative,5330,#0063ba,4,1,0,2,0,0,1 +E14001365,Mid Norfolk,Mid Norfolk,George Freeman,Con,Conservative,4020,#0063ba,18,3,0,4,1,0,10 +E14001366,Mid Sussex,Mid Sussex,Alison Bennett,LD,Liberal Democrat,5283,#faa01a,2,0,0,0,1,0,1 +E14001368,Middlesbrough South and East Cleveland,Middlesbrough South and East Cleveland,Luke Myer,Lab,Labour,5147,#d50000,9,6,0,1,1,1,0 +E14001367,Middlesbrough and Thornaby East,Middlesbrough and Thornaby East,Andy McDonald,Lab,Labour,4269,#d50000,2,0,0,0,2,0,0 +E14001369,Milton Keynes Central,Milton Keynes Central,Emily Darlington,Lab,Labour,5139,#d50000,0,0,0,0,0,0,0 +E14001370,Milton Keynes North,Milton Keynes North,Chris Curtis,Lab,Labour,5118,#d50000,5,3,0,0,1,0,1 +E14001371,Mitcham and Morden,Mitcham and Morden,Siobhain McDonagh,Lab,Labour,193,#d50000,9,1,0,7,1,0,0 +E14001372,Morecambe and Lunesdale,Morecambe and Lunesdale,Lizzi Collinge,Lab,Labour,5225,#d50000,15,4,0,6,3,0,2 +E14001373,New Forest East,New Forest East,Julian Lewis,Con,Conservative,54,#0063ba,4,2,0,0,0,0,2 +E14001374,New Forest West,New Forest West,Desmond Swayne,Con,Conservative,55,#0063ba,7,6,0,1,0,0,0 +E14001375,Newark,Newark,Robert Jenrick,Con,Conservative,4320,#0063ba,32,6,0,12,2,0,12 +E14001376,Newbury,Newbury,Lee Raymond James Dillon,LD,Liberal Democrat,5310,#faa01a,9,2,0,3,0,2,2 +E14001377,Newcastle upon Tyne Central and West,Newcastle upon Tyne Central and West,Chi Onwurah,Lab,Labour,4124,#d50000,9,1,0,3,0,2,3 +E14001378,Newcastle upon Tyne East and Wallsend,Newcastle upon Tyne East and Wallsend,Mary Glindon,Lab,Labour,4126,#d50000,6,0,0,1,1,0,4 +E14001379,Newcastle upon Tyne North,Newcastle upon Tyne North,Catherine McKinnell,Lab,Labour,4125,#d50000,0,0,0,0,0,0,0 +E14001380,Newcastle-under-Lyme,Newcastle-under-Lyme,Adam Jogee,Lab,Labour,5168,#d50000,1,0,0,1,0,0,0 +E14001381,Newton Abbot,Newton Abbot,Martin Wrigley,LD,Liberal Democrat,5111,#faa01a,9,3,0,3,0,2,1 +E14001382,Newton Aycliffe and Spennymoor,Newton Aycliffe and Spennymoor,Alan Strickland,Lab,Labour,5080,#d50000,6,0,0,4,1,1,0 +E14001383,Normanton and Hemsworth,Normanton and Hemsworth,Jon Trickett,Lab,Labour,410,#d50000,6,4,0,2,0,0,0 +E14001384,North Bedfordshire,North Bedfordshire,Richard Fuller,Con,Conservative,3912,#0063ba,15,6,0,1,0,2,6 +E14001385,North Cornwall,North Cornwall,Ben Maguire,LD,Liberal Democrat,5350,#faa01a,56,33,0,13,1,0,9 +E14001386,North Cotswolds,North Cotswolds,Geoffrey Clifton-Brown,Con,Conservative,249,#0063ba,25,15,0,5,1,0,4 +E14001387,North Devon,North Devon,Ian Roome,LD,Liberal Democrat,5138,#faa01a,36,17,0,5,1,0,13 +E14001388,North Dorset,North Dorset,Simon Hoare,Con,Conservative,4494,#0063ba,67,61,0,5,0,0,1 +E14001389,North Durham,North Durham,Luke Akehurst,Lab,Labour,5112,#d50000,4,1,0,2,1,0,0 +E14001390,North East Cambridgeshire,North East Cambridgeshire,Steve Barclay,Con,Conservative,4095,#0063ba,12,5,0,0,5,0,2 +E14001391,North East Derbyshire,North East Derbyshire,Louise Jones,Lab,Labour,5258,#d50000,4,1,0,1,2,0,0 +E14001392,North East Hampshire,North East Hampshire,Alex Brewer,LD,Liberal Democrat,5263,#faa01a,3,0,0,1,0,2,0 +E14001393,North East Hertfordshire,North East Hertfordshire,Chris Hinchliff,Lab,Labour,5244,#d50000,13,5,0,3,0,1,4 +E14001394,North East Somerset and Hanham,North East Somerset and Hanham,Dan Norris,Lab,Labour,221,#d50000,5,2,0,0,3,0,0 +E14001395,North Herefordshire,North Herefordshire,Ellie Chowns,Green,Green,5249,#78b82a,29,10,0,8,1,0,10 +E14001396,North Norfolk,North Norfolk,Steffan Aquarone,LD,Liberal Democrat,5164,#faa01a,17,2,0,6,2,1,6 +E14001397,North Northumberland,North Northumberland,David Smith,Lab,Labour,5218,#d50000,88,71,0,13,3,1,0 +E14001398,North Shropshire,North Shropshire,Helen Morgan,LD,Liberal Democrat,4934,#faa01a,14,6,0,6,0,0,2 +E14001399,North Somerset,North Somerset,Sadik Al-Hassan,Lab,Labour,5312,#d50000,7,3,0,2,0,0,2 +E14001400,North Warwickshire and Bedworth,North Warwickshire and Bedworth,Rachel Margaret Taylor,Lab,Labour,5065,#d50000,12,3,0,8,0,0,1 +E14001401,North West Cambridgeshire,North West Cambridgeshire,Sam Carling,Lab,Labour,5308,#d50000,11,3,0,2,0,0,6 +E14001402,North West Essex,North West Essex,Kemi Badenoch,Con,Conservative,4597,#0063ba,9,2,0,3,0,1,3 +E14001403,North West Hampshire,North West Hampshire,Kit Malthouse,Con,Conservative,4495,#0063ba,2,1,0,0,0,1,0 +E14001404,North West Leicestershire,North West Leicestershire,Amanda Hack,Lab,Labour,5149,#d50000,6,0,0,2,0,0,4 +E14001405,North West Norfolk,North West Norfolk,James Wild,Con,Conservative,4787,#0063ba,22,3,0,7,1,0,11 +E14001406,Northampton North,Northampton North,Lucy Rigby,Lab,Labour,5333,#d50000,1,0,0,1,0,0,0 +E14001407,Northampton South,Northampton South,Mike Reader,Lab,Labour,5316,#d50000,2,1,0,0,1,0,0 +E14001408,Norwich North,Norwich North,Alice Macdonald,Lab,Labour,5133,#d50000,1,0,0,0,1,0,0 +E14001409,Norwich South,Norwich South,Clive Lewis,Lab,Labour,4500,#d50000,13,1,0,11,0,0,1 +E14001410,Nottingham East,Nottingham East,Nadia Whittome,Lab,Labour,4869,#d50000,15,0,0,1,8,0,6 +E14001411,Nottingham North and Kimberley,Nottingham North and Kimberley,Alex Norris,Lab,Labour,4641,#d50000,4,0,0,1,3,0,0 +E14001412,Nottingham South,Nottingham South,Lilian Greenwood,Lab,Labour,4029,#d50000,5,0,0,2,3,0,0 +E14001413,Nuneaton,Nuneaton,Jodie Gosling,Lab,Labour,5036,#d50000,3,0,0,3,0,0,0 +E14001414,Old Bexley and Sidcup,Old Bexley and Sidcup,Louie French,Con,Conservative,4932,#0063ba,1,0,0,1,0,0,0 +E14001415,Oldham East and Saddleworth,Oldham East and Saddleworth,Debbie Abrahams,Lab,Labour,4212,#d50000,5,0,0,0,1,0,4 +E14001416,"Oldham West, Chadderton and Royton","Oldham West, Chadderton and Royton",Jim McMahon,Lab,Labour,4569,#d50000,4,0,0,2,1,0,1 +E14001417,Orpington,Orpington,Gareth Bacon,Con,Conservative,4798,#0063ba,2,1,0,1,0,0,0 +E14001418,Ossett and Denby Dale,Ossett and Denby Dale,Jade Botterill,Lab,Labour,5236,#d50000,5,2,0,1,0,0,2 +E14001419,Oxford East,Oxford East,Anneliese Dodds,Lab,Labour,4657,#d50000,2,0,0,1,0,0,1 +E14001420,Oxford West and Abingdon,Oxford West and Abingdon,Layla Moran,LD,Liberal Democrat,4656,#faa01a,2,1,0,0,0,0,1 +E14001421,Peckham,Peckham,Miatta Fahnbulleh,Lab,Labour,5099,#d50000,15,0,0,11,2,1,1 +E14001422,Pendle and Clitheroe,Pendle and Clitheroe,Jonathan James Hinder,Lab,Labour,5264,#d50000,4,1,0,2,0,0,1 +E14001423,Penistone and Stocksbridge,Penistone and Stocksbridge,Marie Tidball,Lab,Labour,5098,#d50000,12,5,0,5,0,1,1 +E14001424,Penrith and Solway,Penrith and Solway,Markus Campbell-Savours,Lab,Labour,5124,#d50000,25,12,0,4,3,0,6 +E14001425,Peterborough,Peterborough,Andrew Pakes,Lab,Labour,5243,#d50000,17,13,0,2,0,0,2 +E14001426,Plymouth Moor View,Plymouth Moor View,Fred Thomas,Lab,Labour,5174,#d50000,7,3,0,4,0,0,0 +E14001427,Plymouth Sutton and Devonport,Plymouth Sutton and Devonport,Luke Pollard,Lab,Labour,4682,#d50000,13,5,0,8,0,0,0 +E14001428,"Pontefract, Castleford and Knottingley","Pontefract, Castleford and Knottingley",Yvette Cooper,Lab,Labour,420,#d50000,6,2,0,2,1,0,1 +E14001429,Poole,Poole,Neil John Duncan-Jordan,Lab,Labour,5359,#d50000,1,0,0,0,1,0,0 +E14001430,Poplar and Limehouse,Poplar and Limehouse,Apsana Begum,Lab,Labour,4790,#909090,9,0,0,4,2,0,3 +E14001431,Portsmouth North,Portsmouth North,Amanda Martin,Lab,Labour,5294,#d50000,7,1,0,5,0,0,1 +E14001432,Portsmouth South,Portsmouth South,Stephen Morgan,Lab,Labour,4653,#d50000,11,0,0,8,1,0,2 +E14001433,Preston,Preston,Mark Hendrick,Lab,Labour,473,#d50000,5,0,0,1,1,0,3 +E14001434,Putney,Putney,Fleur Anderson,Lab,Labour,4788,#d50000,5,0,0,2,1,1,1 +E14001435,Queen's Park and Maida Vale,Queen's Park and Maida Vale,Georgia Gould,Lab,Labour,5305,#d50000,4,0,0,3,0,0,1 +E14001436,Rawmarsh and Conisbrough,Rawmarsh and Conisbrough,John Healey,Lab,Labour,400,#d50000,8,4,0,3,0,0,1 +E14001437,Rayleigh and Wickford,Rayleigh and Wickford,Mark Francois,Con,Conservative,1444,#0063ba,0,0,0,0,0,0,0 +E14001438,Reading Central,Reading Central,Matt Rodda,Lab,Labour,4654,#d50000,3,0,0,2,1,0,0 +E14001439,Reading West and Mid Berkshire,Reading West and Mid Berkshire,Olivia Bailey,Lab,Labour,5337,#d50000,4,2,0,1,0,1,0 +E14001440,Redcar,Redcar,Anna Turley,Lab,Labour,4449,#d50000,7,1,0,3,1,1,1 +E14001441,Redditch,Redditch,Christopher James Bloore,Lab,Labour,5109,#d50000,3,2,0,0,1,0,0 +E14001442,Reigate,Reigate,Rebecca Paul,Con,Conservative,5297,#0063ba,0,0,0,0,0,0,0 +E14001443,Ribble Valley,Ribble Valley,Maya Ellis,Lab,Labour,5228,#d50000,3,0,0,2,0,1,0 +E14001445,Richmond Park,Richmond Park,Sarah Olney,LD,Liberal Democrat,4591,#faa01a,8,0,0,6,2,0,0 +E14001444,Richmond and Northallerton,Richmond and Northallerton,Rishi Sunak,Con,Conservative,4483,#0063ba,35,17,0,14,2,0,2 +E14001446,Rochdale,Rochdale,Paul Waugh,Lab,Labour,5071,#d50000,3,0,0,0,1,0,2 +E14001447,Rochester and Strood,Rochester and Strood,Lauren Rae Edwards,Lab,Labour,5298,#d50000,12,0,0,10,1,0,1 +E14001448,Romford,Romford,Andrew Rosindell,Con,Conservative,1447,#0063ba,2,0,0,1,1,0,0 +E14001449,Romsey and Southampton North,Romsey and Southampton North,Caroline Nokes,Con,Conservative,4048,#0063ba,9,8,0,0,0,1,0 +E14001450,Rossendale and Darwen,Rossendale and Darwen,Andy MacNae,Lab,Labour,5134,#d50000,8,0,0,2,2,0,4 +E14001451,Rother Valley,Rother Valley,Jake Richards,Lab,Labour,5082,#d50000,3,0,0,1,1,1,0 +E14001452,Rotherham,Rotherham,Sarah Champion,Lab,Labour,4267,#d50000,6,4,0,0,2,0,0 +E14001453,Rugby,Rugby,John Anthony Slinger,Lab,Labour,5127,#d50000,8,8,0,0,0,0,0 +E14001454,"Ruislip, Northwood and Pinner","Ruislip, Northwood and Pinner",David Simmonds,Con,Conservative,4872,#0063ba,12,4,0,8,0,0,0 +E14001455,Runcorn and Helsby,Runcorn and Helsby,Mike Amesbury,Lab,Labour,4667,#909090,8,3,0,3,0,0,2 +E14001456,Runnymede and Weybridge,Runnymede and Weybridge,Ben Spencer,Con,Conservative,4785,#0063ba,3,0,0,1,1,1,0 +E14001457,Rushcliffe,Rushcliffe,James William Naish,Lab,Labour,5047,#d50000,2,0,0,0,0,0,2 +E14001458,Rutland and Stamford,Rutland and Stamford,Alicia Kearns,Con,Conservative,4805,#0063ba,18,6,0,4,0,0,8 +E14001459,Salford,Salford,Rebecca Long-Bailey,Lab,Labour,4396,#909090,7,0,0,1,4,0,2 +E14001460,Salisbury,Salisbury,John Glen,Con,Conservative,4051,#0063ba,26,23,0,3,0,0,0 +E14001461,Scarborough and Whitby,Scarborough and Whitby,Alison Hume,Lab,Labour,5254,#d50000,27,21,0,1,4,0,1 +E14001462,Scunthorpe,Scunthorpe,Nicholas Dakin,Lab,Labour,4056,#d50000,7,4,0,1,1,0,1 +E14001463,Sefton Central,Sefton Central,Bill Esterson,Lab,Labour,4061,#d50000,3,1,0,1,0,0,1 +E14001464,Selby,Selby,Keir Mather,Lab,Labour,4993,#d50000,18,11,0,4,2,0,1 +E14001465,Sevenoaks,Sevenoaks,Laura Trott,Con,Conservative,4780,#0063ba,3,1,0,1,0,1,0 +E14001466,Sheffield Brightside and Hillsborough,Sheffield Brightside and Hillsborough,Gill Furniss,Lab,Labour,4571,#d50000,3,1,0,0,1,0,1 +E14001467,Sheffield Central,Sheffield Central,Abtisam Mohamed,Lab,Labour,5142,#d50000,8,1,0,4,2,0,1 +E14001468,Sheffield Hallam,Sheffield Hallam,Olivia Blake,Lab,Labour,4864,#d50000,6,4,0,1,0,0,1 +E14001469,Sheffield Heeley,Sheffield Heeley,Louise Haigh,Lab,Labour,4473,#d50000,2,0,0,1,0,1,0 +E14001470,Sheffield South East,Sheffield South East,Clive Betts,Lab,Labour,394,#d50000,1,0,0,0,0,0,1 +E14001471,Sherwood Forest,Sherwood Forest,Michelle Welsh,Lab,Labour,5226,#d50000,8,1,0,4,1,0,2 +E14001472,Shipley,Shipley,Anna Dixon,Lab,Labour,5281,#d50000,4,2,0,0,0,1,1 +E14001473,Shrewsbury,Shrewsbury,Julia Buckley,Lab,Labour,5171,#d50000,16,6,0,8,0,0,2 +E14001474,Sittingbourne and Sheppey,Sittingbourne and Sheppey,Kevin McKenna,Lab,Labour,5300,#d50000,11,0,0,3,7,0,1 +E14001475,Skipton and Ripon,Skipton and Ripon,Julian Smith,Con,Conservative,4118,#0063ba,15,9,0,3,1,1,1 +E14001476,Sleaford and North Hykeham,Sleaford and North Hykeham,Caroline Johnson,Con,Conservative,4592,#0063ba,10,0,0,1,2,1,6 +E14001477,Slough,Slough,Tan Dhesi,Lab,Labour,4638,#d50000,0,0,0,0,0,0,0 +E14001478,Smethwick,Smethwick,Gurinder Singh Josan,Lab,Labour,5059,#d50000,5,1,0,2,1,0,1 +E14001479,Solihull West and Shirley,Solihull West and Shirley,Neil Shastri-Hurst,Con,Conservative,5197,#0063ba,0,0,0,0,0,0,0 +E14001480,South Basildon and East Thurrock,South Basildon and East Thurrock,James McMurdock,Ref,Ref,5361,#12b6cf,4,1,0,2,1,0,0 +E14001481,South Cambridgeshire,South Cambridgeshire,Pippa Heylings,LD,Liberal Democrat,5078,#faa01a,16,10,0,0,3,0,3 +E14001482,South Cotswolds,South Cotswolds,Roz Savage,LD,Liberal Democrat,5352,#faa01a,23,15,0,4,0,0,4 +E14001483,South Derbyshire,South Derbyshire,Samantha Niblett,Lab,Labour,5150,#d50000,16,2,0,10,0,1,3 +E14001484,South Devon,South Devon,Caroline Voaden,LD,Liberal Democrat,5216,#faa01a,62,43,0,6,0,1,12 +E14001485,South Dorset,South Dorset,Lloyd Hatton,Lab,Labour,5217,#d50000,43,36,0,7,0,0,0 +E14001486,South East Cornwall,South East Cornwall,Anna Gelderd,Lab,Labour,5353,#d50000,80,65,0,11,0,0,4 +E14001487,South Holland and The Deepings,South Holland and The Deepings,John Hayes,Con,Conservative,350,#0063ba,11,3,0,3,2,0,3 +E14001488,South Leicestershire,South Leicestershire,Alberto Costa,Con,Conservative,4439,#0063ba,2,0,0,0,0,0,2 +E14001489,South Norfolk,South Norfolk,Ben Goldsborough,Lab,Labour,5205,#d50000,10,2,0,1,0,0,7 +E14001490,South Northamptonshire,South Northamptonshire,Sarah Bool,Con,Conservative,5355,#0063ba,16,6,0,4,1,0,5 +E14001491,South Ribble,South Ribble,Paul Andrew Foster,Lab,Labour,5074,#d50000,2,1,0,0,0,0,1 +E14001492,South Shields,South Shields,Emma Lewell-Buck,Lab,Labour,4277,#d50000,4,0,0,1,3,0,0 +E14001493,South Shropshire,South Shropshire,Stuart Anderson,Con,Conservative,4742,#0063ba,52,21,0,12,0,0,19 +E14001494,South Suffolk,South Suffolk,James Cartlidge,Con,Conservative,4519,#0063ba,5,3,0,1,0,0,1 +E14001495,South West Devon,South West Devon,Rebecca Smith,Con,Conservative,5301,#0063ba,110,101,0,6,0,0,3 +E14001496,South West Hertfordshire,South West Hertfordshire,Gagan Mohindra,Con,Conservative,4804,#0063ba,1,0,0,1,0,0,0 +E14001497,South West Norfolk,South West Norfolk,Terry Jermy,Lab,Labour,5338,#d50000,23,1,0,8,1,0,13 +E14001498,South West Wiltshire,South West Wiltshire,Andrew Murrison,Con,Conservative,1466,#0063ba,19,15,0,3,0,0,1 +E14001499,Southampton Itchen,Southampton Itchen,Darren Paffey,Lab,Labour,5270,#d50000,3,0,0,2,1,0,0 +E14001500,Southampton Test,Southampton Test,Satvir Kaur,Lab,Labour,5271,#d50000,1,0,0,0,0,0,1 +E14001501,Southend East and Rochford,Southend East and Rochford,Bayo Alaba,Lab,Labour,5097,#d50000,3,0,0,2,0,0,1 +E14001502,Southend West and Leigh,Southend West and Leigh,David Edmund Burton-Sampson,Lab,Labour,5106,#d50000,1,0,0,0,1,0,0 +E14001503,Southgate and Wood Green,Southgate and Wood Green,Bambos Charalambous,Lab,Labour,4610,#d50000,10,0,0,5,1,3,1 +E14001504,Southport,Southport,Patrick Brian Hurley,Lab,Labour,5052,#d50000,6,1,0,0,4,0,1 +E14001505,Spelthorne,Spelthorne,Lincoln Jopp,Con,Conservative,5332,#0063ba,1,0,0,0,0,0,1 +E14001506,Spen Valley,Spen Valley,Kim Leadbeater,Lab,Labour,4923,#d50000,1,0,0,0,0,0,1 +E14001507,St Albans,St. Albans,Daisy Cooper,LD,Liberal Democrat,4769,#faa01a,2,0,0,2,0,0,0 +E14001508,St Austell and Newquay,St. Austell and Newquay,Noah Law,Lab,Labour,5302,#d50000,11,6,0,5,0,0,0 +E14001509,St Helens North,St. Helens North,David Baines,Lab,Labour,5092,#d50000,3,1,0,1,1,0,0 +E14001510,St Helens South and Whiston,St. Helens South and Whiston,Marie Rimmer,Lab,Labour,4457,#d50000,10,2,0,3,2,0,3 +E14001511,St Ives,St. Ives,Andrew George,LD,Liberal Democrat,227,#faa01a,97,83,0,10,0,0,4 +E14001512,St Neots and Mid Cambridgeshire,St. Neots and Mid Cambridgeshire,Ian Sollom,LD,Liberal Democrat,5096,#faa01a,4,0,0,1,1,0,2 +E14001513,Stafford,Stafford,Leigh Ingham,Lab,Labour,5290,#d50000,5,1,0,2,2,0,0 +E14001514,Staffordshire Moorlands,Staffordshire Moorlands,Karen Bradley,Con,Conservative,4110,#0063ba,14,5,0,7,2,0,0 +E14001515,Stalybridge and Hyde,Stalybridge and Hyde,Jonathan Reynolds,Lab,Labour,4119,#d50000,5,0,0,1,1,0,3 +E14001516,Stevenage,Stevenage,Kevin Bonavia,Lab,Labour,5051,#d50000,4,0,0,1,3,0,0 +E14001517,Stockport,Stockport,Navendu Mishra,Lab,Labour,4811,#d50000,8,0,0,1,1,0,6 +E14001518,Stockton North,Stockton North,Chris McDonald,Lab,Labour,5116,#d50000,3,0,0,3,0,0,0 +E14001519,Stockton West,Stockton West,Matt Vickers,Con,Conservative,4844,#0063ba,0,0,0,0,0,0,0 +E14001520,Stoke-on-Trent Central,Stoke-on-Trent Central,Gareth Snell,Lab,Labour,4595,#d50000,7,0,0,1,4,0,2 +E14001521,Stoke-on-Trent North,Stoke-on-Trent North,David Williams,Lab,Labour,5151,#d50000,9,0,0,5,3,0,1 +E14001522,Stoke-on-Trent South,Stoke-on-Trent South,Allison Gardner,Lab,Labour,5334,#d50000,5,1,0,2,1,0,1 +E14001523,"Stone, Great Wyrley and Penkridge","Stone, Great Wyrley and Penkridge",Gavin Williamson,Con,Conservative,4108,#0063ba,5,3,0,2,0,0,0 +E14001524,Stourbridge,Stourbridge,Cat Eccles,Lab,Labour,5293,#d50000,5,1,0,1,3,0,0 +E14001525,Stratford and Bow,Stratford and Bow,Uma Kumaran,Lab,Labour,5278,#d50000,17,0,0,12,3,0,2 +E14001526,Stratford-on-Avon,Stratford-on-Avon,Manuela Perteghella,LD,Liberal Democrat,5122,#faa01a,10,6,0,2,0,0,2 +E14001527,Streatham and Croydon North,Streatham and Croydon North,Steve Reed,Lab,Labour,4268,#d50000,8,0,0,4,1,1,2 +E14001528,Stretford and Urmston,Stretford and Urmston,Andrew Western,Lab,Labour,4979,#d50000,3,0,0,0,2,0,1 +E14001529,Stroud,Stroud,Simon Joseph Opher,Lab,Labour,5030,#d50000,15,2,0,2,2,0,9 +E14001530,Suffolk Coastal,Suffolk Coastal,Jenny Riddell-Carpenter,Lab,Labour,5160,#d50000,16,6,0,6,0,1,3 +E14001531,Sunderland Central,Sunderland Central,Lewis Atkinson,Lab,Labour,5028,#d50000,6,0,0,1,3,0,2 +E14001532,Surrey Heath,Surrey Heath,Al Pinkerton,LD,Liberal Democrat,5288,#faa01a,1,0,0,0,1,0,0 +E14001533,Sussex Weald,Sussex Weald,Nus Ghani,Con,Conservative,4460,#0063ba,7,2,0,2,1,1,1 +E14001535,Sutton Coldfield,Sutton Coldfield,Andrew Mitchell,Con,Conservative,1211,#0063ba,1,0,0,0,1,0,0 +E14001534,Sutton and Cheam,Sutton and Cheam,Luke Taylor,LD,Liberal Democrat,5103,#faa01a,2,0,0,0,2,0,0 +E14001536,Swindon North,Swindon North,Will Stone,Lab,Labour,5035,#d50000,2,2,0,0,0,0,0 +E14001537,Swindon South,Swindon South,Heidi Alexander,Lab,Labour,4038,#d50000,3,2,0,1,0,0,0 +E14001538,Tamworth,Tamworth,Sarah Edwards,Lab,Labour,5001,#d50000,5,1,0,2,1,0,1 +E14001539,Tatton,Tatton,Esther McVey,Con,Conservative,4084,#0063ba,7,2,0,4,1,0,0 +E14001540,Taunton and Wellington,Taunton and Wellington,Gideon Amos,LD,Liberal Democrat,5250,#faa01a,7,3,0,3,1,0,0 +E14001541,Telford,Telford,Shaun Davies,Lab,Labour,5041,#d50000,3,1,0,1,0,0,1 +E14001542,Tewkesbury,Tewkesbury,Cameron Thomas,LD,Liberal Democrat,5354,#faa01a,13,5,0,6,0,0,2 +E14001543,The Wrekin,The Wrekin,Mark Pritchard,Con,Conservative,1576,#0063ba,11,5,0,5,0,0,1 +E14001544,Thirsk and Malton,Thirsk and Malton,Kevin Hollinrake,Con,Conservative,4474,#0063ba,106,85,0,14,1,1,5 +E14001545,Thornbury and Yate,Thornbury and Yate,Claire Young,LD,Liberal Democrat,5140,#faa01a,10,1,0,6,0,1,2 +E14001546,Thurrock,Thurrock,Jennifer Craft,Lab,Labour,5056,#d50000,3,0,0,1,0,1,1 +E14001547,Tipton and Wednesbury,Tipton and Wednesbury,Antonia Bance,Lab,Labour,5048,#d50000,1,0,0,0,1,0,0 +E14001548,Tiverton and Minehead,Tiverton and Minehead,Rachel Gilmour,LD,Liberal Democrat,5252,#faa01a,34,25,0,6,1,1,1 +E14001549,Tonbridge,Tonbridge,Tom Tugendhat,Con,Conservative,4462,#0063ba,3,2,0,0,0,1,0 +E14001550,Tooting,Tooting,Rosena Allin-Khan,Lab,Labour,4573,#d50000,2,0,0,2,0,0,0 +E14001551,Torbay,Torbay,Steve Darling,LD,Liberal Democrat,5066,#faa01a,9,1,0,5,0,2,1 +E14001552,Torridge and Tavistock,Torridge and Tavistock,Geoffrey Cox,Con,Conservative,1508,#0063ba,85,64,0,7,0,0,14 +E14001553,Tottenham,Tottenham,David Lammy,Lab,Labour,206,#d50000,14,0,0,6,4,0,4 +E14001554,Truro and Falmouth,Truro and Falmouth,Jayne Kirkham,Lab,Labour,5279,#d50000,25,14,0,6,0,1,4 +E14001555,Tunbridge Wells,Tunbridge Wells,Mike Martin,LD,Liberal Democrat,5219,#faa01a,6,2,0,1,1,2,0 +E14001556,Twickenham,Twickenham,Munira Wilson,LD,Liberal Democrat,4776,#faa01a,11,0,0,10,1,0,0 +E14001557,Tynemouth,Tynemouth,Alan Campbell,Lab,Labour,529,#d50000,1,0,0,0,1,0,0 +E14001558,Uxbridge and South Ruislip,Uxbridge and South Ruislip,Danny Boy Beales,Lab,Labour,5339,#d50000,12,2,0,6,2,0,2 +E14001559,Vauxhall and Camberwell Green,Vauxhall and Camberwell Green,Florence Eshalomi,Lab,Labour,4870,#d50000,7,0,0,5,2,0,0 +E14001560,Wakefield and Rothwell,Wakefield and Rothwell,Simon Lightwood,Lab,Labour,4943,#d50000,6,0,0,4,0,1,1 +E14001561,Wallasey,Wallasey,Angela Eagle,Lab,Labour,491,#d50000,5,0,0,1,0,0,4 +E14001562,Walsall and Bloxwich,Walsall and Bloxwich,Valerie Vaz,Lab,Labour,4076,#d50000,7,0,0,0,6,0,1 +E14001563,Walthamstow,Walthamstow,Stella Creasy,Lab,Labour,4088,#d50000,3,0,0,2,0,0,1 +E14001564,Warrington North,Warrington North,Charlotte Nichols,Lab,Labour,4799,#d50000,3,1,0,0,2,0,0 +E14001565,Warrington South,Warrington South,Sarah Hall,Lab,Labour,5154,#d50000,5,0,0,1,2,0,2 +E14001566,Warwick and Leamington,Warwick and Leamington,Matt Western,Lab,Labour,4617,#d50000,8,2,0,2,0,1,3 +E14001567,Washington and Gateshead South,Washington and Gateshead South,Sharon Hodgson,Lab,Labour,1521,#d50000,7,1,0,4,1,0,1 +E14001568,Watford,Watford,Matt Turmaine,Lab,Labour,5130,#d50000,1,0,0,1,0,0,0 +E14001569,Waveney Valley,Waveney Valley,Adrian Ramsay,Green,Green,5320,#78b82a,12,0,0,6,0,0,6 +E14001570,Weald of Kent,Weald of Kent,Katie Jane Lotte Lam,Con,Conservative,5285,#0063ba,5,1,0,4,0,0,0 +E14001571,Wellingborough and Rushden,Wellingborough and Rushden,Gen Kitchen,Lab,Labour,5011,#d50000,1,0,0,0,1,0,0 +E14001572,Wells and Mendip Hills,Wells and Mendip Hills,Tessa Munt,LD,Liberal Democrat,4089,#faa01a,27,20,0,2,0,0,5 +E14001573,Welwyn Hatfield,Welwyn Hatfield,Andrew Lewin,Lab,Labour,5061,#d50000,4,0,0,4,0,0,0 +E14001574,West Bromwich,West Bromwich,Sarah Coombes,Lab,Labour,5088,#d50000,3,0,0,1,1,1,0 +E14001575,West Dorset,West Dorset,Edward Morello,LD,Liberal Democrat,5326,#faa01a,74,65,0,6,0,1,2 +E14001576,West Ham and Beckton,West Ham and Beckton,James Edward Asser,Lab,Labour,5211,#d50000,6,0,0,6,0,0,0 +E14001577,West Lancashire,West Lancashire,Ashley Dalton,Lab,Labour,4981,#d50000,13,3,0,5,1,1,3 +E14001578,West Suffolk,West Suffolk,Nick Timothy,Con,Conservative,5062,#0063ba,11,5,0,2,3,0,1 +E14001579,West Worcestershire,West Worcestershire,Harriett Baldwin,Con,Conservative,4107,#0063ba,13,3,0,2,0,1,7 +E14001580,Westmorland and Lonsdale,Westmorland and Lonsdale,Tim Farron,LD,Liberal Democrat,1591,#faa01a,37,15,0,12,1,0,9 +E14001581,Weston-super-Mare,Weston-Super-Mare,Dan Aldridge,Lab,Labour,5172,#d50000,2,1,0,1,0,0,0 +E14001582,Wetherby and Easingwold,Wetherby and Easingwold,Alec Shelbrooke,Con,Conservative,3997,#0063ba,14,12,1,1,0,0,0 +E14001583,Whitehaven and Workington,Whitehaven and Workington,Josh MacAlister,Lab,Labour,5033,#d50000,13,3,0,4,2,0,4 +E14001584,Widnes and Halewood,Widnes and Halewood,Derek Twigg,Lab,Labour,429,#d50000,2,1,0,0,0,0,1 +E14001585,Wigan,Wigan,Lisa Nandy,Lab,Labour,4082,#d50000,4,0,0,2,0,0,2 +E14001586,Wimbledon,Wimbledon,Paul Christopher Kohler,LD,Liberal Democrat,5321,#faa01a,12,0,0,6,5,1,0 +E14001587,Winchester,Winchester,Danny Chambers,LD,Liberal Democrat,5304,#faa01a,11,6,0,0,5,0,0 +E14001588,Windsor,Windsor,Jack Rankin,Con,Conservative,5340,#0063ba,2,0,0,2,0,0,0 +E14001589,Wirral West,Wirral West,Matthew Patrick,Lab,Labour,5162,#d50000,4,1,0,1,0,1,1 +E14001590,Witham,Witham,Priti Patel,Con,Conservative,4066,#0063ba,7,2,0,3,2,0,0 +E14001591,Witney,Witney,Charlie Maynard,LD,Liberal Democrat,5325,#faa01a,2,2,0,0,0,0,0 +E14001592,Woking,Woking,Will Forster,LD,Liberal Democrat,5322,#faa01a,4,0,0,1,2,1,0 +E14001593,Wokingham,Wokingham,Clive Jones,LD,Liberal Democrat,5207,#faa01a,4,1,0,2,0,1,0 +E14001594,Wolverhampton North East,Wolverhampton North East,Sureena Brackenridge,Lab,Labour,5152,#d50000,3,0,0,0,3,0,0 +E14001595,Wolverhampton South East,Wolverhampton South East,Pat McFadden,Lab,Labour,1587,#d50000,7,0,0,1,3,0,3 +E14001596,Wolverhampton West,Wolverhampton West,Warinder Juss,Lab,Labour,5230,#d50000,5,0,0,1,3,0,1 +E14001597,Worcester,Worcester,Tom Collins,Lab,Labour,5087,#d50000,5,1,0,2,1,0,1 +E14001598,Worsley and Eccles,Worsley and Eccles,Michael Wheeler,Lab,Labour,5242,#d50000,5,0,0,1,1,0,3 +E14001599,Worthing West,Worthing West,Beccy Cooper,Lab,Labour,5307,#d50000,2,0,0,1,0,0,1 +E14001600,Wycombe,Wycombe,Emma Reynolds,Lab,Labour,4077,#d50000,3,2,0,0,0,1,0 +E14001601,Wyre Forest,Wyre Forest,Mark Garnier,Con,Conservative,4074,#0063ba,6,0,0,3,3,0,0 +E14001602,Wythenshawe and Sale East,Wythenshawe and Sale East,Mike Kane,Lab,Labour,4316,#d50000,2,0,0,2,0,0,0 +E14001603,Yeovil,Yeovil,Adam Dance,LD,Liberal Democrat,5191,#faa01a,8,1,0,4,0,1,2 +E14001604,York Central,York Central,Rachael Maskell,Lab,Labour,4471,#d50000,1,0,0,0,0,0,1 +E14001605,York Outer,York Outer,Luke Charters,Lab,Labour,5199,#d50000,0,0,0,0,0,0,0 diff --git a/src/themes/society/heritage-at-risk/embeds/_partials/all.njk b/src/themes/society/heritage-at-risk/embeds/_partials/all.njk index ef9a7c3..5e5073c 100644 --- a/src/themes/society/heritage-at-risk/embeds/_partials/all.njk +++ b/src/themes/society/heritage-at-risk/embeds/_partials/all.njk @@ -2,11 +2,11 @@ "component": comp.oi.map.hex_cartogram, "config": { "width": 600, - "hexjson": "hexjson.constituencies", - "data": "sources.society.heritage-at-risk", + "hexjson": "hexjson.uk-constituencies-2024", + "data": HAR2024, "columns":[{ "name": "filterLabel", - "template": "{{ n }} ({{ MP }}, {{ Party }})" + "template": "{{ PCON24NM }} ({{ MP }}, {{ Party }})" },{ "name": "All", "template": "{{ Type→All }}" @@ -15,7 +15,7 @@ "scale": "#ffffcc 0%, #b62126 80%, #771e1c 100%", "min": 0, "max": 100, - "matchKey": "PCON10CD", + "matchKey": "PCON24CD", "legend":{ "position": "top right", "items": [{ @@ -43,8 +43,8 @@ "label": "filterLabel" } }, - "tooltip": "{{ n }}
{{ MP }} ({{ Party }})
All at risk: {{ All | toLocaleString() }}
More details", - "attribution": "Data: Heritage at Risk 2023 Register (Historic England)" + "tooltip": "{{ PCON24NM }}
{{ MP }} ({{ Party }})
All at risk: {{ All | toLocaleString() }}
More details", + "attribution": "Data: Heritage at Risk Register 2024 (Historic England)" }, "download": {"text": "Heritage at risk by constituency", "type": "CSV"} } %}{% endcomp %} \ No newline at end of file diff --git a/src/themes/society/heritage-at-risk/embeds/_partials/archaeology.njk b/src/themes/society/heritage-at-risk/embeds/_partials/archaeology.njk index f6697bb..b13cab1 100644 --- a/src/themes/society/heritage-at-risk/embeds/_partials/archaeology.njk +++ b/src/themes/society/heritage-at-risk/embeds/_partials/archaeology.njk @@ -2,11 +2,11 @@ "component": comp.oi.map.hex_cartogram, "config": { "width": 600, - "hexjson": "hexjson.constituencies", - "data": "sources.society.heritage-at-risk", + "hexjson": "hexjson.uk-constituencies-2024", + "data": HAR2024, "columns":[{ "name": "filterLabel", - "template": "{{ n }} ({{ MP }}, {{ Party }})" + "template": "{{ PCON24NM }} ({{ MP }}, {{ Party }})" },{ "name": "Archaeology", "template": "{{ Type→Archaeology }}" @@ -15,7 +15,7 @@ "scale": "#ffffcc 0%, #b62126 80%, #771e1c 100%", "min": 0, "max": 100, - "matchKey": "PCON10CD", + "matchKey": "PCON24CD", "legend":{ "position": "top right", "items": [{ @@ -43,8 +43,8 @@ "label": "filterLabel" } }, - "tooltip": "{{ n }}
{{ MP }} ({{ Party }})
Archaeology sites at risk: {{ Archaeology | toLocaleString() }}
More details", - "attribution": "Data: Heritage at Risk 2023 Register (Historic England)" + "tooltip": "{{ PCON24NM }}
{{ MP }} ({{ Party }})
Archaeology sites at risk: {{ Archaeology | toLocaleString() }}
More details", + "attribution": "Data: Heritage at Risk Register 2024 (Historic England)" }, "download": {"text": "Heritage at risk by constituency", "type": "CSV"} } %}{% endcomp %} \ No newline at end of file diff --git a/src/themes/society/heritage-at-risk/embeds/_partials/building-or-structure.njk b/src/themes/society/heritage-at-risk/embeds/_partials/building-or-structure.njk index b934dc9..6eb0527 100644 --- a/src/themes/society/heritage-at-risk/embeds/_partials/building-or-structure.njk +++ b/src/themes/society/heritage-at-risk/embeds/_partials/building-or-structure.njk @@ -2,11 +2,11 @@ "component": comp.oi.map.hex_cartogram, "config": { "width": 600, - "hexjson": "hexjson.constituencies", - "data": "sources.society.heritage-at-risk", + "hexjson": "hexjson.uk-constituencies-2024", + "data": HAR2024, "columns":[{ "name": "filterLabel", - "template": "{{ n }} ({{ MP }}, {{ Party }})" + "template": "{{ PCON24NM }} ({{ MP }}, {{ Party }})" },{ "name": "Building or structure", "template": "{{ Type→Building or structure }}" @@ -15,7 +15,7 @@ "scale": "#ffffcc 0%, #b62126 80%, #771e1c 100%", "min": 0, "max": 20, - "matchKey": "PCON10CD", + "matchKey": "PCON24CD", "legend":{ "position": "top right", "items": [{ @@ -40,8 +40,8 @@ "label": "filterLabel" } }, - "tooltip": "{{ n }}
{{ MP }} ({{ Party }})
Buildings or structures at risk: {{ Building or structure | toLocaleString() }}
More details", - "attribution": "Data: Heritage at Risk 2023 Register (Historic England)" + "tooltip": "{{ PCON24NM }}
{{ MP }} ({{ Party }})
Buildings or structures at risk: {{ Building or structure | toLocaleString() }}
More details", + "attribution": "Data: Heritage at Risk Register 2024 (Historic England)" }, "download": {"text": "Heritage at risk by constituency", "type": "CSV"} } %}{% endcomp %} \ No newline at end of file diff --git a/src/themes/society/heritage-at-risk/embeds/_partials/conservation-area.njk b/src/themes/society/heritage-at-risk/embeds/_partials/conservation-area.njk index e0326f0..cd0cc6f 100644 --- a/src/themes/society/heritage-at-risk/embeds/_partials/conservation-area.njk +++ b/src/themes/society/heritage-at-risk/embeds/_partials/conservation-area.njk @@ -2,11 +2,11 @@ "component": comp.oi.map.hex_cartogram, "config": { "width": 600, - "hexjson": "hexjson.constituencies", - "data": "sources.society.heritage-at-risk", + "hexjson": "hexjson.uk-constituencies-2024", + "data": HAR2024, "columns":[{ "name": "filterLabel", - "template": "{{ n }} ({{ MP }}, {{ Party }})" + "template": "{{ PCON24NM }} ({{ MP }}, {{ Party }})" },{ "name": "Conservation area", "template": "{{ Type→Conservation area }}" @@ -15,7 +15,7 @@ "scale": "#ffffcc 0%, #b62126 80%, #771e1c 100%", "min": 0, "max": 10, - "matchKey": "PCON10CD", + "matchKey": "PCON24CD", "legend":{ "position": "top right", "items": [{ @@ -43,8 +43,8 @@ "label": "filterLabel" } }, - "tooltip": "{{ n }}
{{ MP }} ({{ Party }})
Conservation areas at risk: {{ Conservation area | toLocaleString() }}
More details", - "attribution": "Data: Heritage at Risk 2023 Register (Historic England)" + "tooltip": "{{ PCON24NM }}
{{ MP }} ({{ Party }})
Conservation areas at risk: {{ Conservation area | toLocaleString() }}
More details", + "attribution": "Data: Heritage at Risk Register 2024 (Historic England)" }, "download": {"text": "Heritage at risk by constituency", "type": "CSV"} } %}{% endcomp %} \ No newline at end of file diff --git a/src/themes/society/heritage-at-risk/embeds/_partials/place-of-worship.njk b/src/themes/society/heritage-at-risk/embeds/_partials/place-of-worship.njk index ccce6b1..a1be93f 100644 --- a/src/themes/society/heritage-at-risk/embeds/_partials/place-of-worship.njk +++ b/src/themes/society/heritage-at-risk/embeds/_partials/place-of-worship.njk @@ -2,11 +2,11 @@ "component": comp.oi.map.hex_cartogram, "config": { "width": 600, - "hexjson": "hexjson.constituencies", - "data": "sources.society.heritage-at-risk", + "hexjson": "hexjson.uk-constituencies-2024", + "data": HAR2024, "columns":[{ "name": "filterLabel", - "template": "{{ n }} ({{ MP }}, {{ Party }})" + "template": "{{ PCON24NM }} ({{ MP }}, {{ Party }})" },{ "name": "Place of worship", "template": "{{ Type→Place of worship }}" @@ -15,7 +15,7 @@ "scale": "#ffffcc 0%, #b62126 80%, #771e1c 100%", "min": 0, "max": 20, - "matchKey": "PCON10CD", + "matchKey": "PCON24CD", "legend":{ "position": "top right", "items": [{ @@ -52,8 +52,8 @@ "label": "filterLabel" } }, - "tooltip": "{{ n }}
{{ MP }} ({{ Party }})
Places of worship at risk: {{ Place of worship | toLocaleString() }}
More details", - "attribution": "Data: Heritage at Risk 2023 Register (Historic England)" + "tooltip": "{{ PCON24NM }}
{{ MP }} ({{ Party }})
Places of worship at risk: {{ Place of worship | toLocaleString() }}
More details", + "attribution": "Data: Heritage at Risk Register 2024 (Historic England)" }, "download": {"text": "Heritage at risk by constituency", "type": "CSV"} } %}{% endcomp %} diff --git a/src/themes/society/heritage-at-risk/embeds/place-of-worship-2024.njk b/src/themes/society/heritage-at-risk/embeds/place-of-worship-2024.njk new file mode 100644 index 0000000..13ca2d9 --- /dev/null +++ b/src/themes/society/heritage-at-risk/embeds/place-of-worship-2024.njk @@ -0,0 +1,198 @@ +--- +title: Places of worship at risk +searchignore: true +updated: 2024-11-13T18:50+0100 +layout: template/embed-national-churches-trust.njk +--- + + +

Places of worship on Historic England's Heritage at Risk Register by UK Parliamentary Constituency.

+ + +{% comp 'layout.panelSelector.set', { label: 'Choose the visualisation layer', titleSelector: "h3", position: "top" } %} + + {% comp 'layout.panelSelector.panel', { id: "place-of-worship-hex", "title": "Cartogram", classes: "doublepadded" } %} + +

This cartogram gives every constituency the same size - a hexagon - and that makes it a useful way to visualise the relative numbers of places at risk in different constituencies. Unlike the map view, this means that it is not an accurate representation of geography - so some constituencies may not be where you might expect - although it was designed to keep regions/nations together. Use the search to identify a particular constituency by name or by MP.

+ + {% comp "wrapper", { + "component": comp.oi.map.hex_cartogram, + "config": { + "width": 600, + "hexjson": "hexjson.uk-constituencies-2024", + "data": HAR2024, + "columns":[{ + "name": "filterLabel", + "template": "{{ Constituency }} ({{ MP }}, {{ Party }})" + },{ + "name": "URL", + "template": "https://members.parliament.uk/member/{{ ID }}/contact" + }], + "value": "Type→Place of worship", + "scale": "#ffffcc 0%, #f4be49 20%, #e3051f 50%, #291009 100%", + "min": 0, + "max": 20, + "matchKey": "PCON24CD", + "legend":{ + "position": "top right", + "continuous": true, + "items": [{ + "value": 20, + "label": "20+" + },{ + "value": 15, + "label": "15" + },{ + "value": 10, + "label": "10" + },{ + "value": 5, + "label": "5" + },{ + "value": 0, + "label": "0" + }] + }, + "tools":{ + "filter":{ + "label": "filterLabel" + } + }, + "tooltip": "{{ Constituency }}
{{ MP }} ({{ Party }})
Places of worship at risk: {{ Type→Place of worship | toLocaleString() }}
More details
", + "attribution": "Data: Heritage at Risk 2024 Register (Historic England)" + }, + "download": {"text": "Heritage at risk by constituency", "type": "CSV"} + } %}{% endcomp %} + {% endcomp %} {# end of selector panel #} + + {% comp 'layout.panelSelector.panel', { id: "place-of-worship-map", "title": "Map", classes: "doublepadded" } %} + +

This is a "heat map" view of the numbers of places at risk in different constituencies. This accurately represents the geographic placement of constituencies but can make it harder to see smaller constituencies. Use the search to identify a particular constituency by name or by MP.

+ + {% comp "wrapper", { + "component": comp.oi.map.svg, + "config": { + "width": 800, + "geojson": { + "data": "geojson.constituencies-2024", + "key": "PCON24CD" + }, + "data": HAR2024, + "columns":[{ + "name": "filterLabel", + "template": "{{ Constituency }} ({{ MP }}, {{ Party }})" + },{ + "name": "URL", + "template": "https://members.parliament.uk/member/{{ ID }}/contact" + }], + "projection": { + "name": "osgb" + }, + "padding": 30, + "layers": [{ + "type": "data", + "key": "PCON24CD", + "value": "Type→Place of worship", + "scale": "#ffffcc 0%, #f4be49 20%, #e3051f 50%, #291009 100%", + "min": 0, + "max": 20, + "tooltip": "{{ Constituency }}
{{ MP }} ({{ Party }})
Places of worship at risk: {{ Type→Place of worship | toLocaleString() }}
More details
" + }], + "legend":{ + "position": "top right", + "continuous": true, + "items": [{ + "value": 20, + "label": "20+" + },{ + "value": 15, + "label": "15" + },{ + "value": 10, + "label": "10" + },{ + "value": 5, + "label": "5" + },{ + "value": 0, + "label": "0" + }] + }, + "bounds": { + "lat": { "min": 49.9, "max": 56 }, + "lon": { "min": -6.5, "max": 2 } + }, + "tools":{ + "filter":{ + "label": "filterLabel" + } + }, + "attribution": "Data: Heritage at Risk 2023 Register (Historic England) / Constituency boundaries: ONS" + }, + "download": {"text": "Heritage at risk by constituency", "type": "CSV"} + } %}{% endcomp %} + {% endcomp %} {# end of selector panel #} + + + {% comp 'layout.panelSelector.panel', { id: "place-of-worship-table", "title": "Table", classes: "doublepadded" } %} + +

Click a column heading to sort the table by that column. Click again to reverse the order.

+ {% comp "wrapper", { + "component": comp.oi.table, + "config": { + "colours": { + "Con":'#0485A8', + "Lab":'#DC4343', + 'LD':'#EAA544', + 'Green':'#5EBD4C', + 'Brexit':'#0FA697', + 'SNP':'#EBDB1C', + 'UKIP':'#73537A', + 'PC':'#4FBA7C', + 'Ind':'#CCA7C6', + 'DUP':'#BF3759', + 'UUP':'#3b75a8', + 'SF':'#2C604D', + 'SDLP':'#53BC5B', + 'Alliance':'#EAA544', + 'Spk':'#909090', + 'XSpk':'#909090', + 'Monster':'#cccccc', + 'WPB':'#1e28d8', + 'none':'#dfdfdf' + }, + "debug": true, + "sort": ["Places of worship at risk","Constituency"], + "reverse": true, + "width": "100%", + "data": HAR2024, + "columns":[{ + "name": "Constituency", + "template": "{{ Constituency }}", + "sortable": true + },{ + "name": "Member of Parliament", + "template": "{{ MP }}", + "sortable": true + },{ + "name": "Party", + "template": "{{ Party }}", + "sortable": true + },{ + "name": "Places of worship at risk", + "template": "{{ Type→Place of worship }}", + "align": "center", + "scale": "#ffffcc 0%, #f4be49 20%, #e3051f 50%, #291009 100%", + "min": 0, + "max": 20, + "sortable": true + }], + "attribution": "Data: Heritage at Risk 2023 Register (Historic England)" + }, + "download": {"text": "Heritage at risk by constituency", "type": "CSV"} + } %}{% endcomp %} + {% endcomp %} {# end of selector panel #} +{% endcomp %} {# end of selector set #} \ No newline at end of file diff --git a/src/themes/society/heritage-at-risk/embeds/place-of-worship.njk b/src/themes/society/heritage-at-risk/embeds/place-of-worship.njk index 4c38be2..8a61705 100644 --- a/src/themes/society/heritage-at-risk/embeds/place-of-worship.njk +++ b/src/themes/society/heritage-at-risk/embeds/place-of-worship.njk @@ -5,7 +5,7 @@ updated: 2024-04-16T18:00Z layout: template/embed-national-churches-trust.njk --- -

Places of worship on Historic England's Heritage at Risk Register by UK Parliamentary Constituency.

+

Places of worship on Historic England's Heritage at Risk Register by UK Parliamentary Constituency.

{% comp 'layout.panelSelector.set', { label: 'Choose the visualisation layer', titleSelector: "h3", position: "top" } %} @@ -18,7 +18,7 @@ layout: template/embed-national-churches-trust.njk "config": { "width": 600, "hexjson": "hexjson.constituencies", - "data": "sources.society.heritage-at-risk", + "data": HAR2023, "columns":[{ "name": "filterLabel", "template": "{{ n }} ({{ MP }}, {{ Party }})" @@ -56,7 +56,7 @@ layout: template/embed-national-churches-trust.njk "label": "filterLabel" } }, - "tooltip": "{{ n }}
{{ MP | \"?\" }} ({{ Party }})
Places of worship at risk: {{ Place of worship | toLocaleString() }}
More details", + "tooltip": "{{ Name }}
{{ MP | \"?\" }} ({{ Party }})
Places of worship at risk: {{ Place of worship | toLocaleString() }}
More details", "attribution": "Data: Heritage at Risk 2023 Register (Historic England)" }, "download": {"text": "Heritage at risk by constituency", "type": "CSV"} @@ -75,7 +75,7 @@ layout: template/embed-national-churches-trust.njk "data": "geojson.Westminster_Parliamentary_Constituencies_Dec_2022_UK_BUC", "key": "PCON22CD" }, - "data": "sources.society.heritage-at-risk", + "data": HAR2023, "columns":[{ "name": "filterLabel", "template": "{{ Name }} ({{ MP }}, {{ Party }})" @@ -91,7 +91,7 @@ layout: template/embed-national-churches-trust.njk "scale": "#ffffcc 0%, #f4be49 20%, #e3051f 50%, #291009 100%", "min": 0, "max": 20, - "tooltip": "{{ geojson.properties.PCON22NM }}
{{ MP | \"?\" }} ({{ Party | \"?\" }})
Places of worship at risk: {{ Type→Place of worship | \"?\" | toLocaleString() }}
More details" + "tooltip": "{{ Name }}
{{ MP | \"?\" }} ({{ Party | \"?\" }})
Places of worship at risk: {{ Type→Place of worship | \"?\" | toLocaleString() }}
More details" }], "legend":{ "position": "top right", @@ -156,10 +156,10 @@ layout: template/embed-national-churches-trust.njk "sort": ["Places of worship at risk","Constituency"], "reverse": true, "width": "100%", - "data": "sources.society.heritage-at-risk", + "data": HAR2023, "columns":[{ "name": "Constituency", - "template": "{{ n }}", + "template": "{{ Name }}", "sortable": true },{ "name": "Member of Parliament", diff --git a/src/themes/society/heritage-at-risk/index.njk b/src/themes/society/heritage-at-risk/index.njk index abb772f..49a79a8 100644 --- a/src/themes/society/heritage-at-risk/index.njk +++ b/src/themes/society/heritage-at-risk/index.njk @@ -2,15 +2,13 @@ title: Heritage at risk (England) theme: society created: 2024-03-28T11:42 -updated: 2024-03-28T11:42 +updated: 2024-11-14T09:40 description: | Historic England's Heritage at Risk (HAR) programme helps to understand the overall state of England's historic sites. It identifies those sites that are most at risk of being lost as a result of neglect, decay or inappropriate development. We've taken the 2023 version of Historic England's Heritage at Risk register and summed up all entries by constituency. We have views for all entries, archaeology, building or structure, conservation area, and place of worship. keywords: [history,historic,archaeology,building,structure,conservation,area,worship,place-of-worship] --- -
This uses data for the old Parliamentary constituencies (pre July 2024).
- -

Historic England's Heritage at Risk (HAR) programme helps to understand the overall state of England's historic sites. It identifies those sites that are most at risk of being lost as a result of neglect, decay or inappropriate development. We've taken the 2023 version of Historic England's Heritage at Risk register and summed up all entries by constituency. We have views for all entries, archaeology, building or structure, conservation area, and place of worship.

+

Historic England's Heritage at Risk (HAR) programme helps to understand the overall state of England's historic sites. It identifies those sites that are most at risk of being lost as a result of neglect, decay or inappropriate development. We've taken the 2024 version of Historic England's Heritage at Risk register and summed up all entries by constituency. We have views for all entries, archaeology, building or structure, conservation area, and place of worship.

All entries{% comp 'anchor', { 'ref': 'all'} %}{% endcomp %}

@@ -46,5 +44,5 @@ keywords: [history,historic,archaeology,building,structure,conservation,area,wor

Notes

-

There are 4871 entries in the Heritage at Risk 2023 Register and 74 entries of them are associated with multiple constituencies. To show the correct picture for each constituency we've counted an entry towards each constituency it is associated with. As a result, adding up the totals across all constituencies may give a higher number than the total number of entries on the register.

+

There are 4890 entries in the Heritage at Risk 2024 Register (up from 4871 in 2023) and 135 of them are associated with multiple constituencies. To show the correct picture for each constituency we've counted an entry towards each constituency it is associated with. As a result, adding up the totals across all constituencies may give a higher number than the total number of entries on the register.