A Quick Thread Pull Around PFI SPecial Purpose Vehicles

Another quick look at the 2013 summary data about current PFI contracts, this time focusing on the special purpose vehicles (SPVs) set up to operate the projects.

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:-)

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.

In [146]:
#Load in some libraries to help us work with the data
import pandas as pd
import networkx as nx
In [166]:
#Data source - download the PFI summary data to the data/ directory
#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

#Import the data we've just downloaded - by insprection, the first row is ignorable
df=pd.read_excel('data/pfi_current_projects_list_march_2013_published_dec_2013.xlsx',skiprows=1)

df[:3]
Out[166]:
Unique HMT Project ID Project Name Department Procuring authority Sector Constituency Region Project Status Date Of OJEU Date of preferred bidder ... Equity holder 4: change of ownership since March 2011? (Yes / No) Equity holder 5: Name Equity holder 5: Equity share (%) Equity holder 5: change of ownership since March 2011? (Yes / No) Equity holder 6: Name Equity holder 6: Equity share (%) Equity holder 6: change of ownership since March 2011? (Yes / No) SPV name SPV company number SPV address
0 2 Sunningdale Park Site CABINET OFFICE (GROUP) CABINET OFFICE Other Windsor ENGLAND_South East InOperation 1998-04-17 2002-03-01 ... NaN NaN NaN NaN NaN NaN NaN DeVere Venues Ltd not known DeVere Venues Ltd
1 3 Compass CROWN PROSECUTION SERVICE (GROUP) THE CROWN PROSECUTION SERVICE IT Infrastructure and communications More than one National/More than one region InOperation 2000-10-06 N/K ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 5 RRS Ernest Shackleton DEPT FOR BUSINESS INNOVATION AND SKILLS (GROUP) NATURAL ENVIRONMENT RESEARCH COUNCIL Other More than one National/More than one region InOperation 1997-12-01 N/K ... NaN NaN NaN NaN NaN NaN NaN RRS Ernest Shackleton N/K N/K

3 rows × 107 columns

In [167]:
#Look to see if there are any obvious 'not known' style beacons in the SPV company number column
df['SPV company number'].value_counts()
Out[167]:
N/K          232
0             11
4934390        5
30938R         2
6836081        2
217803.00      2
4729043        2
20165R         2
4341625        2
02700386       1
494117         1
2984969        1
4988242        1
sc251424       1
3471077        1
...
4130538       1
3824177       1
5071716       1
SC 178807     1
3762571       1
7489177       1
4187974       1
3112891       1
3523237       1
3490223.00    1
4764331       1
4794356       1
7279250       1
3278829       1
not known     1
Length: 453, dtype: int64
In [165]:
#To make life easier, produce a view over the data that contains things that might have SPV company numbers available
spv=df.dropna(subset=['SPV company number'])
spv=spv[~spv['SPV company number'].isin(['N/K',0,'0','not known'])]

#Preview the first few rows
spv[:3]
Out[165]:
Unique HMT Project ID Project Name Department Procuring authority Sector Constituency Region Project Status Date Of OJEU Date of preferred bidder ... Equity holder 4: change of ownership since March 2011? (Yes / No) Equity holder 5: Name Equity holder 5: Equity share (%) Equity holder 5: change of ownership since March 2011? (Yes / No) Equity holder 6: Name Equity holder 6: Equity share (%) Equity holder 6: change of ownership since March 2011? (Yes / No) SPV name SPV company number SPV address
4 8 Barnsley Schools PFI DEPARTMENT FOR EDUCATION (GROUP) Barnsley Schools (Non-BSF) More than one ENGLAND_Yorkshire and the Humber InOperation 2003-05-01 N/K ... NaN NaN NaN NaN NaN NaN NaN Modern Schools Barnsley 5259225 8 White Oak, Square Swanley, Kent, BR8 7AG
8 12 Castle Hill Community Learning Centre & Primar... DEPARTMENT FOR EDUCATION (GROUP) Bolton Schools (Non-BSF) Bolton North East ENGLAND_North West InOperation 1998-03-26 N/K ... NaN NaN NaN NaN NaN NaN NaN CH Bolton Ltd. 4341625 c/o Quayle Munro Ltd. 8 Charlotte Square, Edin...
9 13 Hadley Learning & Jigsaw Project DEPARTMENT FOR EDUCATION (GROUP) Telford and Wrekin Schools (Non-BSF) Wrekin, The ENGLAND_West Midlands InOperation 2003-06-16 N/K ... NaN NaN NaN NaN NaN NaN NaN Pyramid Schools (Hadley) Ltd 5232548 Interserve House, Ruscombe Park, Twyford, Read...

3 rows × 107 columns

Getting Compnay Information from OpenCorporates

The SPV company numbers given for some of the PFI contracts can be used to pull down company information from OpenCorporates.

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!)

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.

In [4]:
#We're going to grab some JSON data from the OpenCorporates API - so load in some helper libraries
import requests, json
In [171]:
def getOCdata(cid):
    ''' Get company data from OpenCorporates given OpenCorporates id '''
    
    apiurl='https://api.opencorporates.com/v0.3'
    r=requests.get(apiurl+cid)
    return json.loads(r.text)['results']

def getOCdataFromCompanyNumber(cid,territory='gb'):
    return getOCdata('/'.join(['/companies',territory,cid]))

def companyReport(ocdata):
    c=ocdata['company']
    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'])
    print(txt)
In [173]:
pyramid=getOCdataFromCompanyNumber('5232548')
pyramid
Out[173]:
{'company': {'home_company': None,
  'source': {'publisher': 'UK Companies House',
   'terms': 'UK Crown Copyright',
   'url': 'http://xmlgw.companieshouse.gov.uk/',
   'retrieved_at': '2014-09-22T03:48:08+00:00'},
  'dissolution_date': None,
  'corporate_groupings': [],
  'updated_at': '2014-09-22T03:48:18+00:00',
  'previous_names': [],
  'opencorporates_url': 'https://opencorporates.com/companies/gb/05232548',
  'data': None,
  'registered_address_in_full': 'INTERSERVE HOUSE, RUSCOMBE PARK, TWYFORD, READING, BERKSHIRE BERKSHIRE',
  'inactive': False,
  'branch_status': None,
  'agent_name': None,
  'name': 'PYRAMID SCHOOLS (HADLEY) LIMITED',
  'created_at': '2010-10-23T02:08:49+00:00',
  'company_type': 'Private Limited Company',
  'officers': [{'officer': {'end_date': None,
     'position': 'secretary',
     'start_date': '2007-08-08',
     'id': 43804979,
     'name': 'WENDY LISA ROBERTS',
     'opencorporates_url': 'https://opencorporates.com/officers/43804979',
     'uid': None}},
   {'officer': {'end_date': '2011-06-02',
     'position': 'director',
     'start_date': '2008-12-31',
     'id': 43804982,
     'name': 'ROBERT DALE',
     'opencorporates_url': 'https://opencorporates.com/officers/43804982',
     'uid': None}},
   {'officer': {'end_date': None,
     'position': 'director',
     'start_date': '2006-12-15',
     'id': 43804984,
     'name': 'CHRISTOPHER RICHARD FIELD',
     'opencorporates_url': 'https://opencorporates.com/officers/43804984',
     'uid': None}},
   {'officer': {'end_date': '2013-08-01',
     'position': 'director',
     'start_date': '2008-07-07',
     'id': 43804985,
     'name': 'KENNETH WILLIAM GILLESPIE',
     'opencorporates_url': 'https://opencorporates.com/officers/43804985',
     'uid': None}},
   {'officer': {'end_date': None,
     'position': 'director',
     'start_date': '2009-09-01',
     'id': 43804987,
     'name': 'MARTIN TIMOTHY SMITH',
     'opencorporates_url': 'https://opencorporates.com/officers/43804987',
     'uid': None}},
   {'officer': {'end_date': None,
     'position': 'director',
     'start_date': '2011-06-02',
     'id': 50690971,
     'name': 'STEPHEN JOHN MALLION',
     'opencorporates_url': 'https://opencorporates.com/officers/50690971',
     'uid': None}},
   {'officer': {'end_date': '2005-03-15',
     'position': 'secretary',
     'start_date': '2004-09-16',
     'id': 55877481,
     'name': 'TREVOR BRADBURY',
     'opencorporates_url': 'https://opencorporates.com/officers/55877481',
     'uid': None}},
   {'officer': {'end_date': '2006-06-27',
     'position': 'secretary',
     'start_date': '2005-03-15',
     'id': 55877483,
     'name': 'MARTIN LEWIS',
     'opencorporates_url': 'https://opencorporates.com/officers/55877483',
     'uid': None}},
   {'officer': {'end_date': '2007-08-08',
     'position': 'secretary',
     'start_date': '2006-06-27',
     'id': 55877484,
     'name': 'LEIGH SMERDON',
     'opencorporates_url': 'https://opencorporates.com/officers/55877484',
     'uid': None}},
   {'officer': {'end_date': '2006-12-15',
     'position': 'director',
     'start_date': '2004-09-16',
     'id': 55877485,
     'name': 'GAYNOR BIRLEY SMITH',
     'opencorporates_url': 'https://opencorporates.com/officers/55877485',
     'uid': None}},
   {'officer': {'end_date': '2008-06-06',
     'position': 'director',
     'start_date': '2005-05-03',
     'id': 55877487,
     'name': 'TIMOTHY JOHN DICKIE',
     'opencorporates_url': 'https://opencorporates.com/officers/55877487',
     'uid': None}},
   {'officer': {'end_date': '2005-04-15',
     'position': 'director',
     'start_date': '2004-09-16',
     'id': 55877488,
     'name': 'VICTORIA HELEN DICKINSON',
     'opencorporates_url': 'https://opencorporates.com/officers/55877488',
     'uid': None}},
   {'officer': {'end_date': '2008-09-30',
     'position': 'director',
     'start_date': '2006-02-08',
     'id': 55877489,
     'name': 'MARK LOWRY',
     'opencorporates_url': 'https://opencorporates.com/officers/55877489',
     'uid': None}},
   {'officer': {'end_date': '2005-12-05',
     'position': 'director',
     'start_date': '2004-09-16',
     'id': 55877490,
     'name': 'FUAD SHAKSHIR',
     'opencorporates_url': 'https://opencorporates.com/officers/55877490',
     'uid': None}},
   {'officer': {'end_date': '2008-12-31',
     'position': 'director',
     'start_date': '2004-09-16',
     'id': 55877491,
     'name': 'ROBERT DAVID VINCE',
     'opencorporates_url': 'https://opencorporates.com/officers/55877491',
     'uid': None}},
   {'officer': {'end_date': None,
     'position': 'director',
     'start_date': '2013-08-01',
     'id': 74483511,
     'name': 'CHRISTOPHER THOMAS SOLLEY',
     'opencorporates_url': 'https://opencorporates.com/officers/74483511',
     'uid': None}},
   {'officer': {'end_date': None,
     'position': 'director',
     'start_date': '2014-07-01',
     'id': 97067020,
     'name': 'JOSEPH EUGENE PHILIPSZ',
     'opencorporates_url': 'https://opencorporates.com/officers/97067020',
     'uid': None}},
   {'officer': {'end_date': '2004-09-16',
     'position': 'nominated secretary',
     'start_date': '2004-09-15',
     'id': 105968172,
     'name': ' BRIGHTON SECRETARY LTD',
     'opencorporates_url': 'https://opencorporates.com/officers/105968172',
     'uid': None}},
   {'officer': {'end_date': '2004-09-16',
     'position': 'nominated director',
     'start_date': '2004-09-15',
     'id': 105968173,
     'name': ' BRIGHTON DIRECTOR LTD',
     'opencorporates_url': 'https://opencorporates.com/officers/105968173',
     'uid': None}}],
  'agent_address': None,
  'industry_codes': [{'industry_code': {'title': 'Other business support service activities n.e.c.',
     'code_system': 'UK SIC Codes 2007',
     'uid': '82.99'}},
   {'industry_code': {'title': 'Educational support activities',
     'code_system': 'UK SIC Codes 2007',
     'uid': '85.60'}}],
  'registry_url': 'http://data.companieshouse.gov.uk/doc/company/05232548',
  'filings': [{'filing': {'id': 205119658,
     'date': '2014-07-18',
     'title': 'Annual Accounts',
     'opencorporates_url': 'https://opencorporates.com/filings/205119658',
     'uid': '12c698eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0djpyg/Mw8XUzNDUycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDQxMDc0OLJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCFPzRE'}},
   {'filing': {'id': 205119659,
     'date': '2014-07-14',
     'title': 'Appointment of director',
     'opencorporates_url': 'https://opencorporates.com/filings/205119659',
     'uid': '30110deJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhjZ+OQQO8IUzNDAycuzvi0/KLcksqCVCdxFscAA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDEwNzQ5MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAVZNNg='}},
   {'filing': {'id': 204355285,
     'date': '2014-07-01',
     'title': "Change of director's details",
     'opencorporates_url': 'https://opencorporates.com/filings/204355285',
     'uid': '7df470eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhjJzPL8GAvU1NLcycuzvi0/KLcksqCVCdxFmcPA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDEwNzA8MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPdXNMM='}},
   {'filing': {'id': 204355286,
     'date': '2014-06-12',
     'title': "Change of director's details",
     'opencorporates_url': 'https://opencorporates.com/filings/204355286',
     'uid': '366d53eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhjyzA3v6BQU1NzSycuzvi0/KLcksqCVCdxFmcPA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDEwMzQ6MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABKVNOk='}},
   {'filing': {'id': 198624227,
     'date': '2013-09-25',
     'title': 'Annual Return',
     'opencorporates_url': 'https://opencorporates.com/filings/198624227',
     'uid': '53b8f4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgjDz/3AG9PU2NDSycuzvi0/KLcksqCVCdxFscgA0MnLtb4lOTEEidxRkOYMYklQFkOIwNDYwNLI9MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAA1oNOQ='}},
   {'filing': {'id': 194922944,
     'date': '2013-08-02',
     'title': 'Termination of appointment of director ',
     'opencorporates_url': 'https://opencorporates.com/filings/194922944',
     'uid': 'd9abe8eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgjlwjzYIMAUyMzCycuzvi0/KLcksqCVCdxlhBfA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDYwMLA6MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAKgNNU='}},
   {'filing': {'id': 194922943,
     'date': '2013-08-02',
     'title': 'Appointment of director',
     'opencorporates_url': 'https://opencorporates.com/filings/194922943',
     'uid': '1ce724eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgjlwjzYANLUyMzCycuzvi0/KLcksqCVCdxFscAA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDYwMLA6MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAOgUNK4='}},
   {'filing': {'id': 192616952,
     'date': '2013-06-26',
     'title': 'Annual Accounts',
     'opencorporates_url': 'https://opencorporates.com/filings/192616952',
     'uid': '823bb6eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0cjJwPPAOdIUyNjIycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDQ2MDMyOzJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgB7hzQ2'}},
   {'filing': {'id': 178687832,
     'date': '2012-09-17',
     'title': 'Annual Return',
     'opencorporates_url': 'https://opencorporates.com/filings/178687832',
     'uid': 'aab106eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhDD3+LAM8oE0sTSycuzvi0/KLcksqCVCdxFscgA0MnLtb4lOTEEidxRkOYMYklQFkOIwNDIwNLQ/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABLONOw='}},
   {'filing': {'id': 178687833,
     'date': '2012-06-22',
     'title': 'Annual Accounts',
     'opencorporates_url': 'https://opencorporates.com/filings/178687833',
     'uid': 'dfe333eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0dDJ++gqDBTEwszMycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDQyMDMyOjJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCVtjRZ'}},
   {'filing': {'id': 125825476,
     'date': '2011-09-19',
     'title': 'Annual Return',
     'opencorporates_url': 'https://opencorporates.com/filings/125825476',
     'uid': '5560a4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4hgi4DwCH9jE1MLMycuzvi0/KLcksqCVCdxFscgA0MnLtb4lOTEEidxRkOYMYklQFkOIwNDQwNLQ8smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACPmNQM='}},
   {'filing': {'id': 125825477,
     'date': '2011-07-01',
     'title': 'Annual Accounts',
     'opencorporates_url': 'https://opencorporates.com/filings/125825477',
     'uid': '50fe3deJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8coP4vQMBczE1NDAycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDQ0MDcwPDJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCWpTRY'}},
   {'filing': {'id': 125825478,
     'date': '2011-06-15',
     'title': 'Appointment of director',
     'opencorporates_url': 'https://opencorporates.com/filings/125825478',
     'uid': 'a04505eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4jwAJPI0CgXExNLQycuzvi0/KLcksqCVCdxFscAA6AQa3xKcmKJkzijEcyYxBKgLIeRgaGhgZmhaZOac35uQWJeZmqxR35pcaqVVYSvj3u4lZVnbmJ6KpTyTq0kUhk3AwMDIxAzATEzELMAMSsQswExOxBzADEnEHMBMTcAL6g1EQ=='}},
   {'filing': {'id': 125825479,
     'date': '2011-06-14',
     'title': 'Termination of appointment of director ',
     'opencorporates_url': 'https://opencorporates.com/filings/125825479',
     'uid': 'cf5de4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4jwAJOw0ChHExNLAycuzvi0/KLcksqCVCdxlhBfA0MnLtb4lOTEEidxRiOYMYklQFkOIwNDQwMzQ5MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuADRPNRk='}},
   {'filing': {'id': 125825480,
     'date': '2010-09-20',
     'title': 'Annual Return',
     'opencorporates_url': 'https://opencorporates.com/filings/125825480',
     'uid': 'bd754eeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhnJ7cIP29jEyNzIycuzvi0/KLcksqCVCdxFscgA0MnLtb4lOTEEidxRkOYMYklQFkOIwNDAwNLI4MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAATeNNU='}},
   {'filing': {'id': 125825482,
     'date': '2010-06-17',
     'title': 'Annual Accounts',
     'opencorporates_url': 'https://opencorporates.com/filings/125825482',
     'uid': '5490b4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDAx8/M/9Q73BnEyMDCycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDQwMDM0PzJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCpDDR0'}},
   {'filing': {'id': 125825491,
     'date': '2009-12-07',
     'title': "Change of director's details",
     'opencorporates_url': 'https://opencorporates.com/filings/125825491',
     'uid': '5b5029eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhnR19XNx8vEwMzMycuzvi0/KLcksqCVCdxFmcPA0MnLtb4lOTEEidxRiOYMYklQFkOIwMDS0MjA/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAaGNNk='}},
   {'filing': {'id': 125825488,
     'date': '2009-12-07',
     'title': "Change of director's details",
     'opencorporates_url': 'https://opencorporates.com/filings/125825488',
     'uid': '316467eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhnR19vN58AEwMzMycuzvi0/KLcksqCVCdxFmcPA0MnLtb4lOTEEidxRiOYMYklQFkOIwMDS0MjA/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAA8gNOU='}},
   {'filing': {'id': 125825485,
     'date': '2009-12-07',
     'title': "Change of secretary's details",
     'opencorporates_url': 'https://opencorporates.com/filings/125825485',
     'uid': 'df0c98eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhnd3dzNx9nEwMzMycuzvi0/KLcksqCVCdxFmcPA2MnLtb4lOTEEidxRiOYMYklQFkOIwMDS0MjA/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPijNMY='}},
   {'filing': {'id': 125825494,
     'date': '2009-09-23',
     'title': 'Companies Annual Return',
     'opencorporates_url': 'https://opencorporates.com/filings/125825494',
     'uid': '99eb38eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhXFw8jF08jEwNDYycuzvi0/KLcksqCVCdxFmMz40QnLtb4lOTEEidxRkOYMYklQFkOIwMDSwNLI+MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAOo1NLU='}},
   {'filing': {'id': 125825496,
     'date': '2009-09-18',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825496',
     'uid': '794b6aeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8co1wAvF2dvEwNDQycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDSwNLQ4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABL2NPA='}},
   {'filing': {'id': 125825498,
     'date': '2009-07-11',
     'title': 'Annual Accounts',
     'opencorporates_url': 'https://opencorporates.com/filings/125825498',
     'uid': 'e54338eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDAx/jcCdLJ7dQYwsDAycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDA0sDc0PDJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCJuTRJ'}},
   {'filing': {'id': 125825505,
     'date': '2009-01-09',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825505',
     'uid': '63fabeeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgPH0t3MxdzYzNzQycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDSwNDA8smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPURNMQ='}},
   {'filing': {'id': 125825502,
     'date': '2009-01-09',
     'title': 'Terminating appointment as Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825502',
     'uid': '9b6f5deJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgPH0s3MxczYzNzQycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDSwNDA8smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPRBNMM='}},
   {'filing': {'id': 125825508,
     'date': '2008-10-23',
     'title': 'Annual Accounts',
     'opencorporates_url': 'https://opencorporates.com/filings/125825508',
     'uid': 'b657f2eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDAx93N2dLEzMnYzNDSycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDAwtDAyPjJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgBtizQg'}},
   {'filing': {'id': 125825511,
     'date': '2008-10-16',
     'title': 'Terminating appointment as Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825511',
     'uid': '77d775eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4hIM0dL40gfYzNDYycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDC0MDQ7MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAVdNNo='}},
   {'filing': {'id': 125825514,
     'date': '2008-10-06',
     'title': 'Filing dated 2008-10-06',
     'opencorporates_url': 'https://opencorporates.com/filings/125825514',
     'uid': 'ceaf8eeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0ezIA8jY183YzMDMycuzvi0/KLcksqCVCdx1iDXYENjJy7W+JTkxBIncUZLmDmJJUBpDiMDAwtDAwOzJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgAmxjT9'}},
   {'filing': {'id': 125825518,
     'date': '2008-09-19',
     'title': 'Companies Annual Return',
     'opencorporates_url': 'https://opencorporates.com/filings/125825518',
     'uid': 'f47743eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4jgwCgLY8tIY1NLEycuzvi0/KLcksqCVCdxFmMz40QnLtb4lOTEEidxRkOYMYklQFkOIwMDCwNLQ8smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAB6PNP8='}},
   {'filing': {'id': 125825522,
     'date': '2008-07-16',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825522',
     'uid': '8d5c85eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwiXyEBjQzcPY1MTCycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDCwNzQ7MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAwoNOU='}},
   {'filing': {'id': 125825523,
     'date': '2008-06-12',
     'title': 'Terminating appointment as Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825523',
     'uid': 'f1594feJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwizAC8nA08TY1MjEycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDCwMzQ6MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAO4yNLo='}},
   {'filing': {'id': 125825526,
     'date': '2007-10-05',
     'title': 'Annual Accounts',
     'opencorporates_url': 'https://opencorporates.com/filings/125825526',
     'uid': '6800c7eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8coVwvnEE9PY2NTYycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDA3NDAwPTJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCW+zRa'}},
   {'filing': {'id': 125825529,
     'date': '2007-09-21',
     'title': 'Companies Annual Return',
     'opencorporates_url': 'https://opencorporates.com/filings/125825529',
     'uid': '17fc84eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4gA86DgEFNHY2MTQycuzvi0/KLcksqCVCdxFmMz40QnLtb4lOTEEidxRkOYMYklQFkOIwMDcwNLI8MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAA/0NOg='}},
   {'filing': {'id': 125825531,
     'date': '2007-08-17',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825531',
     'uid': '86343eeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgvo8iAYDNjY2NDcycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDcwMLQ/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAkyNOE='}},
   {'filing': {'id': 125825532,
     'date': '2007-08-16',
     'title': 'Terminating appointment as Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825532',
     'uid': 'a07cd5eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwjPKGPzYFMfY2NDcycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDcwMLQ7MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAkyNOE='}},
   {'filing': {'id': 125825536,
     'date': '2006-12-18',
     'title': 'Terminating appointment as Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825536',
     'uid': '8abbf4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgnUy8vH3d3Y0MTAycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDM0MjQ4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAWSNNs='}},
   {'filing': {'id': 125825535,
     'date': '2006-12-18',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825535',
     'uid': '53ecdaeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgnU7cwH3d/Y0MTAycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDM0MjQ4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABBnNOo='}},
   {'filing': {'id': 125825545,
     'date': '2006-09-25',
     'title': 'Companies Annual Return',
     'opencorporates_url': 'https://opencorporates.com/filings/125825545',
     'uid': '718d75eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4jIMF9XLxMXYwMLIycuzvi0/KLcksqCVCdxFmMz40QnLtb4lOTEEidxRkOYMYklQFkOIwMDMwNLI9MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAByFNPo='}},
   {'filing': {'id': 125825547,
     'date': '2006-07-18',
     'title': 'Annual Accounts',
     'opencorporates_url': 'https://opencorporates.com/filings/125825547',
     'uid': 'b90fd9eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDAx//sGAzD0NvYwNjQycuzvi0/KLcksqCVCdxJkdHJy7W+JTkxBIncUYDmCGJJUA5DiMDAzMDc0OLJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgCU6TRZ'}},
   {'filing': {'id': 125825551,
     'date': '2006-07-10',
     'title': 'Terminating appointment as Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825551',
     'uid': '700579eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwh/3yg39ygDYwMjYycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDMwNzQ4MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACEUNP8='}},
   {'filing': {'id': 125825549,
     'date': '2006-07-10',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825549',
     'uid': '3973e6eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwh/3yhP9yhjYwMjYycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDMwNzQ4MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACTCNQQ='}},
   {'filing': {'id': 125825553,
     'date': '2006-03-10',
     'title': 'Change of particulars for Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825553',
     'uid': 'f511e1eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0cL/8BgF08vI0sTIycuzvi0/KLcksqCVCdxFiMLi2QnLtb4lOTEEidxRiOYMYklQFkOIwMDMwNjQ4MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAypNOM='}},
   {'filing': {'id': 125825555,
     'date': '2006-02-15',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825555',
     'uid': '404781eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwhTxygL58gQI0sjEycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDMwMjQ9MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABbDNPI='}},
   {'filing': {'id': 125825557,
     'date': '2005-12-07',
     'title': 'Terminating appointment as Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825557',
     'uid': '705eb8eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4hISxN/JwNzIwtzMycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDU0MjA/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPLzNMA='}},
   {'filing': {'id': 125825559,
     'date': '2005-12-02',
     'title': 'Change of particulars for Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825559',
     'uid': 'ec6e58eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDg4iIYAtnxzAnIwtzYycuzvi0/KLcksqCVCdxFiMLi2QnLtb4lOTEEidxRiOYMYklQFkOIwMDU0MjA6MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAB3cNPo='}},
   {'filing': {'id': 125825561,
     'date': '2005-10-21',
     'title': 'Filing dated 2005-10-21',
     'opencorporates_url': 'https://opencorporates.com/filings/125825561',
     'uid': '661262eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0fHSG8jS88wIwsTcycuzvi0/KLcksqCVCdxFmMz42InLtb4lOTEEidxRkOYMYklQFkOIwMDU0MDI8MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAbeNNw='}},
   {'filing': {'id': 125825563,
     'date': '2005-08-10',
     'title': 'Change of particulars for Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825563',
     'uid': 'ffe8e5eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0dDJz9/c09fI3NLEycuzvi0/KLcksqCVCdxFiMLi2QnLtb4lOTEEidxRiOYMYklQFkOIwMDUwMLQ4MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPckNMc='}},
   {'filing': {'id': 125825564,
     'date': '2005-07-21',
     'title': 'Change of particulars for Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825564',
     'uid': '274ed1eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0d/S8cws0h3I3NzMycuzvi0/KLcksqCVCdxFiMLi2QnLtb4lOTEEidxRiOYMYklQFkOIwMDUwNzI8MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAkzNOA='}},
   {'filing': {'id': 125825565,
     'date': '2005-07-08',
     'title': 'Change of Accounting Reference Date',
     'opencorporates_url': 'https://opencorporates.com/filings/125825565',
     'uid': '94c8b0eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0fLKKdgMx9nI3MzSycuzvi0/KLcksqCVCdxZiMjUycu1viU5MQSJ3FGS5gpiSVASQ4jAwNTA3MDiyY15/zcgsS8zNRij/zS4lQrqwhfH/dwKyvP3MT0VCjlnVpJpDJuBgYGRiBmAmJmIGYBYlYgZgNidiDmAGJOIOYCYm4At400eQ=='}},
   {'filing': {'id': 125825566,
     'date': '2005-06-17',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825566',
     'uid': '4f402eeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8cgXw83M4MAI3NTYycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDUwMzQ/MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPnINMs='}},
   {'filing': {'id': 125825570,
     'date': '2005-04-28',
     'title': 'Terminating appointment as Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825570',
     'uid': 'cbf64feJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0f/KG93E/8AI3NDcycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDUwMTI4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABlaNPc='}},
   {'filing': {'id': 125825569,
     'date': '2005-04-28',
     'title': 'Filing dated 2005-04-28',
     'opencorporates_url': 'https://opencorporates.com/filings/125825569',
     'uid': '0c8190eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0f/KG8nE39vI3NDcycuzvi0/KLcksqCVCdxNgsLDSPNICcu1viU5MQSJ3FGC5hBiSVAeQ4jAwNTAxMjiyY15/zcgsS8zNRij/zS4lQrqwhfH/dwKyvP3MT0VCjlnVpJpDJuBgYGRiBmAmJmIGYBYlYgZgNidiDmAGJOIOYCYm4AYAc1Ng=='}},
   {'filing': {'id': 125825568,
     'date': '2005-04-28',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825568',
     'uid': 'a14d50eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0f/KG9XE38/I3NDcycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDUwMTI4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABXdNPI='}},
   {'filing': {'id': 125825567,
     'date': '2005-04-28',
     'title': 'Terminating appointment as Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825567',
     'uid': 'bd80c4eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8cAP1MLk8AQI3NDcycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDUwMTI4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAPq2NM0='}},
   {'filing': {'id': 125825572,
     'date': '2005-04-01',
     'title': 'Particulars of a mortgage or charge',
     'opencorporates_url': 'https://opencorporates.com/filings/125825572',
     'uid': 'e99748eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0eTQBN3E6NQIzNLSycuzvi0/KLcksqCVCdxZmNLUycu1viU5MQSJ3FGE5gpiSVASQ4jAwNTAxMDwyY15/zcgsS8zNRij/zS4lQrqwhfH/dwKyvP3MT0VCjlnVpJpDJuBgYGRiBmAmJmIGYBYlYgZgNidiDmAGJOIOYCYm4Akgs0Qg=='}},
   {'filing': {'id': 125825571,
     'date': '2005-04-01',
     'title': 'Filing dated 2005-04-01',
     'opencorporates_url': 'https://opencorporates.com/filings/125825571',
     'uid': '2b5352eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0djtygfEwN3IzNLcycuzvi0/KLcksqCVCdx1iDXYANDJy7W+JTkxBIncUZLmDmJJUBpDiMDA1MDEwPDJjXn/NyCxLzM1GKP/NLiVCurCF8f93ArK8/cxPRUKOWdWkmkMm4GBgZGIGYCYmYgZgFiViBmA2J2IOYAYk4g5gJibgAqXDUA'}},
   {'filing': {'id': 125825573,
     'date': '2005-03-09',
     'title': 'Change of Accounting Reference Date',
     'opencorporates_url': 'https://opencorporates.com/filings/125825573',
     'uid': '082629eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0dfT99gY0dTIzMLIycuzvi0/KLcksqCVCdxZiMjUycu1viU5MQSJ3FGS5gpiSVASQ4jAwNTA2MDyyY15/zcgsS8zNRij/zS4lQrqwhfH/dwKyvP3MT0VCjlnVpJpDJuBgYGRiBmAmJmIGYBYlYgZgNidiDmAGJOIOYCYm4AqEA0Yg=='}},
   {'filing': {'id': 125825575,
     'date': '2004-11-08',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825575',
     'uid': '56069eeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8dAf5OgqDAXI1NLcycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDE0NDA4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACLmNQM='}},
   {'filing': {'id': 125825574,
     'date': '2004-11-08',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825574',
     'uid': '2c62f7eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA8dAf5PAqDBnI1NLcycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDE0NDA4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACF3NQE='}},
   {'filing': {'id': 125825580,
     'date': '2004-10-08',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825580',
     'uid': 'e2e642eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0cjv1CjKOMII1NzUycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDE0MDA4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAP4cNNA='}},
   {'filing': {'id': 125825578,
     'date': '2004-10-08',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825578',
     'uid': '787f3aeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0cjv1DjKONII1NzUycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDE0MDA4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAP+LNNI='}},
   {'filing': {'id': 125825577,
     'date': '2004-10-08',
     'title': 'Appointment of Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825577',
     'uid': '6471a1eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDA0cjv1CTKOMoI1NzUycuzvi0/KLcksqCVCdxFiMLi0QnLtb4lOTEEidxRiOYMYklQFkOIwMDE0MDA4smNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuAAEJNNQ='}},
   {'filing': {'id': 125825582,
     'date': '2004-09-16',
     'title': 'Terminating appointment as Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825582',
     'uid': 'ae0950eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgDd0+fSO9II1NTcycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDEwNLQ7MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuACfhNQw='}},
   {'filing': {'id': 125825581,
     'date': '2004-09-16',
     'title': 'Terminating appointment as Director or Secretary',
     'opencorporates_url': 'https://opencorporates.com/filings/125825581',
     'uid': '612ffaeJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfgMDgwgDd8/ASG9jI1NTcycuzvi0/KLcksqCVCdxFiMLiyQnLtb4lOTEEidxRiOYMYklQFkOIwMDEwNLQ7MmNef83ILEvMzUYo/80uJUK6sIXx/3cCsrz9zE9FQo5Z1aSaQybgYGBkYgZgJiZiBmAWJWIGYDYnYg5gBiTiDmAmJuABB6NOs='}},
   {'filing': {'id': 125825583,
     'date': '2004-09-15',
     'title': 'Filing dated 2004-09-15',
     'opencorporates_url': 'https://opencorporates.com/filings/125825583',
     'uid': '557de6eJxjZRd2YnXi4ohPyU9OSS1OBnHYQJzMFCdxfj8DUyNjI1MTPQtnI1NTcycuzvi0/KLcksqCVCdxNj/XcE8/Zycu1viU5MQSJ3FGM5hBiSVAeQ4jAwMTA0tD0yY15/zcgsS8zNRij/zS4lQrqwhfH/dwKyvP3MT0VCjlnVpJpDJuBgYGRiBmAmJmIGYBYlYgZgNidiDmAGJOIOYCYm4AWI81PA=='}}],
  'financial_summary': None,
  'retrieved_at': '2014-09-22T03:48:08+00:00',
  'jurisdiction_code': 'gb',
  'controlling_entity': None,
  'current_status': 'Active',
  'company_number': '05232548',
  'incorporation_date': '2004-09-15'}}
In [174]:
companyReport(pyramid)
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

As well as obtaining information about registered companies, we can also look up information about directors.

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).

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.

Let's create a function that pulls out a listing of the currently active directors of a company from the company data.

In [175]:
#We can tunnel into the OpenCorporates data to get directors information
def getCurrentOfficers(ocd,role=[]):
    ''' Get current officers from OpenCorporates company data '''
    
    curr=[]
    for o in ocd['company']['officers']:
        if o['officer']['end_date']==None:
            if role!=[]:
                if o['officer']['position'] in role:
                    curr.append(o['officer'])
            else: curr.append(o['officer'])
    return curr
#getCurrentOfficers(ocd)
In [176]:
pyramiddf=pd.DataFrame.from_dict(getCurrentOfficers(pyramid,'director'))
pyramiddf
Out[176]:
end_date id name opencorporates_url position start_date uid
0 None 43804984 CHRISTOPHER RICHARD FIELD https://opencorporates.com/officers/43804984 director 2006-12-15 None
1 None 43804987 MARTIN TIMOTHY SMITH https://opencorporates.com/officers/43804987 director 2009-09-01 None
2 None 50690971 STEPHEN JOHN MALLION https://opencorporates.com/officers/50690971 director 2011-06-02 None
3 None 74483511 CHRISTOPHER THOMAS SOLLEY https://opencorporates.com/officers/74483511 director 2013-08-01 None
4 None 97067020 JOSEPH EUGENE PHILIPSZ https://opencorporates.com/officers/97067020 director 2014-07-01 None
In [186]:
def directorsSummary(cdata):
    cd=pd.DataFrame.from_dict(getCurrentOfficers(cdata,'director'))
    txt= '{0} currently has {1} active directors ({2}).'.format(cdata['company']['name'],len(cd),', '.join(cd['name']))
    print(txt)
In [187]:
directorsSummary(pyramid)
PYRAMID SCHOOLS (HADLEY) LIMITED currently has 5 active directors (CHRISTOPHER RICHARD FIELD, MARTIN TIMOTHY SMITH, STEPHEN JOHN MALLION, CHRISTOPHER THOMAS SOLLEY, JOSEPH EUGENE PHILIPSZ).

Let's start pulling together a few functions to help us work with the OpenCorporates API a little more.

In [126]:
APISTUB='http://api.opencorporates.com/v0.3'

#To make calling the OpenCorporates API easier, we can register an account and get an API key
#I store my key in a key file and load it in as required
def getKey():
    json_data=open('data/keys.json')
    return json.load(json_data)['ockey']
ockey=getKey()

def deslash(x): return x.strip('/')
def signed(url,sig=True):
    if sig: return url+'?api_token='+ockey
    return url
 
def occStrip(ocURL):
    return deslash(ocURL.replace('http://opencorporates.com/companies',''))
 
    
#Old code - needs revising to use requests library more idiomatically
def buildURL(items):
    url=APISTUB
    for i in items:
        url='/'.join([url,deslash(i)])
    return signed(url)


def getOCofficerData(ocid):
    ''' Function to get data from the OpenCorporates API about a director, by director ID''' 
    
    ocurl=buildURL(['officers',ocid])
    r=requests.get(ocurl)
    ocdata= json.loads(r.text)
    return ocdata['results']
    

