Skip to content

Instantly share code, notes, and snippets.

@psychemedia
Created September 24, 2014 21:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save psychemedia/615acde2707cb8fdb2c8 to your computer and use it in GitHub Desktop.
Save psychemedia/615acde2707cb8fdb2c8 to your computer and use it in GitHub Desktop.
Thread pulling on directors associated with PFI SPVs
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:ee0199f8f296ea8dbd1277f0f684b0f171ae623479a892d5de22ce54afd1e3d6"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"A Quick Thread Pull Around PFI SPecial Purpose Vehicles"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Another quick look at the [2013 summary data about current PFI contracts](https://www.gov.uk/government/publications/private-finance-initiative-projects-2013-summary-data), this time focusing on the *special purpose vehicles* (SPVs) set up to operate the projects.\n",
"\n",
"Not all projects in the spreadsheets have a declared SPV, but some of them do - and where they do, the company number is generally given, which is handy:-)\n",
"\n",
"In this notebook, I'll have a quick look at some of the things we might be able to learn about the SPVs, and perhaps something of the corporate structures they're enmeshed in, from open data retrieved from [OpenCorporates](http://opencorproates.com)."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Load in some libraries to help us work with the data\n",
"import pandas as pd\n",
"import networkx as nx"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 146
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Data source - download the PFI summary data to the data/ directory\n",
"#wget https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/267640/pfi_current_projects_list_march_2013_published_dec_2013.xlsx -P data\n",
"\n",
"#Import the data we've just downloaded - by insprection, the first row is ignorable\n",
"df=pd.read_excel('data/pfi_current_projects_list_march_2013_published_dec_2013.xlsx',skiprows=1)\n",
"\n",
"df[:3]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unique HMT Project ID</th>\n",
" <th>Project Name</th>\n",
" <th>Department</th>\n",
" <th>Procuring authority</th>\n",
" <th>Sector</th>\n",
" <th>Constituency</th>\n",
" <th>Region</th>\n",
" <th>Project Status</th>\n",
" <th>Date Of OJEU</th>\n",
" <th>Date of preferred bidder</th>\n",
" <th>...</th>\n",
" <th>Equity holder 4: change of ownership since March 2011? \n",
"(Yes / No)</th>\n",
" <th>Equity holder 5: Name</th>\n",
" <th>Equity holder 5: Equity share (%)</th>\n",
" <th>Equity holder 5: change of ownership since March 2011? \n",
"(Yes / No)</th>\n",
" <th>Equity holder 6: Name</th>\n",
" <th>Equity holder 6: Equity share (%)</th>\n",
" <th>Equity holder 6: change of ownership since March 2011? \n",
"(Yes / No)</th>\n",
" <th>SPV name</th>\n",
" <th>SPV company number</th>\n",
" <th>SPV address</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> 2</td>\n",
" <td> Sunningdale Park Site</td>\n",
" <td> CABINET OFFICE (GROUP)</td>\n",
" <td> CABINET OFFICE</td>\n",
" <td> Other</td>\n",
" <td> Windsor</td>\n",
" <td> ENGLAND_South East</td>\n",
" <td> InOperation</td>\n",
" <td> 1998-04-17</td>\n",
" <td> 2002-03-01</td>\n",
" <td>...</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> DeVere Venues Ltd</td>\n",
" <td> not known</td>\n",
" <td> DeVere Venues Ltd</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> 3</td>\n",
" <td> Compass</td>\n",
" <td> CROWN PROSECUTION SERVICE (GROUP)</td>\n",
" <td> THE CROWN PROSECUTION SERVICE</td>\n",
" <td> IT Infrastructure and communications</td>\n",
" <td> More than one</td>\n",
" <td> National/More than one region</td>\n",
" <td> InOperation</td>\n",
" <td> 2000-10-06</td>\n",
" <td> N/K</td>\n",
" <td>...</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> 5</td>\n",
" <td> RRS Ernest Shackleton </td>\n",
" <td> DEPT FOR BUSINESS INNOVATION AND SKILLS (GROUP)</td>\n",
" <td> NATURAL ENVIRONMENT RESEARCH COUNCIL</td>\n",
" <td> Other</td>\n",
" <td> More than one</td>\n",
" <td> National/More than one region</td>\n",
" <td> InOperation</td>\n",
" <td> 1997-12-01</td>\n",
" <td> N/K</td>\n",
" <td>...</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> RRS Ernest Shackleton</td>\n",
" <td> N/K</td>\n",
" <td> N/K</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>3 rows \u00d7 107 columns</p>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 166,
"text": [
" Unique HMT Project ID Project Name \\\n",
"0 2 Sunningdale Park Site \n",
"1 3 Compass \n",
"2 5 RRS Ernest Shackleton \n",
"\n",
" Department \\\n",
"0 CABINET OFFICE (GROUP) \n",
"1 CROWN PROSECUTION SERVICE (GROUP) \n",
"2 DEPT FOR BUSINESS INNOVATION AND SKILLS (GROUP) \n",
"\n",
" Procuring authority Sector \\\n",
"0 CABINET OFFICE Other \n",
"1 THE CROWN PROSECUTION SERVICE IT Infrastructure and communications \n",
"2 NATURAL ENVIRONMENT RESEARCH COUNCIL Other \n",
"\n",
" Constituency Region Project Status Date Of OJEU \\\n",
"0 Windsor ENGLAND_South East InOperation 1998-04-17 \n",
"1 More than one National/More than one region InOperation 2000-10-06 \n",
"2 More than one National/More than one region InOperation 1997-12-01 \n",
"\n",
" Date of preferred bidder ... \\\n",
"0 2002-03-01 ... \n",
"1 N/K ... \n",
"2 N/K ... \n",
"\n",
" Equity holder 4: change of ownership since March 2011? \\n(Yes / No) \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"\n",
" Equity holder 5: Name Equity holder 5: Equity share (%) \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"\n",
" Equity holder 5: change of ownership since March 2011? \\n(Yes / No) \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"\n",
" Equity holder 6: Name Equity holder 6: Equity share (%) \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"\n",
" Equity holder 6: change of ownership since March 2011? \\n(Yes / No) \\\n",
"0 NaN \n",
"1 NaN \n",
"2 NaN \n",
"\n",
" SPV name SPV company number SPV address \n",
"0 DeVere Venues Ltd not known DeVere Venues Ltd \n",
"1 NaN NaN NaN \n",
"2 RRS Ernest Shackleton N/K N/K \n",
"\n",
"[3 rows x 107 columns]"
]
}
],
"prompt_number": 166
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Look to see if there are any obvious 'not known' style beacons in the SPV company number column\n",
"df['SPV company number'].value_counts()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 167,
"text": [
"N/K 232\n",
"0 11\n",
"4934390 5\n",
"30938R 2\n",
"6836081 2\n",
"217803.00 2\n",
"4729043 2\n",
"20165R 2\n",
"4341625 2\n",
"02700386 1\n",
"494117 1\n",
"2984969 1\n",
"4988242 1\n",
"sc251424 1\n",
"3471077 1\n",
"...\n",
"4130538 1\n",
"3824177 1\n",
"5071716 1\n",
"SC 178807 1\n",
"3762571 1\n",
"7489177 1\n",
"4187974 1\n",
"3112891 1\n",
"3523237 1\n",
"3490223.00 1\n",
"4764331 1\n",
"4794356 1\n",
"7279250 1\n",
"3278829 1\n",
"not known 1\n",
"Length: 453, dtype: int64"
]
}
],
"prompt_number": 167
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#To make life easier, produce a view over the data that contains things that might have SPV company numbers available\n",
"spv=df.dropna(subset=['SPV company number'])\n",
"spv=spv[~spv['SPV company number'].isin(['N/K',0,'0','not known'])]\n",
"\n",
"#Preview the first few rows\n",
"spv[:3]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unique HMT Project ID</th>\n",
" <th>Project Name</th>\n",
" <th>Department</th>\n",
" <th>Procuring authority</th>\n",
" <th>Sector</th>\n",
" <th>Constituency</th>\n",
" <th>Region</th>\n",
" <th>Project Status</th>\n",
" <th>Date Of OJEU</th>\n",
" <th>Date of preferred bidder</th>\n",
" <th>...</th>\n",
" <th>Equity holder 4: change of ownership since March 2011? \n",
"(Yes / No)</th>\n",
" <th>Equity holder 5: Name</th>\n",
" <th>Equity holder 5: Equity share (%)</th>\n",
" <th>Equity holder 5: change of ownership since March 2011? \n",
"(Yes / No)</th>\n",
" <th>Equity holder 6: Name</th>\n",
" <th>Equity holder 6: Equity share (%)</th>\n",
" <th>Equity holder 6: change of ownership since March 2011? \n",
"(Yes / No)</th>\n",
" <th>SPV name</th>\n",
" <th>SPV company number</th>\n",
" <th>SPV address</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4</th>\n",
" <td> 8</td>\n",
" <td> Barnsley Schools PFI</td>\n",
" <td> DEPARTMENT FOR EDUCATION (GROUP)</td>\n",
" <td> Barnsley</td>\n",
" <td> Schools (Non-BSF)</td>\n",
" <td> More than one</td>\n",
" <td> ENGLAND_Yorkshire and the Humber</td>\n",
" <td> InOperation</td>\n",
" <td> 2003-05-01</td>\n",
" <td> N/K</td>\n",
" <td>...</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> Modern Schools Barnsley</td>\n",
" <td> 5259225</td>\n",
" <td> 8 White Oak, Square Swanley, Kent, BR8 7AG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td> 12</td>\n",
" <td> Castle Hill Community Learning Centre &amp; Primar...</td>\n",
" <td> DEPARTMENT FOR EDUCATION (GROUP)</td>\n",
" <td> Bolton</td>\n",
" <td> Schools (Non-BSF)</td>\n",
" <td> Bolton North East</td>\n",
" <td> ENGLAND_North West</td>\n",
" <td> InOperation</td>\n",
" <td> 1998-03-26</td>\n",
" <td> N/K</td>\n",
" <td>...</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> CH Bolton Ltd.</td>\n",
" <td> 4341625</td>\n",
" <td> c/o Quayle Munro Ltd. 8 Charlotte Square, Edin...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td> 13</td>\n",
" <td> Hadley Learning &amp; Jigsaw Project</td>\n",
" <td> DEPARTMENT FOR EDUCATION (GROUP)</td>\n",
" <td> Telford and Wrekin</td>\n",
" <td> Schools (Non-BSF)</td>\n",
" <td> Wrekin, The</td>\n",
" <td> ENGLAND_West Midlands</td>\n",
" <td> InOperation</td>\n",
" <td> 2003-06-16</td>\n",
" <td> N/K</td>\n",
" <td>...</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> NaN</td>\n",
" <td>NaN</td>\n",
" <td> NaN</td>\n",
" <td> Pyramid Schools (Hadley) Ltd</td>\n",
" <td> 5232548</td>\n",
" <td> Interserve House, Ruscombe Park, Twyford, Read...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>3 rows \u00d7 107 columns</p>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 165,
"text": [
" Unique HMT Project ID Project Name \\\n",
"4 8 Barnsley Schools PFI \n",
"8 12 Castle Hill Community Learning Centre & Primar... \n",
"9 13 Hadley Learning & Jigsaw Project \n",
"\n",
" Department Procuring authority Sector \\\n",
"4 DEPARTMENT FOR EDUCATION (GROUP) Barnsley Schools (Non-BSF) \n",
"8 DEPARTMENT FOR EDUCATION (GROUP) Bolton Schools (Non-BSF) \n",
"9 DEPARTMENT FOR EDUCATION (GROUP) Telford and Wrekin Schools (Non-BSF) \n",
"\n",
" Constituency Region Project Status \\\n",
"4 More than one ENGLAND_Yorkshire and the Humber InOperation \n",
"8 Bolton North East ENGLAND_North West InOperation \n",
"9 Wrekin, The ENGLAND_West Midlands InOperation \n",
"\n",
" Date Of OJEU Date of preferred bidder ... \\\n",
"4 2003-05-01 N/K ... \n",
"8 1998-03-26 N/K ... \n",
"9 2003-06-16 N/K ... \n",
"\n",
" Equity holder 4: change of ownership since March 2011? \\n(Yes / No) \\\n",
"4 NaN \n",
"8 NaN \n",
"9 NaN \n",
"\n",
" Equity holder 5: Name Equity holder 5: Equity share (%) \\\n",
"4 NaN NaN \n",
"8 NaN NaN \n",
"9 NaN NaN \n",
"\n",
" Equity holder 5: change of ownership since March 2011? \\n(Yes / No) \\\n",
"4 NaN \n",
"8 NaN \n",
"9 NaN \n",
"\n",
" Equity holder 6: Name Equity holder 6: Equity share (%) \\\n",
"4 NaN NaN \n",
"8 NaN NaN \n",
"9 NaN NaN \n",
"\n",
" Equity holder 6: change of ownership since March 2011? \\n(Yes / No) \\\n",
"4 NaN \n",
"8 NaN \n",
"9 NaN \n",
"\n",
" SPV name SPV company number \\\n",
"4 Modern Schools Barnsley 5259225 \n",
"8 CH Bolton Ltd. 4341625 \n",
"9 Pyramid Schools (Hadley) Ltd 5232548 \n",
"\n",
" SPV address \n",
"4 8 White Oak, Square Swanley, Kent, BR8 7AG \n",
"8 c/o Quayle Munro Ltd. 8 Charlotte Square, Edin... \n",
"9 Interserve House, Ruscombe Park, Twyford, Read... \n",
"\n",
"[3 rows x 107 columns]"
]
}
],
"prompt_number": 165
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Getting Compnay Information from OpenCorporates"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The SPV company numbers given for some of the PFI contracts can be used to pull down company information from OpenCorporates.\n",
"\n",
"The heuristic (rule of thumb) I'm going to use in this notebook is that the directors that are appointed in an SPV vehicle may also be appointed *en masse* to other companies associated with the SPV. (Actually, this is probably testable as a *hypothesis*!)\n",
"\n",
"What I intend to look for is companies that share all, or a significant number of, directors with the SPV. This is based in part upon an assumption about power and control, in the sense that directors are legally accountable for the activities of a company and are used to assert control over it (erm, is that actually true?! They are surely *liable*, at least? I need to check this...) If the set of directors of two companies are largely the same, then as a working assumption we might decide that the companies are working to similar ends, either as individual companies, or as part of the operation of a wider corporate grouping, a grouping that in part can be identfied through the directors."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#We're going to grab some JSON data from the OpenCorporates API - so load in some helper libraries\n",
"import requests, json"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def getOCdata(cid):\n",
" ''' Get company data from OpenCorporates given OpenCorporates id '''\n",
" \n",
" apiurl='https://api.opencorporates.com/v0.3'\n",
" r=requests.get(apiurl+cid)\n",
" return json.loads(r.text)['results']\n",
"\n",
"def getOCdataFromCompanyNumber(cid,territory='gb'):\n",
" return getOCdata('/'.join(['/companies',territory,cid]))\n",
"\n",
"def companyReport(ocdata):\n",
" c=ocdata['company']\n",
" txt='{0} (company number: {1}) of {2}, is an {3} company originally incorporated on {4}.'.format(c['name'],c['company_number'], c['registered_address_in_full'],c['current_status'],c['incorporation_date'])\n",
" print(txt)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 171
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pyramid=getOCdataFromCompanyNumber('5232548')\n",
"pyramid"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 173,
"text": [
"{'company': {'home_company': None,\n",
" 'source': {'publisher': 'UK Companies House',\n",
" 'terms': 'UK Crown Copyright',\n",
" 'url': 'http://xmlgw.companieshouse.gov.uk/',\n",
" 'retrieved_at': '2014-09-22T03:48:08+00:00'},\n",
" 'dissolution_date': None,\n",
" 'corporate_groupings': [],\n",
" 'updated_at': '2014-09-22T03:48:18+00:00',\n",
" 'previous_names': [],\n",
" 'opencorporates_url': 'https://opencorporates.com/companies/gb/05232548',\n",
" 'data': None,\n",
" 'registered_address_in_full': 'INTERSERVE HOUSE, RUSCOMBE PARK, TWYFORD, READING, BERKSHIRE BERKSHIRE',\n",
" 'inactive': False,\n",
" 'branch_status': None,\n",
" 'agent_name': None,\n",
" 'name': 'PYRAMID SCHOOLS (HADLEY) LIMITED',\n",
" 'created_at': '2010-10-23T02:08:49+00:00',\n",
" 'company_type': 'Private Limited Company',\n",
" 'officers': [{'officer': {'end_date': None,\n",
" 'position': 'secretary',\n",
" 'start_date': '2007-08-08',\n",
" 'id': 43804979,\n",
" 'name': 'WENDY LISA ROBERTS',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/43804979',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2011-06-02',\n",
" 'position': 'director',\n",
" 'start_date': '2008-12-31',\n",
" 'id': 43804982,\n",
" 'name': 'ROBERT DALE',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/43804982',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': None,\n",
" 'position': 'director',\n",
" 'start_date': '2006-12-15',\n",
" 'id': 43804984,\n",
" 'name': 'CHRISTOPHER RICHARD FIELD',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/43804984',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2013-08-01',\n",
" 'position': 'director',\n",
" 'start_date': '2008-07-07',\n",
" 'id': 43804985,\n",
" 'name': 'KENNETH WILLIAM GILLESPIE',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/43804985',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': None,\n",
" 'position': 'director',\n",
" 'start_date': '2009-09-01',\n",
" 'id': 43804987,\n",
" 'name': 'MARTIN TIMOTHY SMITH',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/43804987',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': None,\n",
" 'position': 'director',\n",
" 'start_date': '2011-06-02',\n",
" 'id': 50690971,\n",
" 'name': 'STEPHEN JOHN MALLION',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/50690971',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2005-03-15',\n",
" 'position': 'secretary',\n",
" 'start_date': '2004-09-16',\n",
" 'id': 55877481,\n",
" 'name': 'TREVOR BRADBURY',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/55877481',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2006-06-27',\n",
" 'position': 'secretary',\n",
" 'start_date': '2005-03-15',\n",
" 'id': 55877483,\n",
" 'name': 'MARTIN LEWIS',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/55877483',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2007-08-08',\n",
" 'position': 'secretary',\n",
" 'start_date': '2006-06-27',\n",
" 'id': 55877484,\n",
" 'name': 'LEIGH SMERDON',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/55877484',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2006-12-15',\n",
" 'position': 'director',\n",
" 'start_date': '2004-09-16',\n",
" 'id': 55877485,\n",
" 'name': 'GAYNOR BIRLEY SMITH',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/55877485',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2008-06-06',\n",
" 'position': 'director',\n",
" 'start_date': '2005-05-03',\n",
" 'id': 55877487,\n",
" 'name': 'TIMOTHY JOHN DICKIE',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/55877487',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2005-04-15',\n",
" 'position': 'director',\n",
" 'start_date': '2004-09-16',\n",
" 'id': 55877488,\n",
" 'name': 'VICTORIA HELEN DICKINSON',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/55877488',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2008-09-30',\n",
" 'position': 'director',\n",
" 'start_date': '2006-02-08',\n",
" 'id': 55877489,\n",
" 'name': 'MARK LOWRY',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/55877489',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2005-12-05',\n",
" 'position': 'director',\n",
" 'start_date': '2004-09-16',\n",
" 'id': 55877490,\n",
" 'name': 'FUAD SHAKSHIR',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/55877490',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2008-12-31',\n",
" 'position': 'director',\n",
" 'start_date': '2004-09-16',\n",
" 'id': 55877491,\n",
" 'name': 'ROBERT DAVID VINCE',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/55877491',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': None,\n",
" 'position': 'director',\n",
" 'start_date': '2013-08-01',\n",
" 'id': 74483511,\n",
" 'name': 'CHRISTOPHER THOMAS SOLLEY',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/74483511',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': None,\n",
" 'position': 'director',\n",
" 'start_date': '2014-07-01',\n",
" 'id': 97067020,\n",
" 'name': 'JOSEPH EUGENE PHILIPSZ',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/97067020',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2004-09-16',\n",
" 'position': 'nominated secretary',\n",
" 'start_date': '2004-09-15',\n",
" 'id': 105968172,\n",
" 'name': ' BRIGHTON SECRETARY LTD',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/105968172',\n",
" 'uid': None}},\n",
" {'officer': {'end_date': '2004-09-16',\n",
" 'position': 'nominated director',\n",
" 'start_date': '2004-09-15',\n",
" 'id': 105968173,\n",
" 'name': ' BRIGHTON DIRECTOR LTD',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/105968173',\n",
" 'uid': None}}],\n",
" 'agent_address': None,\n",
" 'industry_codes': [{'industry_code': {'title': 'Other business support service activities n.e.c.',\n",
" 'code_system': 'UK SIC Codes 2007',\n",
" 'uid': '82.99'}},\n",
" {'industry_code': {'title': 'Educational support activities',\n",
" 'code_system': 'UK SIC Codes 2007',\n",
" 'uid': '85.60'}}],\n",
" 'registry_url': 'http://data.companieshouse.gov.uk/doc/company/05232548',\n",
" 'filings': [{'filing': {'id': 205119658,\n",
" 'date': '2014-07-18',\n",
" 'title': 'Annual Accounts',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/205119658',\n",
" 'uid': '12c698eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0djpyg/Mw8XUzNDUycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDQxMDc0OLJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCFPzRE'}},\n",
" {'filing': {'id': 205119659,\n",
" 'date': '2014-07-14',\n",
" 'title': 'Appointment of director',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/205119659',\n",
" 'uid': '30110deJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhjZ+OQQO8IUzNDAycuzvi0/KLcksqCVCdxFscAA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDEwNzQ5MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAVZNNg='}},\n",
" {'filing': {'id': 204355285,\n",
" 'date': '2014-07-01',\n",
" 'title': \"Change of director's details\",\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/204355285',\n",
" 'uid': '7df470eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhjJzPL8GAvU1NLcycuzvi0/KLcksqCVCdxFmcPA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDEwNzA8MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPdXNMM='}},\n",
" {'filing': {'id': 204355286,\n",
" 'date': '2014-06-12',\n",
" 'title': \"Change of director's details\",\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/204355286',\n",
" 'uid': '366d53eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhjyzA3v6BQU1NzSycuzvi0/KLcksqCVCdxFmcPA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDEwMzQ6MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABKVNOk='}},\n",
" {'filing': {'id': 198624227,\n",
" 'date': '2013-09-25',\n",
" 'title': 'Annual Return',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/198624227',\n",
" 'uid': '53b8f4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgjDz/3AG9PU2NDSycuzvi0/KLcksqCVCdxFscgA0MnLtb4lOTEEidxRkOYMYklQFkOIwNDYwNLI9MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAA1oNOQ='}},\n",
" {'filing': {'id': 194922944,\n",
" 'date': '2013-08-02',\n",
" 'title': 'Termination of appointment of director ',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/194922944',\n",
" 'uid': 'd9abe8eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgjlwjzYIMAUyMzCycuzvi0/KLcksqCVCdxlhBfA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDYwMLA6MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAKgNNU='}},\n",
" {'filing': {'id': 194922943,\n",
" 'date': '2013-08-02',\n",
" 'title': 'Appointment of director',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/194922943',\n",
" 'uid': '1ce724eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgjlwjzYANLUyMzCycuzvi0/KLcksqCVCdxFscAA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDYwMLA6MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAOgUNK4='}},\n",
" {'filing': {'id': 192616952,\n",
" 'date': '2013-06-26',\n",
" 'title': 'Annual Accounts',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/192616952',\n",
" 'uid': '823bb6eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0cjJwPPAOdIUyNjIycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDQ2MDMyOzJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgB7hzQ2'}},\n",
" {'filing': {'id': 178687832,\n",
" 'date': '2012-09-17',\n",
" 'title': 'Annual Return',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/178687832',\n",
" 'uid': 'aab106eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhDD3+LAM8oE0sTSycuzvi0/KLcksqCVCdxFscgA0MnLtb4lOTEEidxRkOYMYklQFkOIwNDIwNLQ/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABLONOw='}},\n",
" {'filing': {'id': 178687833,\n",
" 'date': '2012-06-22',\n",
" 'title': 'Annual Accounts',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/178687833',\n",
" 'uid': 'dfe333eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0dDJ++gqDBTEwszMycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDQyMDMyOjJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCVtjRZ'}},\n",
" {'filing': {'id': 125825476,\n",
" 'date': '2011-09-19',\n",
" 'title': 'Annual Return',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825476',\n",
" 'uid': '5560a4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4hgi4DwCH9jE1MLMycuzvi0/KLcksqCVCdxFscgA0MnLtb4lOTEEidxRkOYMYklQFkOIwNDQwNLQ8smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACPmNQM='}},\n",
" {'filing': {'id': 125825477,\n",
" 'date': '2011-07-01',\n",
" 'title': 'Annual Accounts',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825477',\n",
" 'uid': '50fe3deJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8coP4vQMBczE1NDAycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDQ0MDcwPDJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCWpTRY'}},\n",
" {'filing': {'id': 125825478,\n",
" 'date': '2011-06-15',\n",
" 'title': 'Appointment of director',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825478',\n",
" 'uid': 'a04505eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4jwAJPI0CgXExNLQycuzvi0/KLcksqCVCdxFscAA6AQa3xKcmKJkzijEcyYxBKgLIeRgaGhgZmhaZOac35uQWJeZmqxR35pcaqVVYSvj3u4lZVnbmJ6KpTyTq0kUhk3AwMDIxAzATEzELMAMSsQswExOxBzADEnEHMBMTcAL6g1EQ=='}},\n",
" {'filing': {'id': 125825479,\n",
" 'date': '2011-06-14',\n",
" 'title': 'Termination of appointment of director ',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825479',\n",
" 'uid': 'cf5de4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4jwAJOw0ChHExNLAycuzvi0/KLcksqCVCdxlhBfA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDQwMzQ5MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuADRPNRk='}},\n",
" {'filing': {'id': 125825480,\n",
" 'date': '2010-09-20',\n",
" 'title': 'Annual Return',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825480',\n",
" 'uid': 'bd754eeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhnJ7cIP29jEyNzIycuzvi0/KLcksqCVCdxFscgA0MnLtb4lOTEEidxRkOYMYklQFkOIwNDAwNLI4MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAATeNNU='}},\n",
" {'filing': {'id': 125825482,\n",
" 'date': '2010-06-17',\n",
" 'title': 'Annual Accounts',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825482',\n",
" 'uid': '5490b4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDAx8/M/9Q73BnEyMDCycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDQwMDM0PzJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCpDDR0'}},\n",
" {'filing': {'id': 125825491,\n",
" 'date': '2009-12-07',\n",
" 'title': \"Change of director's details\",\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825491',\n",
" 'uid': '5b5029eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhnR19XNx8vEwMzMycuzvi0/KLcksqCVCdxFmcPA0MnLtb4lOTEEidxRiOYMYklQFkOIwMDS0MjA/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAaGNNk='}},\n",
" {'filing': {'id': 125825488,\n",
" 'date': '2009-12-07',\n",
" 'title': \"Change of director's details\",\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825488',\n",
" 'uid': '316467eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhnR19vN58AEwMzMycuzvi0/KLcksqCVCdxFmcPA0MnLtb4lOTEEidxRiOYMYklQFkOIwMDS0MjA/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAA8gNOU='}},\n",
" {'filing': {'id': 125825485,\n",
" 'date': '2009-12-07',\n",
" 'title': \"Change of secretary's details\",\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825485',\n",
" 'uid': 'df0c98eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhnd3dzNx9nEwMzMycuzvi0/KLcksqCVCdxFmcPA2MnLtb4lOTEEidxRiOYMYklQFkOIwMDS0MjA/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPijNMY='}},\n",
" {'filing': {'id': 125825494,\n",
" 'date': '2009-09-23',\n",
" 'title': 'Companies Annual Return',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825494',\n",
" 'uid': '99eb38eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhXFw8jF08jEwNDYycuzvi0/KLcksqCVCdxFmMz40QnLtb4lOTEEidxRkOYMYklQFkOIwMDSwNLI+MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAOo1NLU='}},\n",
" {'filing': {'id': 125825496,\n",
" 'date': '2009-09-18',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825496',\n",
" 'uid': '794b6aeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8co1wAvF2dvEwNDQycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDSwNLQ4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABL2NPA='}},\n",
" {'filing': {'id': 125825498,\n",
" 'date': '2009-07-11',\n",
" 'title': 'Annual Accounts',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825498',\n",
" 'uid': 'e54338eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDAx/jcCdLJ7dQYwsDAycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDA0sDc0PDJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCJuTRJ'}},\n",
" {'filing': {'id': 125825505,\n",
" 'date': '2009-01-09',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825505',\n",
" 'uid': '63fabeeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgPH0t3MxdzYzNzQycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDSwNDA8smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPURNMQ='}},\n",
" {'filing': {'id': 125825502,\n",
" 'date': '2009-01-09',\n",
" 'title': 'Terminating appointment as Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825502',\n",
" 'uid': '9b6f5deJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgPH0s3MxczYzNzQycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDSwNDA8smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPRBNMM='}},\n",
" {'filing': {'id': 125825508,\n",
" 'date': '2008-10-23',\n",
" 'title': 'Annual Accounts',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825508',\n",
" 'uid': 'b657f2eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDAx93N2dLEzMnYzNDSycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDAwtDAyPjJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgBtizQg'}},\n",
" {'filing': {'id': 125825511,\n",
" 'date': '2008-10-16',\n",
" 'title': 'Terminating appointment as Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825511',\n",
" 'uid': '77d775eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4hIM0dL40gfYzNDYycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDC0MDQ7MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAVdNNo='}},\n",
" {'filing': {'id': 125825514,\n",
" 'date': '2008-10-06',\n",
" 'title': 'Filing dated 2008-10-06',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825514',\n",
" 'uid': 'ceaf8eeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0ezIA8jY183YzMDMycuzvi0/KLcksqCVCdx1iDXYENjJy7W+JTkxBIncUZLmDmJJUBpDiMDAwtDAwOzJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgAmxjT9'}},\n",
" {'filing': {'id': 125825518,\n",
" 'date': '2008-09-19',\n",
" 'title': 'Companies Annual Return',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825518',\n",
" 'uid': 'f47743eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4jgwCgLY8tIY1NLEycuzvi0/KLcksqCVCdxFmMz40QnLtb4lOTEEidxRkOYMYklQFkOIwMDCwNLQ8smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAB6PNP8='}},\n",
" {'filing': {'id': 125825522,\n",
" 'date': '2008-07-16',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825522',\n",
" 'uid': '8d5c85eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwiXyEBjQzcPY1MTCycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDCwNzQ7MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAwoNOU='}},\n",
" {'filing': {'id': 125825523,\n",
" 'date': '2008-06-12',\n",
" 'title': 'Terminating appointment as Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825523',\n",
" 'uid': 'f1594feJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwizAC8nA08TY1MjEycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDCwMzQ6MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAO4yNLo='}},\n",
" {'filing': {'id': 125825526,\n",
" 'date': '2007-10-05',\n",
" 'title': 'Annual Accounts',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825526',\n",
" 'uid': '6800c7eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8coVwvnEE9PY2NTYycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDA3NDAwPTJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCW+zRa'}},\n",
" {'filing': {'id': 125825529,\n",
" 'date': '2007-09-21',\n",
" 'title': 'Companies Annual Return',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825529',\n",
" 'uid': '17fc84eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4gA86DgEFNHY2MTQycuzvi0/KLcksqCVCdxFmMz40QnLtb4lOTEEidxRkOYMYklQFkOIwMDcwNLI8MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAA/0NOg='}},\n",
" {'filing': {'id': 125825531,\n",
" 'date': '2007-08-17',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825531',\n",
" 'uid': '86343eeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgvo8iAYDNjY2NDcycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDcwMLQ/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAkyNOE='}},\n",
" {'filing': {'id': 125825532,\n",
" 'date': '2007-08-16',\n",
" 'title': 'Terminating appointment as Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825532',\n",
" 'uid': 'a07cd5eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwjPKGPzYFMfY2NDcycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDcwMLQ7MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAkyNOE='}},\n",
" {'filing': {'id': 125825536,\n",
" 'date': '2006-12-18',\n",
" 'title': 'Terminating appointment as Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825536',\n",
" 'uid': '8abbf4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgnUy8vH3d3Y0MTAycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDM0MjQ4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAWSNNs='}},\n",
" {'filing': {'id': 125825535,\n",
" 'date': '2006-12-18',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825535',\n",
" 'uid': '53ecdaeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgnU7cwH3d/Y0MTAycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDM0MjQ4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABBnNOo='}},\n",
" {'filing': {'id': 125825545,\n",
" 'date': '2006-09-25',\n",
" 'title': 'Companies Annual Return',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825545',\n",
" 'uid': '718d75eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4jIMF9XLxMXYwMLIycuzvi0/KLcksqCVCdxFmMz40QnLtb4lOTEEidxRkOYMYklQFkOIwMDMwNLI9MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAByFNPo='}},\n",
" {'filing': {'id': 125825547,\n",
" 'date': '2006-07-18',\n",
" 'title': 'Annual Accounts',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825547',\n",
" 'uid': 'b90fd9eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDAx//sGAzD0NvYwNjQycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDAzMDc0OLJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCU6TRZ'}},\n",
" {'filing': {'id': 125825551,\n",
" 'date': '2006-07-10',\n",
" 'title': 'Terminating appointment as Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825551',\n",
" 'uid': '700579eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwh/3yg39ygDYwMjYycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDMwNzQ4MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACEUNP8='}},\n",
" {'filing': {'id': 125825549,\n",
" 'date': '2006-07-10',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825549',\n",
" 'uid': '3973e6eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwh/3yhP9yhjYwMjYycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDMwNzQ4MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACTCNQQ='}},\n",
" {'filing': {'id': 125825553,\n",
" 'date': '2006-03-10',\n",
" 'title': 'Change of particulars for Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825553',\n",
" 'uid': 'f511e1eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0cL/8BgF08vI0sTIycuzvi0/KLcksqCVCdxFiMLi2QnLtb4lOTEEidxRiOYMYklQFkOIwMDMwNjQ4MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAypNOM='}},\n",
" {'filing': {'id': 125825555,\n",
" 'date': '2006-02-15',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825555',\n",
" 'uid': '404781eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhTxygL58gQI0sjEycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDMwMjQ9MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABbDNPI='}},\n",
" {'filing': {'id': 125825557,\n",
" 'date': '2005-12-07',\n",
" 'title': 'Terminating appointment as Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825557',\n",
" 'uid': '705eb8eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4hISxN/JwNzIwtzMycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDU0MjA/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPLzNMA='}},\n",
" {'filing': {'id': 125825559,\n",
" 'date': '2005-12-02',\n",
" 'title': 'Change of particulars for Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825559',\n",
" 'uid': 'ec6e58eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4iIYAtnxzAnIwtzYycuzvi0/KLcksqCVCdxFiMLi2QnLtb4lOTEEidxRiOYMYklQFkOIwMDU0MjA6MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAB3cNPo='}},\n",
" {'filing': {'id': 125825561,\n",
" 'date': '2005-10-21',\n",
" 'title': 'Filing dated 2005-10-21',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825561',\n",
" 'uid': '661262eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0fHSG8jS88wIwsTcycuzvi0/KLcksqCVCdxFmMz42InLtb4lOTEEidxRkOYMYklQFkOIwMDU0MDI8MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAbeNNw='}},\n",
" {'filing': {'id': 125825563,\n",
" 'date': '2005-08-10',\n",
" 'title': 'Change of particulars for Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825563',\n",
" 'uid': 'ffe8e5eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0dDJz9/c09fI3NLEycuzvi0/KLcksqCVCdxFiMLi2QnLtb4lOTEEidxRiOYMYklQFkOIwMDUwMLQ4MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPckNMc='}},\n",
" {'filing': {'id': 125825564,\n",
" 'date': '2005-07-21',\n",
" 'title': 'Change of particulars for Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825564',\n",
" 'uid': '274ed1eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0d/S8cws0h3I3NzMycuzvi0/KLcksqCVCdxFiMLi2QnLtb4lOTEEidxRiOYMYklQFkOIwMDUwNzI8MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAkzNOA='}},\n",
" {'filing': {'id': 125825565,\n",
" 'date': '2005-07-08',\n",
" 'title': 'Change of Accounting Reference Date',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825565',\n",
" 'uid': '94c8b0eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0fLKKdgMx9nI3MzSycuzvi0/KLcksqCVCdxZiMjUycu1viU5MQSJ3FGS5gpiSVASQ4jAwNTA3MDiyY15/zcgsS8zNRij/zS4lQrqwhfH/dwKyvP3MT0VCjlnVpJpDJuBgYGRiBmAmJmIGYBYlYgZgNidiDmAGJOIOYCYm4At400eQ=='}},\n",
" {'filing': {'id': 125825566,\n",
" 'date': '2005-06-17',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825566',\n",
" 'uid': '4f402eeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8cgXw83M4MAI3NTYycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDUwMzQ/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPnINMs='}},\n",
" {'filing': {'id': 125825570,\n",
" 'date': '2005-04-28',\n",
" 'title': 'Terminating appointment as Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825570',\n",
" 'uid': 'cbf64feJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0f/KG93E/8AI3NDcycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDUwMTI4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABlaNPc='}},\n",
" {'filing': {'id': 125825569,\n",
" 'date': '2005-04-28',\n",
" 'title': 'Filing dated 2005-04-28',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825569',\n",
" 'uid': '0c8190eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0f/KG8nE39vI3NDcycuzvi0/KLcksqCVCdxNgsLDSPNICcu1viU5MQSJ3FGC5hBiSVAeQ4jAwNTAxMjiyY15/zcgsS8zNRij/zS4lQrqwhfH/dwKyvP3MT0VCjlnVpJpDJuBgYGRiBmAmJmIGYBYlYgZgNidiDmAGJOIOYCYm4AYAc1Ng=='}},\n",
" {'filing': {'id': 125825568,\n",
" 'date': '2005-04-28',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825568',\n",
" 'uid': 'a14d50eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0f/KG9XE38/I3NDcycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDUwMTI4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABXdNPI='}},\n",
" {'filing': {'id': 125825567,\n",
" 'date': '2005-04-28',\n",
" 'title': 'Terminating appointment as Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825567',\n",
" 'uid': 'bd80c4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8cAP1MLk8AQI3NDcycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDUwMTI4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPq2NM0='}},\n",
" {'filing': {'id': 125825572,\n",
" 'date': '2005-04-01',\n",
" 'title': 'Particulars of a mortgage or charge',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825572',\n",
" 'uid': 'e99748eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0eTQBN3E6NQIzNLSycuzvi0/KLcksqCVCdxZmNLUycu1viU5MQSJ3FGE5gpiSVASQ4jAwNTAxMDwyY15/zcgsS8zNRij/zS4lQrqwhfH/dwKyvP3MT0VCjlnVpJpDJuBgYGRiBmAmJmIGYBYlYgZgNidiDmAGJOIOYCYm4Akgs0Qg=='}},\n",
" {'filing': {'id': 125825571,\n",
" 'date': '2005-04-01',\n",
" 'title': 'Filing dated 2005-04-01',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825571',\n",
" 'uid': '2b5352eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0djtygfEwN3IzNLcycuzvi0/KLcksqCVCdx1iDXYANDJy7W+JTkxBIncUZLmDmJJUBpDiMDA1MDEwPDJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgAqXDUA'}},\n",
" {'filing': {'id': 125825573,\n",
" 'date': '2005-03-09',\n",
" 'title': 'Change of Accounting Reference Date',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825573',\n",
" 'uid': '082629eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0dfT99gY0dTIzMLIycuzvi0/KLcksqCVCdxZiMjUycu1viU5MQSJ3FGS5gpiSVASQ4jAwNTA2MDyyY15/zcgsS8zNRij/zS4lQrqwhfH/dwKyvP3MT0VCjlnVpJpDJuBgYGRiBmAmJmIGYBYlYgZgNidiDmAGJOIOYCYm4AqEA0Yg=='}},\n",
" {'filing': {'id': 125825575,\n",
" 'date': '2004-11-08',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825575',\n",
" 'uid': '56069eeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8dAf5OgqDAXI1NLcycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDE0NDA4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACLmNQM='}},\n",
" {'filing': {'id': 125825574,\n",
" 'date': '2004-11-08',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825574',\n",
" 'uid': '2c62f7eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8dAf5PAqDBnI1NLcycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDE0NDA4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACF3NQE='}},\n",
" {'filing': {'id': 125825580,\n",
" 'date': '2004-10-08',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825580',\n",
" 'uid': 'e2e642eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0cjv1CjKOMII1NzUycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDE0MDA4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAP4cNNA='}},\n",
" {'filing': {'id': 125825578,\n",
" 'date': '2004-10-08',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825578',\n",
" 'uid': '787f3aeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0cjv1DjKONII1NzUycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDE0MDA4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAP+LNNI='}},\n",
" {'filing': {'id': 125825577,\n",
" 'date': '2004-10-08',\n",
" 'title': 'Appointment of Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825577',\n",
" 'uid': '6471a1eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0cjv1CTKOMoI1NzUycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDE0MDA4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAEJNNQ='}},\n",
" {'filing': {'id': 125825582,\n",
" 'date': '2004-09-16',\n",
" 'title': 'Terminating appointment as Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825582',\n",
" 'uid': 'ae0950eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgDd0+fSO9II1NTcycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDEwNLQ7MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACfhNQw='}},\n",
" {'filing': {'id': 125825581,\n",
" 'date': '2004-09-16',\n",
" 'title': 'Terminating appointment as Director or Secretary',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825581',\n",
" 'uid': '612ffaeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgDd8/ASG9jI1NTcycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDEwNLQ7MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABB6NOs='}},\n",
" {'filing': {'id': 125825583,\n",
" 'date': '2004-09-15',\n",
" 'title': 'Filing dated 2004-09-15',\n",
" 'opencorporates_url': 'https://opencorporates.com/filings/125825583',\n",
" 'uid': '557de6eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfj8DUyNjI1MTPQtnI1NTcycuzvi0/KLcksqCVCdxNj/XcE8/Zycu1viU5MQSJ3FGM5hBiSVAeQ4jAwMTA0tD0yY15/zcgsS8zNRij/zS4lQrqwhfH/dwKyvP3MT0VCjlnVpJpDJuBgYGRiBmAmJmIGYBYlYgZgNidiDmAGJOIOYCYm4AWI81PA=='}}],\n",
" 'financial_summary': None,\n",
" 'retrieved_at': '2014-09-22T03:48:08+00:00',\n",
" 'jurisdiction_code': 'gb',\n",
" 'controlling_entity': None,\n",
" 'current_status': 'Active',\n",
" 'company_number': '05232548',\n",
" 'incorporation_date': '2004-09-15'}}"
]
}
],
"prompt_number": 173
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"companyReport(pyramid)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"PYRAMID SCHOOLS (HADLEY) LIMITED (company number: 05232548) of INTERSERVE HOUSE, RUSCOMBE PARK, TWYFORD, READING, BERKSHIRE BERKSHIRE, is an Active company originally incorporated on 2004-09-15\n"
]
}
],
"prompt_number": 174
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As well as obtaining information about registered companies, we can also look up information about directors.\n",
"\n",
"In the company data, a list of officers is available with a separate ID identifying a particular officer in a particular role appointed to a particular company for a particular appointment period (which may be previous/closed or ongoing).\n",
"\n",
"Officers are listed with information about their role (for example, *director*, or *secretary*) as well as information (by implication) about whether they are currently active.\n",
"\n",
"Let's create a function that pulls out a listing of the currently active *directors* of a company from the company data."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#We can tunnel into the OpenCorporates data to get directors information\n",
"def getCurrentOfficers(ocd,role=[]):\n",
" ''' Get current officers from OpenCorporates company data '''\n",
" \n",
" curr=[]\n",
" for o in ocd['company']['officers']:\n",
" if o['officer']['end_date']==None:\n",
" if role!=[]:\n",
" if o['officer']['position'] in role:\n",
" curr.append(o['officer'])\n",
" else: curr.append(o['officer'])\n",
" return curr\n",
"#getCurrentOfficers(ocd)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 175
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pyramiddf=pd.DataFrame.from_dict(getCurrentOfficers(pyramid,'director'))\n",
"pyramiddf"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>end_date</th>\n",
" <th>id</th>\n",
" <th>name</th>\n",
" <th>opencorporates_url</th>\n",
" <th>position</th>\n",
" <th>start_date</th>\n",
" <th>uid</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> None</td>\n",
" <td> 43804984</td>\n",
" <td> CHRISTOPHER RICHARD FIELD</td>\n",
" <td> https://opencorporates.com/officers/43804984</td>\n",
" <td> director</td>\n",
" <td> 2006-12-15</td>\n",
" <td> None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> None</td>\n",
" <td> 43804987</td>\n",
" <td> MARTIN TIMOTHY SMITH</td>\n",
" <td> https://opencorporates.com/officers/43804987</td>\n",
" <td> director</td>\n",
" <td> 2009-09-01</td>\n",
" <td> None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> None</td>\n",
" <td> 50690971</td>\n",
" <td> STEPHEN JOHN MALLION</td>\n",
" <td> https://opencorporates.com/officers/50690971</td>\n",
" <td> director</td>\n",
" <td> 2011-06-02</td>\n",
" <td> None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> None</td>\n",
" <td> 74483511</td>\n",
" <td> CHRISTOPHER THOMAS SOLLEY</td>\n",
" <td> https://opencorporates.com/officers/74483511</td>\n",
" <td> director</td>\n",
" <td> 2013-08-01</td>\n",
" <td> None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td> None</td>\n",
" <td> 97067020</td>\n",
" <td> JOSEPH EUGENE PHILIPSZ</td>\n",
" <td> https://opencorporates.com/officers/97067020</td>\n",
" <td> director</td>\n",
" <td> 2014-07-01</td>\n",
" <td> None</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 176,
"text": [
" end_date id name \\\n",
"0 None 43804984 CHRISTOPHER RICHARD FIELD \n",
"1 None 43804987 MARTIN TIMOTHY SMITH \n",
"2 None 50690971 STEPHEN JOHN MALLION \n",
"3 None 74483511 CHRISTOPHER THOMAS SOLLEY \n",
"4 None 97067020 JOSEPH EUGENE PHILIPSZ \n",
"\n",
" opencorporates_url position start_date uid \n",
"0 https://opencorporates.com/officers/43804984 director 2006-12-15 None \n",
"1 https://opencorporates.com/officers/43804987 director 2009-09-01 None \n",
"2 https://opencorporates.com/officers/50690971 director 2011-06-02 None \n",
"3 https://opencorporates.com/officers/74483511 director 2013-08-01 None \n",
"4 https://opencorporates.com/officers/97067020 director 2014-07-01 None "
]
}
],
"prompt_number": 176
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def directorsSummary(cdata):\n",
" cd=pd.DataFrame.from_dict(getCurrentOfficers(cdata,'director'))\n",
" txt= '{0} currently has {1} active directors ({2}).'.format(cdata['company']['name'],len(cd),', '.join(cd['name']))\n",
" print(txt)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 186
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"directorsSummary(pyramid)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"PYRAMID SCHOOLS (HADLEY) LIMITED currently has 5 active directors (CHRISTOPHER RICHARD FIELD, MARTIN TIMOTHY SMITH, STEPHEN JOHN MALLION, CHRISTOPHER THOMAS SOLLEY, JOSEPH EUGENE PHILIPSZ).\n"
]
}
],
"prompt_number": 187
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's start pulling together a few functions to help us work with the OpenCorporates API a little more."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"APISTUB='http://api.opencorporates.com/v0.3'\n",
"\n",
"#To make calling the OpenCorporates API easier, we can register an account and get an API key\n",
"#I store my key in a key file and load it in as required\n",
"def getKey():\n",
" json_data=open('data/keys.json')\n",
" return json.load(json_data)['ockey']\n",
"ockey=getKey()\n",
"\n",
"def deslash(x): return x.strip('/')\n",
"def signed(url,sig=True):\n",
" if sig: return url+'?api_token='+ockey\n",
" return url\n",
" \n",
"def occStrip(ocURL):\n",
" return deslash(ocURL.replace('http://opencorporates.com/companies',''))\n",
" \n",
" \n",
"#Old code - needs revising to use requests library more idiomatically\n",
"def buildURL(items):\n",
" url=APISTUB\n",
" for i in items:\n",
" url='/'.join([url,deslash(i)])\n",
" return signed(url)\n",
"\n",
"\n",
"def getOCofficerData(ocid):\n",
" ''' Function to get data from the OpenCorporates API about a director, by director ID''' \n",
" \n",
" ocurl=buildURL(['officers',ocid])\n",
" r=requests.get(ocurl)\n",
" ocdata= json.loads(r.text)\n",
" return ocdata['results']\n",
" "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 126
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `getOCofficerData()` function allows us to get information from OpenCorporates about a director given their OpenCorporates director ID."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"getOCofficerData('97067020')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 127,
"text": [
"{'officer': {'company': {'company_number': '05232548',\n",
" 'name': 'PYRAMID SCHOOLS (HADLEY) LIMITED',\n",
" 'opencorporates_url': 'https://opencorporates.com/companies/gb/05232548',\n",
" 'jurisdiction_code': 'gb'},\n",
" 'source': {'source_type': 'external',\n",
" 'publisher': 'UK Companies House',\n",
" 'terms': 'UK Crown Copyright',\n",
" 'url': 'http://xmlgw.companieshouse.gov.uk/',\n",
" 'retrieved_at': '2014-09-22T03:48:17+00:00'},\n",
" 'position': 'director',\n",
" 'id': 97067020,\n",
" 'name': 'JOSEPH EUGENE PHILIPSZ',\n",
" 'opencorporates_url': 'https://opencorporates.com/officers/97067020',\n",
" 'uid': None}}"
]
}
],
"prompt_number": 127
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following fucntion is largely reused from some old code... The idea is that it allows you to look up a director by name on OpenCorporates and pull back records for officer appointments made to an officer with *exactly* the same name (case insensitively, I think?)."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"required=['director']\n",
"def getOCofficerCompaniesSearch(name,page=1,cidnames=pd.DataFrame(columns=['oname','ocurl','cname'])):\n",
" url=APISTUB+'/officers/search'\n",
" r=requests.get(url,params={'api_token':getKey(),'q':'\"'+name+'\"','per_page':100,'page':page})\n",
" #print(r.url)\n",
" ocdata= json.loads(r.text)['results']\n",
" for officer in ocdata['officers']:\n",
" if name==officer['officer']['name']:\n",
" if required!=[] and officer['officer']['position']in required:\n",
" #print 'Possible new company for',name,officer['officer']['company']['name']\n",
" #would a nominated secretary be interesting to search on? eg FIRST SECRETARIES LIMITED\n",
" #cidnames.append( ( occStrip(officer['officer']['company']['opencorporates_url']), occStrip(officer['officer']['company']['name']) ) )\n",
" cidnames=pd.concat([cidnames, pd.DataFrame([(name,occStrip(officer['officer']['company']['opencorporates_url']), occStrip(officer['officer']['company']['name']))],columns=['oname','ocurl','cname'])])\n",
" if page < ocdata['total_pages']:\n",
" #If there are lots of pages, eg for a nominee, we maybe need to warn the user....?\n",
" page=page+1\n",
" cidnames=getOCofficerCompaniesSearch(name,page,cidnames)\n",
" #http://api.opencorporates.com/v0.2/officers/search?q=john+smith\n",
" return cidnames"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 142
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the directors pulled back from a particular company, let's look up each director in turn to see what other companies they are current (\"active\") directors of, and then for each company we identify, count how many of the original set of directors are directors of those companies.\n",
"\n",
"The assumption is, if an original company has N directors, and we find another company with at least the same N directors, maybe those companies share a common goal, or are part of a common project or corporate group."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"on=pd.DataFrame()\n",
"for name in pyramiddf['name']:\n",
" on=pd.concat( [on, getOCofficerCompaniesSearch(name) ])\n",
" \n",
"tmp=on.groupby(['cname','ocurl']).oname.nunique().order(ascending=False)\n",
"tmp"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 202,
"text": [
"cname ocurl \n",
"PYRAMID SCHOOLS (TAMESIDE) HOLDINGS LIMITED https://opencorporates.com/companies/gb/04317596 5\n",
"PYRAMID SCHOOLS (TAMESIDE) LIMITED https://opencorporates.com/companies/gb/04317602 5\n",
"PYRAMID SCHOOLS (SOUTHAMPTON) LIMITED https://opencorporates.com/companies/gb/04261262 5\n",
"PYRAMID SCHOOLS (SOUTHAMPTON) HOLDINGS LIMITED https://opencorporates.com/companies/gb/04261229 5\n",
"PYRAMID SCHOOLS (HADLEY) LIMITED https://opencorporates.com/companies/gb/05232548 5\n",
"PYRAMID SCHOOLS (HADLEY) HOLDINGS LIMITED https://opencorporates.com/companies/gb/05232552 5\n",
"PYRAMID SCHOOLS (CORNWALL) LIMITED https://opencorporates.com/companies/gb/04988242 5\n",
"PYRAMID SCHOOLS (CORNWALL) (HOLDINGS) LIMITED https://opencorporates.com/companies/gb/04989553 5\n",
"PYRAMID ACCOMMODATION SERVICES (CORNWALL) LIMITED https://opencorporates.com/companies/gb/04157149 5\n",
"PYRAMID ACCOMMODATION SERVICES (CORNWALL) HOLDINGS LIMITED https://opencorporates.com/companies/gb/04157174 5\n",
"BELFAST EDUCATIONAL SERVICES LIMITED https://opencorporates.com/companies/gb/NI039114 3\n",
"BELFAST EDUCATIONAL SERVICES (DUNGANNON) HOLDINGS LTD https://opencorporates.com/companies/gb/NI042769 3\n",
"BELFAST EDUCATIONAL SERVICES (DUNGANNON) LIMITED https://opencorporates.com/companies/gb/NI046621 3\n",
"BELFAST EDUCATIONAL SERVICES (HOLDINGS) LIMITED https://opencorporates.com/companies/gb/NI038642 3\n",
"BELFAST EDUCATIONAL SERVICES (OMAGH) HOLDINGS LIMITED https://opencorporates.com/companies/gb/NI042770 3\n",
"...\n",
"NFM GAMES PRODUCTION LIMITED https://opencorporates.com/companies/gb/SC234148 1\n",
"NFM GAMES LIMITED https://opencorporates.com/companies/gb/SC234149 1\n",
"NEW NT LIMITED https://opencorporates.com/companies/gb/SC229484 1\n",
"NEW NT HOLDCO LIMITED https://opencorporates.com/companies/gb/04334392 1\n",
"NEMO SERVICES LIMITED https://opencorporates.com/companies/gb/SC217323 1\n",
"NCM MEZZANINE GENERAL PARTNER LIMITED https://opencorporates.com/companies/gb/SC314899 1\n",
"NCM FUND SERVICES LIMITED https://opencorporates.com/companies/gb/SC166074 1\n",
"MTS MANAGEMENT CONSULTANCY LIMITED https://opencorporates.com/companies/gb/03323366 1\n",
"MOTORRAD HOLDINGS LIMITED https://opencorporates.com/companies/gb/SC366184 1\n",
"MOTORRAD CENTRAL (SCOTLAND) LIMITED https://opencorporates.com/companies/gb/SC274747 1\n",
"MORRIS EDDIE LIMITED https://opencorporates.com/companies/gb/SC201468 1\n",
"ROBERTSON HEALTH (ST GEORGE'S) LIMITED https://opencorporates.com/companies/gb/04638901 1\n",
"LUTON HEALTH FACILITIES LIMITED https://opencorporates.com/companies/gb/03997485 1\n",
"LUTON HEALTH FACILITIES (HOLDINGS) LIMITED https://opencorporates.com/companies/gb/03997460 1\n",
"JUSTICE SUPPORT SERVICES (NORFOLK AND SUFFOLK) HOLDINGS LIMITED https://opencorporates.com/companies/gb/07109777 1\n",
"Name: oname, Length: 254, dtype: int64"
]
}
],
"prompt_number": 202
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `oname` count is a count of the number of directors the company has in common with the original \"target\" company."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see which companies have the same number of directors as the original company."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"tmp[tmp==len(pyramiddf)].reset_index()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cname</th>\n",
" <th>ocurl</th>\n",
" <th>oname</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td> PYRAMID SCHOOLS (TAMESIDE) HOLDINGS LIMITED</td>\n",
" <td> https://opencorporates.com/companies/gb/04317596</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td> PYRAMID SCHOOLS (TAMESIDE) LIMITED</td>\n",
" <td> https://opencorporates.com/companies/gb/04317602</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td> PYRAMID SCHOOLS (SOUTHAMPTON) LIMITED</td>\n",
" <td> https://opencorporates.com/companies/gb/04261262</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td> PYRAMID SCHOOLS (SOUTHAMPTON) HOLDINGS LIMITED</td>\n",
" <td> https://opencorporates.com/companies/gb/04261229</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td> PYRAMID SCHOOLS (HADLEY) LIMITED</td>\n",
" <td> https://opencorporates.com/companies/gb/05232548</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td> PYRAMID SCHOOLS (HADLEY) HOLDINGS LIMITED</td>\n",
" <td> https://opencorporates.com/companies/gb/05232552</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td> PYRAMID SCHOOLS (CORNWALL) LIMITED</td>\n",
" <td> https://opencorporates.com/companies/gb/04988242</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td> PYRAMID SCHOOLS (CORNWALL) (HOLDINGS) LIMITED</td>\n",
" <td> https://opencorporates.com/companies/gb/04989553</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td> PYRAMID ACCOMMODATION SERVICES (CORNWALL) LIMITED</td>\n",
" <td> https://opencorporates.com/companies/gb/04157149</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td> PYRAMID ACCOMMODATION SERVICES (CORNWALL) HOLD...</td>\n",
" <td> https://opencorporates.com/companies/gb/04157174</td>\n",
" <td> 5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 219,
"text": [
" cname \\\n",
"0 PYRAMID SCHOOLS (TAMESIDE) HOLDINGS LIMITED \n",
"1 PYRAMID SCHOOLS (TAMESIDE) LIMITED \n",
"2 PYRAMID SCHOOLS (SOUTHAMPTON) LIMITED \n",
"3 PYRAMID SCHOOLS (SOUTHAMPTON) HOLDINGS LIMITED \n",
"4 PYRAMID SCHOOLS (HADLEY) LIMITED \n",
"5 PYRAMID SCHOOLS (HADLEY) HOLDINGS LIMITED \n",
"6 PYRAMID SCHOOLS (CORNWALL) LIMITED \n",
"7 PYRAMID SCHOOLS (CORNWALL) (HOLDINGS) LIMITED \n",
"8 PYRAMID ACCOMMODATION SERVICES (CORNWALL) LIMITED \n",
"9 PYRAMID ACCOMMODATION SERVICES (CORNWALL) HOLD... \n",
"\n",
" ocurl oname \n",
"0 https://opencorporates.com/companies/gb/04317596 5 \n",
"1 https://opencorporates.com/companies/gb/04317602 5 \n",
"2 https://opencorporates.com/companies/gb/04261262 5 \n",
"3 https://opencorporates.com/companies/gb/04261229 5 \n",
"4 https://opencorporates.com/companies/gb/05232548 5 \n",
"5 https://opencorporates.com/companies/gb/05232552 5 \n",
"6 https://opencorporates.com/companies/gb/04988242 5 \n",
"7 https://opencorporates.com/companies/gb/04989553 5 \n",
"8 https://opencorporates.com/companies/gb/04157149 5 \n",
"9 https://opencorporates.com/companies/gb/04157174 5 "
]
}
],
"prompt_number": 219
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if we can pull all that into a single function, keyed by a company ID."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def voodooMagic(cnum):\n",
" cdata=getOCdataFromCompanyNumber(cnum)\n",
" companyReport(cdata)\n",
" directorsSummary(cdata)\n",
" directors=pd.DataFrame.from_dict(getCurrentOfficers(cdata,'director'))\n",
" directorCos=pd.DataFrame()\n",
" for name in directors['name']:\n",
" directorCos=pd.concat( [directorCos, getOCofficerCompaniesSearch(name) ])\n",
"\n",
" sharedCos=directorCos.groupby(['cname','ocurl']).oname.nunique().order(ascending=False)\n",
" sharedCos=sharedCos[sharedCos==len(directors)].reset_index()\n",
" return directors,sharedCos,directorCos"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 237
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"directors,sharedCos,directoCos=voodooMagic('5232548')\n",
"print(directors)\n",
"print(sharedCos)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"PYRAMID SCHOOLS (HADLEY) LIMITED (company number: 05232548) of INTERSERVE HOUSE, RUSCOMBE PARK, TWYFORD, READING, BERKSHIRE BERKSHIRE, is an Active company originally incorporated on 2004-09-15\n",
"PYRAMID SCHOOLS (HADLEY) LIMITED currently has 5 active directors (CHRISTOPHER RICHARD FIELD, MARTIN TIMOTHY SMITH, STEPHEN JOHN MALLION, CHRISTOPHER THOMAS SOLLEY, JOSEPH EUGENE PHILIPSZ).\n",
" end_date id name \\\n",
"0 None 43804984 CHRISTOPHER RICHARD FIELD \n",
"1 None 43804987 MARTIN TIMOTHY SMITH \n",
"2 None 50690971 STEPHEN JOHN MALLION \n",
"3 None 74483511 CHRISTOPHER THOMAS SOLLEY \n",
"4 None 97067020 JOSEPH EUGENE PHILIPSZ \n",
"\n",
" opencorporates_url position start_date uid \n",
"0 https://opencorporates.com/officers/43804984 director 2006-12-15 None \n",
"1 https://opencorporates.com/officers/43804987 director 2009-09-01 None \n",
"2 https://opencorporates.com/officers/50690971 director 2011-06-02 None \n",
"3 https://opencorporates.com/officers/74483511 director 2013-08-01 None \n",
"4 https://opencorporates.com/officers/97067020 director 2014-07-01 None "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" cname \\\n",
"0 PYRAMID SCHOOLS (TAMESIDE) HOLDINGS LIMITED \n",
"1 PYRAMID SCHOOLS (TAMESIDE) LIMITED \n",
"2 PYRAMID SCHOOLS (SOUTHAMPTON) LIMITED \n",
"3 PYRAMID SCHOOLS (SOUTHAMPTON) HOLDINGS LIMITED \n",
"4 PYRAMID SCHOOLS (HADLEY) LIMITED \n",
"5 PYRAMID SCHOOLS (HADLEY) HOLDINGS LIMITED \n",
"6 PYRAMID SCHOOLS (CORNWALL) LIMITED \n",
"7 PYRAMID SCHOOLS (CORNWALL) (HOLDINGS) LIMITED \n",
"8 PYRAMID ACCOMMODATION SERVICES (CORNWALL) LIMITED \n",
"9 PYRAMID ACCOMMODATION SERVICES (CORNWALL) HOLD... \n",
"\n",
" ocurl oname \n",
"0 https://opencorporates.com/companies/gb/04317596 5 \n",
"1 https://opencorporates.com/companies/gb/04317602 5 \n",
"2 https://opencorporates.com/companies/gb/04261262 5 \n",
"3 https://opencorporates.com/companies/gb/04261229 5 \n",
"4 https://opencorporates.com/companies/gb/05232548 5 \n",
"5 https://opencorporates.com/companies/gb/05232552 5 \n",
"6 https://opencorporates.com/companies/gb/04988242 5 \n",
"7 https://opencorporates.com/companies/gb/04989553 5 \n",
"8 https://opencorporates.com/companies/gb/04157149 5 \n",
"9 https://opencorporates.com/companies/gb/04157174 5 \n"
]
}
],
"prompt_number": 235
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"directors,sharedCos,directorCos=voodooMagic('4934390')\n",
"print(directors)\n",
"print(sharedCos)\n",
"directorCos.groupby(['cname','ocurl']).oname.nunique().order(ascending=False)[:15]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"NNT LIFT COMPANY (FUNDCO 1) LIMITED (company number: 04934390) of 4TH FLOOR, WEST TOWER BALTIC PLACE, GATESHEAD, NE8 3AE, is an Active company originally incorporated on 2003-10-16\n",
"NNT LIFT COMPANY (FUNDCO 1) LIMITED currently has 5 active directors (ALAN PETER FORDYCE, MARTIN PAUL ROONEY, ANDREW MARK GATE, JOHN MCDONAGH, JOSEPH EUGENE PHILIPSZ).\n",
" end_date id name \\\n",
"0 None 42152718 ALAN PETER FORDYCE \n",
"1 None 81622412 MARTIN PAUL ROONEY \n",
"2 None 82861072 ANDREW MARK GATE \n",
"3 None 82861073 JOHN MCDONAGH \n",
"4 None 99784985 JOSEPH EUGENE PHILIPSZ \n",
"\n",
" opencorporates_url position start_date uid \n",
"0 https://opencorporates.com/officers/42152718 director 2004-04-26 None \n",
"1 https://opencorporates.com/officers/81622412 director 2013-10-07 None \n",
"2 https://opencorporates.com/officers/82861072 director 2013-11-14 None \n",
"3 https://opencorporates.com/officers/82861073 director 2013-11-11 None \n",
"4 https://opencorporates.com/officers/99784985 director 2014-06-02 None "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" cname \\\n",
"0 NNT LIFT COMPANY (FUNDCO 1) LIMITED \n",
"\n",
" ocurl oname \n",
"0 https://opencorporates.com/companies/gb/04934390 5 \n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 241,
"text": [
"cname ocurl \n",
"NNT LIFT COMPANY (FUNDCO 1) LIMITED https://opencorporates.com/companies/gb/04934390 5\n",
"NNT LIFT COMPANY LIMITED https://opencorporates.com/companies/gb/04934392 4\n",
"NNT LIFT COMPANY (FUNDCO 2) LIMITED https://opencorporates.com/companies/gb/07652736 4\n",
"INFRASTRUCTURE INVESTORS CASTLEHILL LIMITED https://opencorporates.com/companies/gb/03897442 2\n",
"ROBERTSON HEALTH (GARTNAVEL) HOLDINGS LIMITED https://opencorporates.com/companies/gb/SC275430 2\n",
"ROBERTSON EDUCATION (FORFAR & CARNOUSTIE) LIMITED https://opencorporates.com/companies/gb/SC304795 2\n",
"ROBERTSON EDUCATION (INGLEBY BARWICK) (HOLDINGS) LIMITED https://opencorporates.com/companies/gb/04375611 2\n",
"ROBERTSON EDUCATION (INGLEBY BARWICK) LIMITED https://opencorporates.com/companies/gb/04375068 2\n",
"ROBERTSON HEALTH (CHESTER LE STREET) HOLDINGS LIMITED https://opencorporates.com/companies/gb/04236937 2\n",
"ROBERTSON HEALTH (CHESTER LE STREET) LIMITED https://opencorporates.com/companies/gb/04239073 2\n",
"ROBERTSON HEALTH (CLACKMANNANSHIRE) HOLDINGS LIMITED https://opencorporates.com/companies/gb/SC315451 2\n",
"ELGIN BSF LIMITED https://opencorporates.com/companies/gb/SC367840 2\n",
"ROBERTSON HEALTH (EASTER ROSS) LIMITED https://opencorporates.com/companies/gb/SC243124 2\n",
"ROBERTSON HEALTH (MIDLOTHIAN) (HOLDINGS) LIMITED https://opencorporates.com/companies/gb/SC345010 2\n",
"ROBERTSON HEALTH (GARTNAVEL) LIMITED https://opencorporates.com/companies/gb/SC271565 2\n",
"Name: oname, dtype: int64"
]
}
],
"prompt_number": 241
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"directors,sharedCos,directorCos=voodooMagic('07417700')\n",
"print(directors)\n",
"print(sharedCos)\n",
"directorCos.groupby(['cname','ocurl']).oname.nunique().order(ascending=False)[:15]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"SITA SOUTH TYNE & WEAR LIMITED (company number: 07417700) of LEND LEASE 3RD FLOOR THE VENUS, 1 OLD PARK LANE TRAFFORD, MANCHESTER, M41 7HG, is an Active company originally incorporated on 2010-10-25\n",
"SITA SOUTH TYNE & WEAR LIMITED currently has 6 active directors (AMANDA PADFIELD, IAN ANTHONY SEXTON, TSUNEHARU HIBINO, HELEN MARY MURPHY, STEVEN MARC PRIOR, GRAHAM ARTHUR MCKENNA-MAYES).\n",
" end_date id name \\\n",
"0 None 53371224 AMANDA PADFIELD \n",
"1 None 53371225 IAN ANTHONY SEXTON \n",
"2 None 55868656 TSUNEHARU HIBINO \n",
"3 None 55868658 HELEN MARY MURPHY \n",
"4 None 55868660 STEVEN MARC PRIOR \n",
"5 None 91075251 GRAHAM ARTHUR MCKENNA-MAYES \n",
"\n",
" opencorporates_url position start_date uid \n",
"0 https://opencorporates.com/officers/53371224 director 2011-03-21 None \n",
"1 https://opencorporates.com/officers/53371225 director 2011-06-22 None \n",
"2 https://opencorporates.com/officers/55868656 director 2012-04-26 None \n",
"3 https://opencorporates.com/officers/55868658 director 2012-09-30 None \n",
"4 https://opencorporates.com/officers/55868660 director 2012-09-30 None \n",
"5 https://opencorporates.com/officers/91075251 director 2014-03-07 None "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" cname \\\n",
"0 SITA SOUTH TYNE & WEAR LIMITED \n",
"1 SITA SOUTH TYNE & WEAR HOLDINGS LIMITED \n",
"\n",
" ocurl oname \n",
"0 https://opencorporates.com/companies/gb/07417700 6 \n",
"1 https://opencorporates.com/companies/gb/07418181 6 \n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 243,
"text": [
"cname ocurl \n",
"SITA SOUTH TYNE & WEAR LIMITED https://opencorporates.com/companies/gb/07417700 6\n",
"SITA SOUTH TYNE & WEAR HOLDINGS LIMITED https://opencorporates.com/companies/gb/07418181 6\n",
"SITA SEMBCORP UK LIMITED https://opencorporates.com/companies/gb/08033025 4\n",
"SITA WEST LONDON HOLDINGS LIMITED https://opencorporates.com/companies/gb/08586824 3\n",
"SITA SEMBCORP UK HOLDINGS LIMITED https://opencorporates.com/companies/gb/07983197 3\n",
"SITA CORNWALL LIMITED https://opencorporates.com/companies/gb/05696514 3\n",
"SITA CORNWALL HOLDINGS LIMITED https://opencorporates.com/companies/gb/05710695 3\n",
"SITA WEST LONDON LIMITED https://opencorporates.com/companies/gb/08588138 3\n",
"SITA NORTHUMBERLAND HOLDINGS LIMITED https://opencorporates.com/companies/gb/05944296 2\n",
"SITA NORTHUMBERLAND LIMITED https://opencorporates.com/companies/gb/05934106 2\n",
"FOCUSEDUCATION (LINCOLNSHIRE) HOLDINGS LIMITED https://opencorporates.com/companies/gb/04236503 1\n",
"FOCUSEDUCATION (LAMBETH) LIMITED https://opencorporates.com/companies/gb/04257230 1\n",
"F. AVANN LIMITED https://opencorporates.com/companies/gb/01229049 1\n",
"EXCHEQUER PARTNERSHIP PLC https://opencorporates.com/companies/gb/03810527 1\n",
"EXCHEQUER PARTNERSHIP HOLDINGS LIMITED https://opencorporates.com/companies/gb/03810496 1\n",
"Name: oname, dtype: int64"
]
}
],
"prompt_number": 243
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"directors,sharedCos,directorCos=voodooMagic('8169805')\n",
"print(directors)\n",
"print(sharedCos)\n",
"directorCos.groupby(['cname','ocurl']).oname.nunique().order(ascending=False)[:15]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"ISLAND ROADS SERVICES LIMITED (company number: 08169805) of 105 PICCADILLY, LONDON, W1J 7NJ, is an Active company originally incorporated on 2012-08-07\n",
"ISLAND ROADS SERVICES LIMITED currently has 6 active directors (GILLES PIERRE YVES BREEM, ROMAIN LIMOUZIN, PHILIPPE DANIEL JEAN MARTIN-DAGUET, RICHARD MARK ASHCROFT, ADRIAN JOHN LAWTON-WALLACE, ROMAIN VERZIER).\n",
" end_date id name \\\n",
"0 None 54789154 GILLES PIERRE YVES BREEM \n",
"1 None 54789156 ROMAIN LIMOUZIN \n",
"2 None 54789157 PHILIPPE DANIEL JEAN MARTIN-DAGUET \n",
"3 None 81659595 RICHARD MARK ASHCROFT \n",
"4 None 83760509 ADRIAN JOHN LAWTON-WALLACE \n",
"5 None 87727678 ROMAIN VERZIER \n",
"\n",
" opencorporates_url position start_date uid \n",
"0 https://opencorporates.com/officers/54789154 director 2012-10-02 None \n",
"1 https://opencorporates.com/officers/54789156 director 2012-09-21 None \n",
"2 https://opencorporates.com/officers/54789157 director 2012-10-02 None \n",
"3 https://opencorporates.com/officers/81659595 director 2013-05-21 None \n",
"4 https://opencorporates.com/officers/83760509 director 2013-11-19 None \n",
"5 https://opencorporates.com/officers/87727678 director 2014-02-04 None "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" cname \\\n",
"0 ISLAND ROADS INVESTMENT 2 LIMITED \n",
"1 ISLAND ROADS SERVICES LIMITED \n",
"2 ISLAND ROADS INVESTMENT LIMITED \n",
"\n",
" ocurl oname \n",
"0 https://opencorporates.com/companies/gb/08169759 6 \n",
"1 https://opencorporates.com/companies/gb/08169805 6 \n",
"2 https://opencorporates.com/companies/gb/08168976 6 \n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 244,
"text": [
"cname ocurl \n",
"ISLAND ROADS INVESTMENT 2 LIMITED https://opencorporates.com/companies/gb/08169759 6\n",
"ISLAND ROADS SERVICES LIMITED https://opencorporates.com/companies/gb/08169805 6\n",
"ISLAND ROADS INVESTMENT LIMITED https://opencorporates.com/companies/gb/08168976 6\n",
"HOUNSLOW HIGHWAYS SERVICES LIMITED https://opencorporates.com/companies/gb/08114900 3\n",
"HOUNSLOW HIGHWAYS INVESTMENT 2 LIMITED https://opencorporates.com/companies/gb/08114902 3\n",
"HOUNSLOW HIGHWAYS INVESTMENT LIMITED https://opencorporates.com/companies/gb/08113663 3\n",
"BRISTOL INFRACARE DEVELOPMENTS HOLDINGS (1) LIMITED https://opencorporates.com/companies/gb/05017728 2\n",
"PARTNERS 4 LIFT (FUNDCO 1) LIMITED https://opencorporates.com/companies/gb/05094450 2\n",
"PARTNERS 4 LIFT (BIDCOSTHOLDCO 1) LIMITED https://opencorporates.com/companies/gb/05094428 2\n",
"PARTNERS 4 LIFT (BIDCOSTCO 1) LIMITED https://opencorporates.com/companies/gb/05124427 2\n",
"BBH-LSL (FUNDCO 2) LIMITED https://opencorporates.com/companies/gb/06718531 2\n",
"BBH-LSL (FUNDCO 3) LIMITED https://opencorporates.com/companies/gb/07073873 2\n",
"BBH-LSL (FUNDCO 4) LIMITED https://opencorporates.com/companies/gb/07678469 2\n",
"BBH-LSL (HOLDCO 2) LIMITED https://opencorporates.com/companies/gb/06718671 2\n",
"BBH-LSL (HOLDCO 3) LIMITED https://opencorporates.com/companies/gb/07074174 2\n",
"Name: oname, dtype: int64"
]
}
],
"prompt_number": 244
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment