DemocracyClub / EveryElection

:ballot_box_with_check: For recording every election in the UK
https://elections.democracyclub.org.uk/
BSD 3-Clause "New" or "Revised" License
11 stars 14 forks source link

Better processes/tooling around boundary reviews #100

Closed chris48s closed 6 years ago

chris48s commented 6 years ago

Refs "do boundaries properly"

  1. We need a better record of when we last imported/modified boundaries from Boundary Commission reviews
  2. We need a better record of when we last checked http://www.lgbce.org.uk/current-reviews (not necessarily the same as when we last imported - sometimes we'll look at this and decide we don't need to do anything)
  3. We need a better way to identify when there is new content we need to review at http://www.lgbce.org.uk/current-reviews (scraper/boundary bot)
chris48s commented 6 years ago

in progress, see https://github.com/DemocracyClub/boundary-bot/issues

chris48s commented 6 years ago

Docs: Once I've cleared the backlog, as I work through the process of dealing with ECOs on a rolling basis, produce some documentation for how we handle this moving forwards.

chris48s commented 6 years ago

Also to think about under this issue: how do we make our state reproducible?

First questions to answer there are probably 'how did we get to where we started from' and 'could we get there again if we wanted to?'

chris48s commented 6 years ago

Also, do we want to retrospectively attach GSS codes to replace temp identifiers once boundaries imported through this process appear in Boundary Line. If so how?

Would doing so increase "reproducibility"?

If we don't do this do we start to hit issues with non-unique identifiers in future. e.g: if we've curried ABC:central in one generation and there's also a "central" in the next generation, is it a problem to have ABC:central in 2 generations if we haven't backported the previous one to be X01000001 yet?

chris48s commented 6 years ago

Also, do we want to retrospectively attach GSS codes to replace temp identifiers once boundaries imported through this process appear in Boundary Line

Answer: Yes we should. Not doing so makes our data harder to re-use because it is difficult to attach it to published boundaries once coded versions are available.

Also, we should consider providing some mechanism for users to get the boundaries via our API - at least in the cases where we are using the pre-Boundary Line releases as there is no other convenient source for them.

chris48s commented 6 years ago

Interesting edge case to deal with when you look at back-porting codes onto boundaries which we received pre-publication:

Marple South/Marple South and High Lane - name changed but not the boundary at local level: http://democracy.stockport.gov.uk/mgConvert2PDF.aspx?ID=128900&ISATT=1#search=%22marple%20south%22 but no boundary change.

Code E05000795 needs to exist with 2 different names. Think that is fine as long as there are 2 DivisionSets, but needs checking.

chris48s commented 6 years ago

For areas with boundary changes relating to May 2018, the new codes should be:

(contribution from volunteer)