The getOCofficerData() function allows us to get information from OpenCorporates about a director given their OpenCorporates director ID.

In [127]:
getOCofficerData('97067020')
Out[127]:
{'officer': {'company': {'company_number': '05232548',
   'name': 'PYRAMID SCHOOLS (HADLEY) LIMITED',
   'opencorporates_url': 'https://opencorporates.com/companies/gb/05232548',
   'jurisdiction_code': 'gb'},
  'source': {'source_type': 'external',
   'publisher': 'UK Companies House',
   'terms': 'UK Crown Copyright',
   'url': 'http://xmlgw.companieshouse.gov.uk/',
   'retrieved_at': '2014-09-22T03:48:17+00:00'},
  'position': 'director',
  'id': 97067020,
  'name': 'JOSEPH EUGENE PHILIPSZ',
  'opencorporates_url': 'https://opencorporates.com/officers/97067020',
  'uid': None}}

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?).

In [142]:
required=['director']
def getOCofficerCompaniesSearch(name,page=1,cidnames=pd.DataFrame(columns=['oname','ocurl','cname'])):
    url=APISTUB+'/officers/search'
    r=requests.get(url,params={'api_token':getKey(),'q':'"'+name+'"','per_page':100,'page':page})
    #print(r.url)
    ocdata= json.loads(r.text)['results']
    for officer in ocdata['officers']:
        if name==officer['officer']['name']:
            if required!=[] and officer['officer']['position']in required:
                #print 'Possible new company for',name,officer['officer']['company']['name']
                #would a nominated secretary be interesting to search on? eg FIRST SECRETARIES LIMITED
                #cidnames.append( ( occStrip(officer['officer']['company']['opencorporates_url']), occStrip(officer['officer']['company']['name']) ) )
                cidnames=pd.concat([cidnames, pd.DataFrame([(name,occStrip(officer['officer']['company']['opencorporates_url']), occStrip(officer['officer']['company']['name']))],columns=['oname','ocurl','cname'])])
    if page < ocdata['total_pages']:
        #If there are lots of pages, eg for a nominee, we maybe need to warn the user....?
        page=page+1
        cidnames=getOCofficerCompaniesSearch(name,page,cidnames)
    #http://api.opencorporates.com/v0.2/officers/search?q=john+smith
    return cidnames

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.

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.

In [202]:
on=pd.DataFrame()
for name in pyramiddf['name']:
    on=pd.concat( [on, getOCofficerCompaniesSearch(name) ])
    
tmp=on.groupby(['cname','ocurl']).oname.nunique().order(ascending=False)
tmp
Out[202]:
cname                                                       ocurl                                           
PYRAMID SCHOOLS (TAMESIDE) HOLDINGS LIMITED                 https://opencorporates.com/companies/gb/04317596    5
PYRAMID SCHOOLS (TAMESIDE) LIMITED                          https://opencorporates.com/companies/gb/04317602    5
PYRAMID SCHOOLS (SOUTHAMPTON) LIMITED                       https://opencorporates.com/companies/gb/04261262    5
PYRAMID SCHOOLS (SOUTHAMPTON) HOLDINGS LIMITED              https://opencorporates.com/companies/gb/04261229    5
PYRAMID SCHOOLS (HADLEY) LIMITED                            https://opencorporates.com/companies/gb/05232548    5
PYRAMID SCHOOLS (HADLEY) HOLDINGS LIMITED                   https://opencorporates.com/companies/gb/05232552    5
PYRAMID SCHOOLS (CORNWALL) LIMITED                          https://opencorporates.com/companies/gb/04988242    5
PYRAMID SCHOOLS (CORNWALL) (HOLDINGS) LIMITED               https://opencorporates.com/companies/gb/04989553    5
PYRAMID ACCOMMODATION SERVICES (CORNWALL) LIMITED           https://opencorporates.com/companies/gb/04157149    5
PYRAMID ACCOMMODATION SERVICES (CORNWALL) HOLDINGS LIMITED  https://opencorporates.com/companies/gb/04157174    5
BELFAST EDUCATIONAL SERVICES LIMITED                        https://opencorporates.com/companies/gb/NI039114    3
BELFAST EDUCATIONAL SERVICES (DUNGANNON) HOLDINGS LTD       https://opencorporates.com/companies/gb/NI042769    3
BELFAST EDUCATIONAL SERVICES (DUNGANNON) LIMITED            https://opencorporates.com/companies/gb/NI046621    3
BELFAST EDUCATIONAL SERVICES (HOLDINGS) LIMITED             https://opencorporates.com/companies/gb/NI038642    3
BELFAST EDUCATIONAL SERVICES (OMAGH) HOLDINGS LIMITED       https://opencorporates.com/companies/gb/NI042770    3
...
NFM GAMES PRODUCTION LIMITED                                     https://opencorporates.com/companies/gb/SC234148    1
NFM GAMES LIMITED                                                https://opencorporates.com/companies/gb/SC234149    1
NEW NT LIMITED                                                   https://opencorporates.com/companies/gb/SC229484    1
NEW NT HOLDCO LIMITED                                            https://opencorporates.com/companies/gb/04334392    1
NEMO SERVICES LIMITED                                            https://opencorporates.com/companies/gb/SC217323    1
NCM MEZZANINE GENERAL PARTNER LIMITED                            https://opencorporates.com/companies/gb/SC314899    1
NCM FUND SERVICES LIMITED                                        https://opencorporates.com/companies/gb/SC166074    1
MTS MANAGEMENT CONSULTANCY LIMITED                               https://opencorporates.com/companies/gb/03323366    1
MOTORRAD HOLDINGS LIMITED                                        https://opencorporates.com/companies/gb/SC366184    1
MOTORRAD CENTRAL (SCOTLAND) LIMITED                              https://opencorporates.com/companies/gb/SC274747    1
MORRIS EDDIE LIMITED                                             https://opencorporates.com/companies/gb/SC201468    1
ROBERTSON HEALTH (ST GEORGE'S) LIMITED                           https://opencorporates.com/companies/gb/04638901    1
LUTON HEALTH FACILITIES LIMITED                                  https://opencorporates.com/companies/gb/03997485    1
LUTON HEALTH FACILITIES (HOLDINGS) LIMITED                       https://opencorporates.com/companies/gb/03997460    1
JUSTICE SUPPORT SERVICES (NORFOLK AND SUFFOLK) HOLDINGS LIMITED  https://opencorporates.com/companies/gb/07109777    1
Name: oname, Length: 254, dtype: int64

The oname count is a count of the number of directors the company has in common with the original "target" company.

Let's see which companies have the same number of directors as the original company.

In [219]:
tmp[tmp==len(pyramiddf)].reset_index()
Out[219]:
cname ocurl oname
0 PYRAMID SCHOOLS (TAMESIDE) HOLDINGS LIMITED https://opencorporates.com/companies/gb/04317596 5
1 PYRAMID SCHOOLS (TAMESIDE) LIMITED https://opencorporates.com/companies/gb/04317602 5
2 PYRAMID SCHOOLS (SOUTHAMPTON) LIMITED https://opencorporates.com/companies/gb/04261262 5
3 PYRAMID SCHOOLS (SOUTHAMPTON) HOLDINGS LIMITED https://opencorporates.com/companies/gb/04261229 5
4 PYRAMID SCHOOLS (HADLEY) LIMITED https://opencorporates.com/companies/gb/05232548 5
5 PYRAMID SCHOOLS (HADLEY) HOLDINGS LIMITED https://opencorporates.com/companies/gb/05232552 5
6 PYRAMID SCHOOLS (CORNWALL) LIMITED https://opencorporates.com/companies/gb/04988242 5
7 PYRAMID SCHOOLS (CORNWALL) (HOLDINGS) LIMITED https://opencorporates.com/companies/gb/04989553 5
8 PYRAMID ACCOMMODATION SERVICES (CORNWALL) LIMITED https://opencorporates.com/companies/gb/04157149 5
9 PYRAMID ACCOMMODATION SERVICES (CORNWALL) HOLD... https://opencorporates.com/companies/gb/04157174 5

Let's see if we can pull all that into a single function, keyed by a company ID.

In [237]:
def voodooMagic(cnum):
    cdata=getOCdataFromCompanyNumber(cnum)
    companyReport(cdata)
    directorsSummary(cdata)
    directors=pd.DataFrame.from_dict(getCurrentOfficers(cdata,'director'))
    directorCos=pd.DataFrame()
    for name in directors['name']:
        directorCos=pd.concat( [directorCos, getOCofficerCompaniesSearch(name) ])

    sharedCos=directorCos.groupby(['cname','ocurl']).oname.nunique().order(ascending=False)
    sharedCos=sharedCos[sharedCos==len(directors)].reset_index()
    return directors,sharedCos,directorCos
In [235]:
directors,sharedCos,directoCos=voodooMagic('5232548')
print(directors)
print(sharedCos)
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
PYRAMID SCHOOLS (HADLEY) LIMITED currently has 5 active directors (CHRISTOPHER RICHARD FIELD, MARTIN TIMOTHY SMITH, STEPHEN JOHN MALLION, CHRISTOPHER THOMAS SOLLEY, JOSEPH EUGENE PHILIPSZ).
  end_date        id                       name  \
0     None  43804984  CHRISTOPHER RICHARD FIELD   
1     None  43804987       MARTIN TIMOTHY SMITH   
2     None  50690971       STEPHEN JOHN MALLION   
3     None  74483511  CHRISTOPHER THOMAS SOLLEY   
4     None  97067020     JOSEPH EUGENE PHILIPSZ   

                             opencorporates_url  position  start_date   uid  
0  https://opencorporates.com/officers/43804984  director  2006-12-15  None  
1  https://opencorporates.com/officers/43804987  director  2009-09-01  None  
2  https://opencorporates.com/officers/50690971  director  2011-06-02  None  
3  https://opencorporates.com/officers/74483511  director  2013-08-01  None  
4  https://opencorporates.com/officers/97067020  director  2014-07-01  None  
                                               cname  \
0        PYRAMID SCHOOLS (TAMESIDE) HOLDINGS LIMITED   
1                 PYRAMID SCHOOLS (TAMESIDE) LIMITED   
2              PYRAMID SCHOOLS (SOUTHAMPTON) LIMITED   
3     PYRAMID SCHOOLS (SOUTHAMPTON) HOLDINGS LIMITED   
4                   PYRAMID SCHOOLS (HADLEY) LIMITED   
5          PYRAMID SCHOOLS (HADLEY) HOLDINGS LIMITED   
6                 PYRAMID SCHOOLS (CORNWALL) LIMITED   
7      PYRAMID SCHOOLS (CORNWALL) (HOLDINGS) LIMITED   
8  PYRAMID ACCOMMODATION SERVICES (CORNWALL) LIMITED   
9  PYRAMID ACCOMMODATION SERVICES (CORNWALL) HOLD...   

                                              ocurl  oname  
0  https://opencorporates.com/companies/gb/04317596      5  
1  https://opencorporates.com/companies/gb/04317602      5  
2  https://opencorporates.com/companies/gb/04261262      5  
3  https://opencorporates.com/companies/gb/04261229      5  
4  https://opencorporates.com/companies/gb/05232548      5  
5  https://opencorporates.com/companies/gb/05232552      5  
6  https://opencorporates.com/companies/gb/04988242      5  
7  https://opencorporates.com/companies/gb/04989553      5  
8  https://opencorporates.com/companies/gb/04157149      5  
9  https://opencorporates.com/companies/gb/04157174      5  
In [241]:
directors,sharedCos,directorCos=voodooMagic('4934390')
print(directors)
print(sharedCos)
directorCos.groupby(['cname','ocurl']).oname.nunique().order(ascending=False)[:15]
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
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).
  end_date        id                    name  \