{
    "local.bexley.barnehurst.2018-05-03": "E05011217",
    "local.bexley.belvedere.2018-05-03": "E05011218",
    "local.bexley.bexleyheath.2018-05-03": "E05011219",
    "local.bexley.blackfen-lamorbey.2018-05-03": "E05011220",
    "local.bexley.blendon-penhill.2018-05-03": "E05011221",
    "local.bexley.crayford.2018-05-03": "E05011222",
    "local.bexley.crook-log.2018-05-03": "E05011223",
    "local.bexley.east-wickham.2018-05-03": "E05011224",
    "local.bexley.erith.2018-05-03": "E05011225",
    "local.bexley.falconwood-welling.2018-05-03": "E05011226",
    "local.bexley.longlands.2018-05-03": "E05011227",
    "local.bexley.northumberland-heath.2018-05-03": "E05011228",
    "local.bexley.sidcup.2018-05-03": "E05011230",
    "local.bexley.slade-green-northend.2018-05-03": "E05011231",
    "local.bexley.st-marys-st-james.2018-05-03": "E05011229",
    "local.bexley.thamesmead-east.2018-05-03": "E05011232",
    "local.bexley.west-heath.2018-05-03": "E05011233",
    "local.birmingham.acocks-green.2018-05-03": "E05011118",
    "local.birmingham.allens-cross.2018-05-03": "E05011119",
    "local.birmingham.alum-rock.2018-05-03": "E05011120",
    "local.birmingham.aston.2018-05-03": "E05011121",
    "local.birmingham.balsall-heath-west.2018-05-03": "E05011122",
    "local.birmingham.bartley-green.2018-05-03": "E05011123",
    "local.birmingham.billesley.2018-05-03": "E05011124",
    "local.birmingham.birchfield.2018-05-03": "E05011125",
    "local.birmingham.bordesley-green.2018-05-03": "E05011127",
    "local.birmingham.bordesley-highgate.2018-05-03": "E05011126",
    "local.birmingham.bournbrook-selly-park.2018-05-03": "E05011128",
    "local.birmingham.bournville-cotteridge.2018-05-03": "E05011129",
    "local.birmingham.brandwood-kings-heath.2018-05-03": "E05011130",
    "local.birmingham.bromford-hodge-hill.2018-05-03": "E05011131",
    "local.birmingham.castle-vale.2018-05-03": "E05011132",
    "local.birmingham.druids-heath-monyhull.2018-05-03": "E05011133",
    "local.birmingham.edgbaston.2018-05-03": "E05011134",
    "local.birmingham.erdington.2018-05-03": "E05011135",
    "local.birmingham.frankley-great-park.2018-05-03": "E05011136",
    "local.birmingham.garretts-green.2018-05-03": "E05011137",
    "local.birmingham.glebe-farm-tile-cross.2018-05-03": "E05011138",
    "local.birmingham.gravelly-hill.2018-05-03": "E05011139",
    "local.birmingham.hall-green-north.2018-05-03": "E05011140",
    "local.birmingham.hall-green-south.2018-05-03": "E05011141",
    "local.birmingham.handsworth.2018-05-03": "E05011142",
    "local.birmingham.handsworth-wood.2018-05-03": "E05011143",
    "local.birmingham.harborne.2018-05-03": "E05011144",
    "local.birmingham.heartlands.2018-05-03": "E05011145",
    "local.birmingham.highters-heath.2018-05-03": "E05011146",
    "local.birmingham.holyhead.2018-05-03": "E05011147",
    "local.birmingham.kings-norton-north.2018-05-03": "E05011148",
    "local.birmingham.kings-norton-south.2018-05-03": "E05011149",
    "local.birmingham.kingstanding.2018-05-03": "E05011150",
    "local.birmingham.ladywood.2018-05-03": "E05011151",
    "local.birmingham.longbridge-west-heath.2018-05-03": "E05011152",
    "local.birmingham.lozells.2018-05-03": "E05011153",
    "local.birmingham.moseley.2018-05-03": "E05011154",
    "local.birmingham.nechells.2018-05-03": "E05011155",
    "local.birmingham.newtown.2018-05-03": "E05011156",
    "local.birmingham.north-edgbaston.2018-05-03": "E05011157",
    "local.birmingham.northfield.2018-05-03": "E05011158",
    "local.birmingham.oscott.2018-05-03": "E05011159",
    "local.birmingham.perry-barr.2018-05-03": "E05011160",
    "local.birmingham.perry-common.2018-05-03": "E05011161",
    "local.birmingham.pype-hayes.2018-05-03": "E05011162",
    "local.birmingham.quinton.2018-05-03": "E05011163",
    "local.birmingham.rubery-rednal.2018-05-03": "E05011164",
    "local.birmingham.shard-end.2018-05-03": "E05011165",
    "local.birmingham.sheldon.2018-05-03": "E05011166",
    "local.birmingham.small-heath.2018-05-03": "E05011167",
    "local.birmingham.soho-jewellery-quarter.2018-05-03": "E05011168",
    "local.birmingham.south-yardley.2018-05-03": "E05011169",
    "local.birmingham.sparkbrook-balsall-heath-east.2018-05-03": "E05011170",
    "local.birmingham.sparkhill.2018-05-03": "E05011171",
    "local.birmingham.stirchley.2018-05-03": "E05011172",
    "local.birmingham.stockland-green.2018-05-03": "E05011173",
    "local.birmingham.sutton-four-oaks.2018-05-03": "E05011174",
    "local.birmingham.sutton-mere-green.2018-05-03": "E05011175",
    "local.birmingham.sutton-reddicap.2018-05-03": "E05011176",
    "local.birmingham.sutton-roughley.2018-05-03": "E05011177",
    "local.birmingham.sutton-trinity.2018-05-03": "E05011178",
    "local.birmingham.sutton-vesey.2018-05-03": "E05011179",
    "local.birmingham.sutton-walmley-minworth.2018-05-03": "E05011180",
    "local.birmingham.sutton-wylde-green.2018-05-03": "E05011181",
    "local.birmingham.tyseley-hay-mills.2018-05-03": "E05011182",
    "local.birmingham.ward-end.2018-05-03": "E05011183",
    "local.birmingham.weoley-selly-oak.2018-05-03": "E05011184",
    "local.birmingham.yardley-east.2018-05-03": "E05011185",
    "local.birmingham.yardley-west-stechford.2018-05-03": "E05011186",
    "local.blackburn-with-darwen.audley-queens-park.2018-05-03": "E05011508",
    "local.blackburn-with-darwen.bastwell-daisyfield.2018-05-03": "E05011509",
    "local.blackburn-with-darwen.billinge-beardwood.2018-05-03": "E05011510",
    "local.blackburn-with-darwen.blackburn-central.2018-05-03": "E05011511",
    "local.blackburn-with-darwen.blackburn-south-east.2018-05-03": "E05011513",
    "local.blackburn-with-darwen.blackburn-south-lower-darwen.2018-05-03": "E05011512",
    "local.blackburn-with-darwen.darwen-east.2018-05-03": "E05011514",
    "local.blackburn-with-darwen.darwen-south.2018-05-03": "E05011515",
    "local.blackburn-with-darwen.darwen-west.2018-05-03": "E05011516",
    "local.blackburn-with-darwen.ewood.2018-05-03": "E05011517",
    "local.blackburn-with-darwen.little-harwood-whitebirk.2018-05-03": "E05011518",
    "local.blackburn-with-darwen.livesey-with-pleasington.2018-05-03": "E05011519",
    "local.blackburn-with-darwen.mill-hill-moorgate.2018-05-03": "E05011520",
    "local.blackburn-with-darwen.roe-lee.2018-05-03": "E05011521",
    "local.blackburn-with-darwen.shear-brow-corporation-park.2018-05-03": "E05011522",
    "local.blackburn-with-darwen.wensley-fold.2018-05-03": "E05011523",
    "local.blackburn-with-darwen.west-pennine.2018-05-03": "E05011524",
    "local.cherwell.adderbury-bloxham-bodicote.2018-05-03": "E05011348",
    "local.cherwell.banbury-calthorpe-easington.2018-05-03": "E05011349",
    "local.croydon.addiscombe-east.2018-05-03": "E05011462",
    "local.croydon.addiscombe-west.2018-05-03": "E05011463",
    "local.croydon.bensham-manor.2018-05-03": "E05011464",
    "local.croydon.broad-green.2018-05-03": "E05011465",
    "local.croydon.coulsdon-town.2018-05-03": "E05011466",
    "local.croydon.crystal-palace-upper-norwood.2018-05-03": "E05011467",
    "local.croydon.fairfield.2018-05-03": "E05011468",
    "local.croydon.kenley.2018-05-03": "E05011469",
    "local.croydon.new-addington-north.2018-05-03": "E05011470",
    "local.croydon.new-addington-south.2018-05-03": "E05011471",
    "local.croydon.norbury-park.2018-05-03": "E05011473",
    "local.croydon.norbury-pollards-hill.2018-05-03": "E05011472",
    "local.croydon.old-coulsdon.2018-05-03": "E05011474",
    "local.croydon.park-hill-whitgift.2018-05-03": "E05011475",
    "local.croydon.purley-oaks-riddlesdown.2018-05-03": "E05011477",
    "local.croydon.purley-woodcote.2018-05-03": "E05011476",
    "local.croydon.sanderstead.2018-05-03": "E05011478",
    "local.croydon.selhurst.2018-05-03": "E05011479",
    "local.croydon.selsdon-addington-village.2018-05-03": "E05011480",
    "local.croydon.selsdon-vale-forestdale.2018-05-03": "E05011481",
    "local.croydon.shirley-north.2018-05-03": "E05011482",
    "local.croydon.south-croydon.2018-05-03": "E05011484",
    "local.croydon.south-norwood.2018-05-03": "E05011485",
    "local.croydon.thornton-heath.2018-05-03": "E05011486",
    "local.croydon.waddon.2018-05-03": "E05011487",
    "local.croydon.west-thornton.2018-05-03": "E05011488",
    "local.croydon.woodside.2018-05-03": "E05011489",
    "local.eastleigh.bishopstoke.2018-05-03": "E05011187",
    "local.eastleigh.botley.2018-05-03": "E05011188",
    "local.eastleigh.bursledon-hound-north.2018-05-03": "E05011189",
    "local.eastleigh.chandlers-ford.2018-05-03": "E05011190",
    "local.eastleigh.eastleigh-central.2018-05-03": "E05011191",
    "local.eastleigh.eastleigh-north.2018-05-03": "E05011192",
    "local.eastleigh.eastleigh-south.2018-05-03": "E05011193",
    "local.eastleigh.fair-oak-horton-heath.2018-05-03": "E05011194",
    "local.eastleigh.hamble-netley.2018-05-03": "E05011195",
    "local.eastleigh.hedge-end-north.2018-05-03": "E05011196",
    "local.eastleigh.hedge-end-south.2018-05-03": "E05011197",
    "local.eastleigh.hiltingbury.2018-05-03": "E05011198",
    "local.eastleigh.west-end-north.2018-05-03": "E05011199",
    "local.eastleigh.west-end-south.2018-05-03": "E05011200",
    "local.harrogate.bishop-monkton-newby.2018-05-03": "E05011308",
    "local.harrogate.boroughbridge.2018-05-03": "E05011309",
    "local.harrogate.claro.2018-05-03": "E05011310",
    "local.harrogate.fountains-ripley.2018-05-03": "E05011311",
    "local.harrogate.harrogate-bilton-grange.2018-05-03": "E05011312",
    "local.harrogate.harrogate-bilton-woodfield.2018-05-03": "E05011313",
    "local.harrogate.harrogate-central.2018-05-03": "E05011314",
    "local.harrogate.harrogate-coppice-valley.2018-05-03": "E05011315",
    "local.harrogate.harrogate-duchy.2018-05-03": "E05011316",
    "local.harrogate.harrogate-fairfax.2018-05-03": "E05011317",
    "local.harrogate.harrogate-harlow.2018-05-03": "E05011318",
    "local.harrogate.harrogate-high-harrogate.2018-05-03": "E05011319",
    "local.harrogate.harrogate-hookstone.2018-05-03": "E05011320",
    "local.harrogate.harrogate-kingsley.2018-05-03": "E05011321",
    "local.harrogate.harrogate-new-park.2018-05-03": "E05011322",
    "local.harrogate.harrogate-oatlands.2018-05-03": "E05011323",
    "local.harrogate.harrogate-old-bilton.2018-05-03": "E05011324",
    "local.harrogate.harrogate-pannal.2018-05-03": "E05011325",
    "local.harrogate.harrogate-saltergate.2018-05-03": "E05011327",
    "local.harrogate.harrogate-starbeck.2018-05-03": "E05011328",
    "local.harrogate.harrogate-st-georges.2018-05-03": "E05011326",
    "local.harrogate.harrogate-stray.2018-05-03": "E05011329",
    "local.harrogate.harrogate-valley-gardens.2018-05-03": "E05011330",
    "local.harrogate.killinghall-hampsthwaite.2018-05-03": "E05011331",
    "local.harrogate.knaresborough-aspin-calcutt.2018-05-03": "E05011332",
    "local.harrogate.knaresborough-castle.2018-05-03": "E05011333",
    "local.harrogate.knaresborough-eastfield.2018-05-03": "E05011334",
    "local.harrogate.knaresborough-scriven-park.2018-05-03": "E05011335",
    "local.harrogate.marston-moor.2018-05-03": "E05011336",
    "local.harrogate.masham-kirkby-malzeard.2018-05-03": "E05011337",
    "local.harrogate.nidd-valley.2018-05-03": "E05011338",
    "local.harrogate.ouseburn.2018-05-03": "E05011339",
    "local.harrogate.pateley-bridge-nidderdale-moors.2018-05-03": "E05011340",
    "local.harrogate.ripon-minster.2018-05-03": "E05011341",
    "local.harrogate.ripon-moorside.2018-05-03": "E05011342",
    "local.harrogate.ripon-spa.2018-05-03": "E05011343",
    "local.harrogate.ripon-ure-bank.2018-05-03": "E05011344",
    "local.harrogate.spofforth-with-lower-wharfedale.2018-05-03": "E05011345",
    "local.harrogate.washburn.2018-05-03": "E05011346",
    "local.harrogate.wathvale.2018-05-03": "E05011347",
    "local.hastings.ashdown.2018-05-03": "E05011201",
    "local.hastings.baird.2018-05-03": "E05011202",
    "local.hastings.braybrooke.2018-05-03": "E05011203",
    "local.hastings.castle.2018-05-03": "E05011204",
    "local.hastings.central-st-leonards.2018-05-03": "E05011205",
    "local.hastings.conquest.2018-05-03": "E05011206",
    "local.hastings.gensing.2018-05-03": "E05011207",
    "local.hastings.hollington.2018-05-03": "E05011208",
    "local.hastings.maze-hill.2018-05-03": "E05011209",
    "local.hastings.old-hastings.2018-05-03": "E05011210",
    "local.hastings.ore.2018-05-03": "E05011211",
    "local.hastings.silverhill.2018-05-03": "E05011213",
    "local.hastings.st-helens.2018-05-03": "E05011212",
    "local.hastings.tressell.2018-05-03": "E05011214",
    "local.hastings.west-st-leonards.2018-05-03": "E05011215",
    "local.hastings.wishing-tree.2018-05-03": "E05011216",
    "local.huntingdonshire.alconbury.2018-05-03": "E05011256",
    "local.huntingdonshire.brampton.2018-05-03": "E05011257",
    "local.huntingdonshire.buckden.2018-05-03": "E05011258",
    "local.huntingdonshire.fenstanton.2018-05-03": "E05011259",
    "local.huntingdonshire.godmanchester-hemingford-abbots.2018-05-03": "E05011260",
    "local.huntingdonshire.great-paxton.2018-05-03": "E05011261",
    "local.huntingdonshire.great-staughton.2018-05-03": "E05011262",
    "local.huntingdonshire.hemingford-grey-houghton.2018-05-03": "E05011263",
    "local.huntingdonshire.holywell-cum-needingworth.2018-05-03": "E05011264",
    "local.huntingdonshire.huntingdon-east.2018-05-03": "E05011265",
    "local.huntingdonshire.huntingdon-north.2018-05-03": "E05011266",
    "local.huntingdonshire.kimbolton.2018-05-03": "E05011267",
    "local.huntingdonshire.ramsey.2018-05-03": "E05011268",
    "local.huntingdonshire.sawtry.2018-05-03": "E05011276",
    "local.huntingdonshire.somersham.2018-05-03": "E05011277",
    "local.huntingdonshire.stilton-folksworth-washingley.2018-05-03": "E05011278",
    "local.huntingdonshire.st-ives-east.2018-05-03": "E05011269",
    "local.huntingdonshire.st-ives-south.2018-05-03": "E05011270",
    "local.huntingdonshire.st-ives-west.2018-05-03": "E05011271",
    "local.huntingdonshire.st-neots-east.2018-05-03": "E05011272",
    "local.huntingdonshire.st-neots-eatons.2018-05-03": "E05011273",
    "local.huntingdonshire.st-neots-eynesbury.2018-05-03": "E05011274",
    "local.huntingdonshire.st-neots-priory-park-little-paxton.2018-05-03": "E05011275",
    "local.huntingdonshire.the-stukeleys.2018-05-03": "E05011279",
    "local.huntingdonshire.warboys.2018-05-03": "E05011280",
    "local.huntingdonshire.yaxley.2018-05-03": "E05011281",
    "local.kingston-upon-hull.avenue.2018-05-03": "E05011525",
    "local.kingston-upon-hull.beverley-newland.2018-05-03": "E05011526",
    "local.kingston-upon-hull.boothferry.2018-05-03": "E05011527",
    "local.kingston-upon-hull.bricknell.2018-05-03": "E05011528",
    "local.kingston-upon-hull.central.2018-05-03": "E05011529",
    "local.kingston-upon-hull.derringham.2018-05-03": "E05011530",
    "local.kingston-upon-hull.drypool.2018-05-03": "E05011531",
    "local.kingston-upon-hull.holderness.2018-05-03": "E05011532",
    "local.kingston-upon-hull.ings.2018-05-03": "E05011533",
    "local.kingston-upon-hull.kingswood.2018-05-03": "E05011534",
    "local.kingston-upon-hull.longhill-bilton-grange.2018-05-03": "E05011535",
    "local.kingston-upon-hull.marfleet.2018-05-03": "E05011536",
    "local.kingston-upon-hull.newington-gipsyville.2018-05-03": "E05011537",
    "local.kingston-upon-hull.north-carr.2018-05-03": "E05011538",
    "local.kingston-upon-hull.orchard-park.2018-05-03": "E05011539",
    "local.kingston-upon-hull.pickering.2018-05-03": "E05011540",
    "local.kingston-upon-hull.southcoates.2018-05-03": "E05011542",
    "local.kingston-upon-hull.st-andrews-docklands.2018-05-03": "E05011541",
    "local.kingston-upon-hull.sutton.2018-05-03": "E05011543",
    "local.kingston-upon-hull.university.2018-05-03": "E05011544",
    "local.kingston-upon-hull.west-carr.2018-05-03": "E05011545",
    "local.leeds.adel-wharfedale.2018-05-03": "E05011382",
    "local.leeds.alwoodley.2018-05-03": "E05011383",
    "local.leeds.ardsley-robin-hood.2018-05-03": "E05011384",
    "local.leeds.armley.2018-05-03": "E05011385",
    "local.leeds.beeston-holbeck.2018-05-03": "E05011386",
    "local.leeds.bramley-stanningley.2018-05-03": "E05011387",
    "local.leeds.burmantofts-richmond-hill.2018-05-03": "E05011388",
    "local.leeds.calverley-farsley.2018-05-03": "E05011389",
    "local.leeds.chapel-allerton.2018-05-03": "E05011390",
    "local.leeds.cross-gates-whinmoor.2018-05-03": "E05011391",
    "local.leeds.farnley-wortley.2018-05-03": "E05011392",
    "local.leeds.garforth-swillington.2018-05-03": "E05011393",
    "local.leeds.gipton-harehills.2018-05-03": "E05011394",
    "local.leeds.guiseley-rawdon.2018-05-03": "E05011395",
    "local.leeds.harewood.2018-05-03": "E05011396",
    "local.leeds.headingley-hyde-park.2018-05-03": "E05011397",
    "local.leeds.horsforth.2018-05-03": "E05011398",
    "local.leeds.hunslet-riverside.2018-05-03": "E05011399",
    "local.leeds.killingbeck-seacroft.2018-05-03": "E05011400",
    "local.leeds.kippax-methley.2018-05-03": "E05011401",
    "local.leeds.kirkstall.2018-05-03": "E05011402",
    "local.leeds.little-london-woodhouse.2018-05-03": "E05011403",
    "local.leeds.middleton-park.2018-05-03": "E05011404",
    "local.leeds.moortown.2018-05-03": "E05011405",
    "local.leeds.morley-north.2018-05-03": "E05011406",
    "local.leeds.morley-south.2018-05-03": "E05011407",
    "local.leeds.otley-yeadon.2018-05-03": "E05011408",
    "local.leeds.pudsey.2018-05-03": "E05011409",
    "local.leeds.rothwell.2018-05-03": "E05011410",
    "local.leeds.roundhay.2018-05-03": "E05011411",
    "local.leeds.temple-newsam.2018-05-03": "E05011412",
    "local.leeds.weetwood.2018-05-03": "E05011413",
    "local.leeds.wetherby.2018-05-03": "E05011414",
    "local.manchester.ancoats-beswick.2018-05-03": "E05011350",
    "local.manchester.ardwick.2018-05-03": "E05011351",
    "local.manchester.baguley.2018-05-03": "E05011352",
    "local.manchester.brooklands.2018-05-03": "E05011353",
    "local.manchester.burnage.2018-05-03": "E05011354",
    "local.manchester.charlestown.2018-05-03": "E05011355",
    "local.manchester.cheetham.2018-05-03": "E05011356",
    "local.manchester.chorlton.2018-05-03": "E05011357",
    "local.manchester.chorlton-park.2018-05-03": "E05011358",
    "local.manchester.clayton-openshaw.2018-05-03": "E05011359",
    "local.manchester.crumpsall.2018-05-03": "E05011360",
    "local.manchester.deansgate.2018-05-03": "E05011361",
    "local.manchester.didsbury-west.2018-05-03": "E05011363",
    "local.manchester.fallowfield.2018-05-03": "E05011364",
    "local.manchester.gorton-abbey-hey.2018-05-03": "E05011365",
    "local.manchester.harpurhey.2018-05-03": "E05011366",
    "local.manchester.higher-blackley.2018-05-03": "E05011367",
    "local.manchester.hulme.2018-05-03": "E05011368",
    "local.manchester.levenshulme.2018-05-03": "E05011369",
    "local.manchester.longsight.2018-05-03": "E05011370",
    "local.manchester.miles-platting-newton-heath.2018-05-03": "E05011371",
    "local.manchester.moss-side.2018-05-03": "E05011372",
    "local.manchester.moston.2018-05-03": "E05011373",
    "local.manchester.northenden.2018-05-03": "E05011374",
    "local.manchester.old-moat.2018-05-03": "E05011375",
    "local.manchester.piccadilly.2018-05-03": "E05011376",
    "local.manchester.rusholme.2018-05-03": "E05011377",
    "local.manchester.sharston.2018-05-03": "E05011378",
    "local.manchester.whalley-range.2018-05-03": "E05011379",
    "local.manchester.withington.2018-05-03": "E05011380",
    "local.manchester.woodhouse-park.2018-05-03": "E05011381",
    "local.newcastle-under-lyme.audley.2018-05-03": "E05011415",
    "local.newcastle-under-lyme.bradwell.2018-05-03": "E05011416",
    "local.newcastle-under-lyme.clayton.2018-05-03": "E05011417",
    "local.newcastle-under-lyme.crackley-red-street.2018-05-03": "E05011418",
    "local.newcastle-under-lyme.cross-heath.2018-05-03": "E05011419",
    "local.newcastle-under-lyme.holditch-chesterton.2018-05-03": "E05011420",
    "local.newcastle-under-lyme.keele.2018-05-03": "E05011421",
    "local.newcastle-under-lyme.kidsgrove-ravenscliffe.2018-05-03": "E05011422",
    "local.newcastle-under-lyme.knutton.2018-05-03": "E05011423",
    "local.newcastle-under-lyme.loggerheads.2018-05-03": "E05011424",
    "local.newcastle-under-lyme.madeley-betley.2018-05-03": "E05011425",
    "local.newcastle-under-lyme.maer-whitmore.2018-05-03": "E05011426",
    "local.newcastle-under-lyme.may-bank.2018-05-03": "E05011427",
    "local.newcastle-under-lyme.newchapel-mow-cop.2018-05-03": "E05011428",
    "local.newcastle-under-lyme.silverdale.2018-05-03": "E05011429",
    "local.newcastle-under-lyme.talke-butt-lane.2018-05-03": "E05011430",
    "local.newcastle-under-lyme.thistleberry.2018-05-03": "E05011431",
    "local.newcastle-under-lyme.town.2018-05-03": "E05011432",
    "local.newcastle-under-lyme.westbury-park-northwood.2018-05-03": "E05011433",
    "local.newcastle-under-lyme.westlands.2018-05-03": "E05011434",
    "local.newcastle-under-lyme.wolstanton.2018-05-03": "E05011435",
    "local.newcastle-upon-tyne.arthurs-hill.2018-05-03": "E05011436",
    "local.newcastle-upon-tyne.benwell-scotswood.2018-05-03": "E05011437",
    "local.newcastle-upon-tyne.blakelaw.2018-05-03": "E05011438",
    "local.newcastle-upon-tyne.byker.2018-05-03": "E05011439",
    "local.newcastle-upon-tyne.callerton-throckley.2018-05-03": "E05011440",
    "local.newcastle-upon-tyne.castle.2018-05-03": "E05011441",
    "local.newcastle-upon-tyne.chapel.2018-05-03": "E05011442",
    "local.newcastle-upon-tyne.dene-south-gosforth.2018-05-03": "E05011443",
    "local.newcastle-upon-tyne.denton-westerhope.2018-05-03": "E05011444",
    "local.newcastle-upon-tyne.elswick.2018-05-03": "E05011445",
    "local.newcastle-upon-tyne.fawdon-west-gosforth.2018-05-03": "E05011446",
    "local.newcastle-upon-tyne.gosforth.2018-05-03": "E05011447",
    "local.newcastle-upon-tyne.heaton.2018-05-03": "E05011448",
    "local.newcastle-upon-tyne.kenton.2018-05-03": "E05011449",
    "local.newcastle-upon-tyne.kingston-park-south-newbiggin-hall.2018-05-03": "E05011450",
    "local.newcastle-upon-tyne.lemington.2018-05-03": "E05011451",
    "local.newcastle-upon-tyne.manor-park.2018-05-03": "E05011452",
    "local.newcastle-upon-tyne.monument.2018-05-03": "E05011453",
    "local.newcastle-upon-tyne.north-jesmond.2018-05-03": "E05011454",
    "local.newcastle-upon-tyne.ouseburn.2018-05-03": "E05011455",
    "local.newcastle-upon-tyne.parklands.2018-05-03": "E05011456",
    "local.newcastle-upon-tyne.south-jesmond.2018-05-03": "E05011457",
    "local.newcastle-upon-tyne.walker.2018-05-03": "E05011458",
    "local.newcastle-upon-tyne.walkergate.2018-05-03": "E05011459",
    "local.newcastle-upon-tyne.west-fenham.2018-05-03": "E05011460",
    "local.newcastle-upon-tyne.wingrove.2018-05-03": "E05011461",
    "local.redbridge.aldborough.2018-05-03": "E05011234",
    "local.redbridge.barkingside.2018-05-03": "E05011235",
    "local.redbridge.bridge.2018-05-03": "E05011236",
    "local.redbridge.chadwell.2018-05-03": "E05011237",
    "local.redbridge.churchfields.2018-05-03": "E05011238",
    "local.redbridge.clayhall.2018-05-03": "E05011239",
    "local.redbridge.clementswood.2018-05-03": "E05011240",
    "local.redbridge.cranbrook.2018-05-03": "E05011241",
    "local.redbridge.fairlop.2018-05-03": "E05011242",
    "local.redbridge.fullwell.2018-05-03": "E05011243",
    "local.redbridge.goodmayes.2018-05-03": "E05011244",
    "local.redbridge.hainault.2018-05-03": "E05011245",
    "local.redbridge.ilford-town.2018-05-03": "E05011246",
    "local.redbridge.loxford.2018-05-03": "E05011247",
    "local.redbridge.mayfield.2018-05-03": "E05011248",
    "local.redbridge.monkhams.2018-05-03": "E05011249",
    "local.redbridge.newbury.2018-05-03": "E05011250",
    "local.redbridge.seven-kings.2018-05-03": "E05011251",
    "local.redbridge.south-woodford.2018-05-03": "E05011252",
    "local.redbridge.valentines.2018-05-03": "E05011253",
    "local.redbridge.wanstead-park.2018-05-03": "E05011254",
    "local.redbridge.wanstead-village.2018-05-03": "E05011255",
    "local.south-cambridgeshire.balsham.2018-05-03": "E05011282",
    "local.south-cambridgeshire.bar-hill.2018-05-03": "E05011283",
    "local.south-cambridgeshire.barrington.2018-05-03": "E05011284",
    "local.south-cambridgeshire.bassingbourn.2018-05-03": "E05011285",
    "local.south-cambridgeshire.caldecote.2018-05-03": "E05011286",
    "local.south-cambridgeshire.cambourne.2018-05-03": "E05011287",
    "local.south-cambridgeshire.caxton-papworth.2018-05-03": "E05011288",
    "local.south-cambridgeshire.cottenham.2018-05-03": "E05011289",
    "local.south-cambridgeshire.duxford.2018-05-03": "E05011290",
    "local.south-cambridgeshire.fen-ditton-fulbourn.2018-05-03": "E05011291",
    "local.south-cambridgeshire.foxton.2018-05-03": "E05011292",
    "local.south-cambridgeshire.gamlingay.2018-05-03": "E05011293",
    "local.south-cambridgeshire.girton.2018-05-03": "E05011294",
    "local.south-cambridgeshire.hardwick.2018-05-03": "E05011295",
    "local.south-cambridgeshire.harston-comberton.2018-05-03": "E05011296",
    "local.south-cambridgeshire.histon-impington.2018-05-03": "E05011297",
    "local.south-cambridgeshire.linton.2018-05-03": "E05011298",
    "local.south-cambridgeshire.longstanton.2018-05-03": "E05011299",
    "local.south-cambridgeshire.melbourn.2018-05-03": "E05011300",
    "local.south-cambridgeshire.milton-waterbeach.2018-05-03": "E05011301",
    "local.south-cambridgeshire.over-willingham.2018-05-03": "E05011302",
    "local.south-cambridgeshire.sawston.2018-05-03": "E05011303",
    "local.south-cambridgeshire.shelford.2018-05-03": "E05011304",
    "local.south-cambridgeshire.swavesey.2018-05-03": "E05011305",
    "local.south-cambridgeshire.the-mordens.2018-05-03": "E05011306",
    "local.south-cambridgeshire.whittlesford.2018-05-03": "E05011307",
    "local.south-lakeland.ambleside-grasmere.2018-05-03": "E05011490",
    "local.south-lakeland.arnside-milnthorpe.2018-05-03": "E05011491",
    "local.south-lakeland.bowness-levens.2018-05-03": "E05011492",
    "local.south-lakeland.broughton-coniston.2018-05-03": "E05011493",
    "local.south-lakeland.burton-crooklands.2018-05-03": "E05011494",
    "local.south-lakeland.cartmel.2018-05-03": "E05011495",
    "local.south-lakeland.furness-peninsula.2018-05-03": "E05011496",
    "local.south-lakeland.grange.2018-05-03": "E05011497",
    "local.south-lakeland.kendal-east.2018-05-03": "E05011498",
    "local.south-lakeland.kendal-north.2018-05-03": "E05011499",
    "local.south-lakeland.kendal-rural.2018-05-03": "E05011500",
    "local.south-lakeland.kendal-south-natland.2018-05-03": "E05011501",
    "local.south-lakeland.kendal-town.2018-05-03": "E05011502",
    "local.south-lakeland.kendal-west.2018-05-03": "E05011503",
    "local.south-lakeland.sedbergh-kirkby-lonsdale.2018-05-03": "E05011504",
    "local.south-lakeland.ulverston-east.2018-05-03": "E05011505",
    "local.south-lakeland.ulverston-west.2018-05-03": "E05011506",
    "local.south-lakeland.windermere.2018-05-03": "E05011507",
    "local.southwark.borough-bankside.2018-05-03": "E05011095",
    "local.southwark.camberwell-green.2018-05-03": "E05011096",
    "local.southwark.champion-hill.2018-05-03": "E05011097",
    "local.southwark.chaucer.2018-05-03": "E05011098",
    "local.southwark.dulwich-hill.2018-05-03": "E05011099",
    "local.southwark.dulwich-village.2018-05-03": "E05011100",
    "local.southwark.dulwich-wood.2018-05-03": "E05011101",
    "local.southwark.faraday.2018-05-03": "E05011102",
    "local.southwark.goose-green.2018-05-03": "E05011103",
    "local.southwark.newington.2018-05-03": "E05011105",
    "local.southwark.north-bermondsey.2018-05-03": "E05011106",
    "local.southwark.north-walworth.2018-05-03": "E05011107",
    "local.southwark.nunhead-queens-road.2018-05-03": "E05011108",
    "local.southwark.old-kent-road.2018-05-03": "E05011109",
    "local.southwark.peckham.2018-05-03": "E05011110",
    "local.southwark.peckham-rye.2018-05-03": "E05011111",
    "local.southwark.rotherhithe.2018-05-03": "E05011112",
    "local.southwark.rye-lane.2018-05-03": "E05011113",
    "local.southwark.south-bermondsey.2018-05-03": "E05011116",
    "local.southwark.st-georges.2018-05-03": "E05011114",
    "local.southwark.st-giles.2018-05-03": "E05011115",
    "local.southwark.surrey-docks.2018-05-03": "E05011117",
    "local.stockport.marple-south-and-high-lane.2018-05-03": "E05000795",
    "local.croydon.shirley-south.2018-05-03": "E05011483",
    "local.manchester.didsbury-east.2018-05-03": "E05011362"
}

notes:

my process is to match the surrounding local authority based on the GSS code, then spatially join for wards within that, strip off the weird stuff/punctuation and then match directly with the ward slug from EE that works perfectly for all wards except two: Croydon Shirley South (which Boundary Line has mis-spelled!) and Manchester Didsbury East which I think has a slight discontinuity outside the surrounding local authority boundary. So those two are manual.

chris48s commented 6 years ago

Now that we have a process, tooling and reports in place to cover the full end-to-end process of:

I am going to claim victory and close this