0     None  42152718      ALAN PETER FORDYCE   
1     None  81622412      MARTIN PAUL ROONEY   
2     None  82861072        ANDREW MARK GATE   
3     None  82861073           JOHN MCDONAGH   
4     None  99784985  JOSEPH EUGENE PHILIPSZ   

                             opencorporates_url  position  start_date   uid  
0  https://opencorporates.com/officers/42152718  director  2004-04-26  None  
1  https://opencorporates.com/officers/81622412  director  2013-10-07  None  
2  https://opencorporates.com/officers/82861072  director  2013-11-14  None  
3  https://opencorporates.com/officers/82861073  director  2013-11-11  None  
4  https://opencorporates.com/officers/99784985  director  2014-06-02  None  
                                 cname  \
0  NNT LIFT COMPANY (FUNDCO 1) LIMITED   

                                              ocurl  oname  
0  https://opencorporates.com/companies/gb/04934390      5  
Out[241]:
cname                                                     ocurl                                           
NNT LIFT COMPANY (FUNDCO 1) LIMITED                       https://opencorporates.com/companies/gb/04934390    5
NNT LIFT COMPANY LIMITED                                  https://opencorporates.com/companies/gb/04934392    4
NNT LIFT COMPANY (FUNDCO 2) LIMITED                       https://opencorporates.com/companies/gb/07652736    4
INFRASTRUCTURE INVESTORS CASTLEHILL LIMITED               https://opencorporates.com/companies/gb/03897442    2
ROBERTSON HEALTH (GARTNAVEL) HOLDINGS LIMITED             https://opencorporates.com/companies/gb/SC275430    2
ROBERTSON EDUCATION (FORFAR & CARNOUSTIE) LIMITED         https://opencorporates.com/companies/gb/SC304795    2
ROBERTSON EDUCATION (INGLEBY BARWICK) (HOLDINGS) LIMITED  https://opencorporates.com/companies/gb/04375611    2
ROBERTSON EDUCATION (INGLEBY BARWICK) LIMITED             https://opencorporates.com/companies/gb/04375068    2
ROBERTSON HEALTH (CHESTER LE STREET) HOLDINGS LIMITED     https://opencorporates.com/companies/gb/04236937    2
ROBERTSON HEALTH (CHESTER LE STREET) LIMITED              https://opencorporates.com/companies/gb/04239073    2
ROBERTSON HEALTH (CLACKMANNANSHIRE) HOLDINGS LIMITED      https://opencorporates.com/companies/gb/SC315451    2
ELGIN BSF LIMITED                                         https://opencorporates.com/companies/gb/SC367840    2
ROBERTSON HEALTH (EASTER ROSS) LIMITED                    https://opencorporates.com/companies/gb/SC243124    2
ROBERTSON HEALTH (MIDLOTHIAN) (HOLDINGS) LIMITED          https://opencorporates.com/companies/gb/SC345010    2
ROBERTSON HEALTH (GARTNAVEL) LIMITED                      https://opencorporates.com/companies/gb/SC271565    2
Name: oname, dtype: int64
In [243]:
directors,sharedCos,directorCos=voodooMagic('07417700')
print(directors)
print(sharedCos)
directorCos.groupby(['cname','ocurl']).oname.nunique().order(ascending=False)[:15]
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
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).
  end_date        id                         name  \
0     None  53371224              AMANDA PADFIELD   
1     None  53371225           IAN ANTHONY SEXTON   
2     None  55868656             TSUNEHARU HIBINO   
3     None  55868658            HELEN MARY MURPHY   
4     None  55868660            STEVEN MARC PRIOR   
5     None  91075251  GRAHAM ARTHUR MCKENNA-MAYES   

                             opencorporates_url  position  start_date   uid  
0  https://opencorporates.com/officers/53371224  director  2011-03-21  None  
1  https://opencorporates.com/officers/53371225  director  2011-06-22  None  
2  https://opencorporates.com/officers/55868656  director  2012-04-26  None  
3  https://opencorporates.com/officers/55868658  director  2012-09-30  None  
4  https://opencorporates.com/officers/55868660  director  2012-09-30  None  
5  https://opencorporates.com/officers/91075251  director  2014-03-07  None  
                                     cname  \
0           SITA SOUTH TYNE & WEAR LIMITED   
1  SITA SOUTH TYNE & WEAR HOLDINGS LIMITED   

                                              ocurl  oname  
0  https://opencorporates.com/companies/gb/07417700      6  
1  https://opencorporates.com/companies/gb/07418181      6  
Out[243]:
cname                                           ocurl                                           
SITA SOUTH TYNE & WEAR LIMITED                  https://opencorporates.com/companies/gb/07417700    6
SITA SOUTH TYNE & WEAR HOLDINGS LIMITED         https://opencorporates.com/companies/gb/07418181    6
SITA SEMBCORP UK LIMITED                        https://opencorporates.com/companies/gb/08033025    4
SITA WEST LONDON HOLDINGS LIMITED               https://opencorporates.com/companies/gb/08586824    3
SITA SEMBCORP UK HOLDINGS LIMITED               https://opencorporates.com/companies/gb/07983197    3
SITA CORNWALL LIMITED                           https://opencorporates.com/companies/gb/05696514    3
SITA CORNWALL HOLDINGS LIMITED                  https://opencorporates.com/companies/gb/05710695    3
SITA WEST LONDON LIMITED                        https://opencorporates.com/companies/gb/08588138    3
SITA NORTHUMBERLAND HOLDINGS LIMITED            https://opencorporates.com/companies/gb/05944296    2
SITA NORTHUMBERLAND LIMITED                     https://opencorporates.com/companies/gb/05934106    2
FOCUSEDUCATION (LINCOLNSHIRE) HOLDINGS LIMITED  https://opencorporates.com/companies/gb/04236503    1
FOCUSEDUCATION (LAMBETH) LIMITED                https://opencorporates.com/companies/gb/04257230    1
F. AVANN LIMITED                                https://opencorporates.com/companies/gb/01229049    1
EXCHEQUER PARTNERSHIP PLC                       https://opencorporates.com/companies/gb/03810527    1
EXCHEQUER PARTNERSHIP HOLDINGS LIMITED          https://opencorporates.com/companies/gb/03810496    1
Name: oname, dtype: int64
In [244]:
directors,sharedCos,directorCos=voodooMagic('8169805')
print(directors)
print(sharedCos)
directorCos.groupby(['cname','ocurl']).oname.nunique().order(ascending=False)[:15]
ISLAND ROADS SERVICES LIMITED (company number: 08169805) of 105 PICCADILLY, LONDON, W1J 7NJ, is an Active company originally incorporated on 2012-08-07
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).
  end_date        id                                name  \
0     None  54789154            GILLES PIERRE YVES BREEM   
1     None  54789156                     ROMAIN LIMOUZIN   
2     None  54789157  PHILIPPE DANIEL JEAN MARTIN-DAGUET   
3     None  81659595               RICHARD MARK ASHCROFT   
4     None  83760509          ADRIAN JOHN LAWTON-WALLACE   
5     None  87727678                      ROMAIN VERZIER   

                             opencorporates_url  position  start_date   uid  
0  https://opencorporates.com/officers/54789154  director  2012-10-02  None  
1  https://opencorporates.com/officers/54789156  director  2012-09-21  None  
2  https://opencorporates.com/officers/54789157  director  2012-10-02  None  
3  https://opencorporates.com/officers/81659595  director  2013-05-21  None  
4  https://opencorporates.com/officers/83760509  director  2013-11-19  None  
5  https://opencorporates.com/officers/87727678  director  2014-02-04  None  
                               cname  \
0  ISLAND ROADS INVESTMENT 2 LIMITED   
1      ISLAND ROADS SERVICES LIMITED   
2    ISLAND ROADS INVESTMENT LIMITED   

                                              ocurl  oname  
0  https://opencorporates.com/companies/gb/08169759      6  
1  https://opencorporates.com/companies/gb/08169805      6  
2  https://opencorporates.com/companies/gb/08168976      6  
Out[244]:
cname                                                ocurl                                           
ISLAND ROADS INVESTMENT 2 LIMITED                    https://opencorporates.com/companies/gb/08169759    6
ISLAND ROADS SERVICES LIMITED                        https://opencorporates.com/companies/gb/08169805    6
ISLAND ROADS INVESTMENT LIMITED                      https://opencorporates.com/companies/gb/08168976    6
HOUNSLOW HIGHWAYS SERVICES LIMITED                   https://opencorporates.com/companies/gb/08114900    3
HOUNSLOW HIGHWAYS INVESTMENT 2 LIMITED               https://opencorporates.com/companies/gb/08114902    3
HOUNSLOW HIGHWAYS INVESTMENT LIMITED                 https://opencorporates.com/companies/gb/08113663    3
BRISTOL INFRACARE DEVELOPMENTS HOLDINGS (1) LIMITED  https://opencorporates.com/companies/gb/05017728    2
PARTNERS 4 LIFT (FUNDCO 1) LIMITED                   https://opencorporates.com/companies/gb/05094450    2
PARTNERS 4 LIFT (BIDCOSTHOLDCO 1) LIMITED            https://opencorporates.com/companies/gb/05094428    2
PARTNERS 4 LIFT (BIDCOSTCO 1) LIMITED                https://opencorporates.com/companies/gb/05124427    2
BBH-LSL (FUNDCO 2) LIMITED                           https://opencorporates.com/companies/gb/06718531    2
BBH-LSL (FUNDCO 3) LIMITED                           https://opencorporates.com/companies/gb/07073873    2
BBH-LSL (FUNDCO 4) LIMITED                           https://opencorporates.com/companies/gb/07678469    2
BBH-LSL (HOLDCO 2) LIMITED                           https://opencorporates.com/companies/gb/06718671    2
BBH-LSL (HOLDCO 3) LIMITED                           https://opencorporates.com/companies/gb/07074174    2
Name: oname, dtype: int64
In [ ]: