This is the accompanying notebook for all data used in the analysis of NEP 2015 You can modify this to analyze other part of the NEP 2015. This notebook is focused on the ICT component.

Author: Rick Bahague / rick (at) cp-union (dot) com. http://www.cp-union.com

Download datasets from the DBM website.


In [3]:
%matplotlib inline
import pandas as pd
from pylab import *
import mpld3

rcParams['figure.figsize'] = 12, 6
pd.set_option('display.max_rows',500)

mpld3.enable_notebook()

DATA_PATH = "../data/"

#durl = 'http://datasets.flowingdata.com/crimeRatesByState2005.csv'
#rdata = genfromtxt(durl,dtype='S8,f,f,f,f,f,f,f,i',delimiter=',')

Load Data for Automatic Appropriation & Proposed Appropriation


In [4]:
#Data taken from DBM Site
auto_approp = pd.read_csv(DATA_PATH + "2015 NEP-Proposed-Automatic.csv")
auto_approp.fillna(value=0,inplace=True)
new_approp = pd.read_csv(DATA_PATH + "2015 NEP-Proposed.csv")
new_approp.fillna(value=0,inplace=True)

#rename columns for clarity
new_approp.columns = [u'uacs_dpt_id', u'Department', u'uacs_agy_id', u'Agency', 
         u'uacs_fpap_id', u'Description', u'operdiv', u'operunit', u'uacs_oper_dsc', u'fndsrc', 
         u'Source', u'uacs_exp_cd', u'Category', u'uacs_sobj_cd', 
         u'Objective', u'Amount']
auto_approp.columns = [u'uacs_dpt_id', u'Department', u'uacs_agy_id', u'Agency', 
         u'uacs_fpap_id', u'Description', u'operdiv', u'operunit', u'uacs_oper_dsc', u'fndsrc', 
         u'Source', u'uacs_exp_cd', u'Category', u'uacs_sobj_cd', 
         u'Objective', u'Amount']

#select data for analysis
auto_approp_data = auto_approp[auto_approp.Amount>0][['Department','Agency','Description','Source','Category','Objective','Amount']]
auto_approp_data['NEP'] = 'AUTO'
new_approp_data = new_approp[new_approp.Amount>0][['Department','Agency','Description','Source','Category','Objective','Amount']]
new_approp_data['NEP'] = 'NEW'
all_data = auto_approp_data.append(new_approp_data)
all_data[ [u'NEP',u'Department', u'Agency', u'Description', u'Category','Source', u'Objective', u'Amount']].to_csv('data.csv')

Total New and Automatic Appropriation


In [5]:
all_data['Amount'].sum()


Out[5]:
2606000000.0

ICT Budget Items Per Department

The following lists budget items that can be categorized as ICT spending. Note that there are budget items that are actually almost the same but are treated separately and given separate budgets. Example: ICT Software and Computer Software, Information and Communication Technology Equipment and ICT Machinery and Equipment


In [6]:
ICT_items = [
"Information and Communication Technology Equipment",
"Communication Equipment",
"ICT Office Supplies",
"ICT Software",
"Cloud Computing Service",
"ICT Training Expenses",
"Rents - ICT Machinery and Equipment",
"Internet Subscription Expenses",
"ICT Consultancy Services",
"Communication Networks",
"Other General Services - ICT Services",
"ICT Software Subscription",
"Cable, Satellite, Telegraph and Radio Expenses",
"ICT Machinery and Equipment",
"Computer Software",
"Website Maintenance",
"ICT Generation, Transmission and Distribution Expenses",
"ICT Research, Exploration and Development Expenses"]

In [7]:
search = 'Mobile|ICT|Software|Website|Database|Landline|Internet|Cloud|Information and Communication|Communication Equipment|Communication Network|Cable|MITHI|Internet|Computer'
ict_budget_items=all_data[all_data.Objective.str.contains(search,na=0)]
ict_item_department = ict_budget_items.groupby(['Department']).sum()
#ict_item_objectives = ict_budget_items.groupby(['Category','Objective']).sum()
ict_item_objectives = ict_budget_items.groupby(['Objective']).sum()
ict_item_objectives.sort(columns='Amount',ascending=False,inplace=True)
ict_item_department.sort(columns='Amount',ascending=False,inplace=True)
ict_item_objectives['Share %'] = ict_item_objectives['Amount']/ict_item_objectives['Amount'].sum()*100
ict_item_department['Share %'] = ict_item_department['Amount']/ict_item_department['Amount'].sum()*100

In [8]:
ict_item_objectives


Out[8]:
Amount Share %
Objective
Information and Communication Technology Equipment 13244814 52.631034
Rents - ICT Machinery and Equipment 2287511 9.089903
Landline 2109424 8.382237
Internet Subscription Expenses 2076662 8.252050
ICT Consultancy Services 1397622 5.553743
Mobile 963637 3.829213
Communication Networks 932498 3.705476
Other General Services - ICT Services 667682 2.653174
ICT Software Subscription 613650 2.438466
Communication Equipment 323253 1.284513
Cable, Satellite, Telegraph and Radio Expenses 180310 0.716499
ICT Office Supplies 175386 0.696933
ICT Training Expenses 84425 0.335480
ICT Software 76413 0.303643
Cloud Computing Service 13832 0.054964
ICT Machinery and Equipment 9402 0.037361
Computer Software 5573 0.022145
Website Maintenance 3008 0.011953
ICT Generation, Transmission and Distribution Expenses 300 0.001192
ICT Research, Exploration and Development Expenses 5 0.000020

In [16]:
ict_item_department


Out[16]:
Amount Share %
Department
Department of Education (DepEd) 8897669 35.356746
Department of Science and Technology (DOST) 4920646 19.553214
Department of Transportation and Communications (DOTC) 2215389 8.803311
Department of Finance (DOF) 1353362 5.377867
E-Government Fund 1000000 3.973709
Budgetary Support to Government Corporations 901414 3.581957
Department of National Defense (DND) 771073 3.064020
Commission on Elections (COMELEC) 540776 2.148886
Department of the Interior and Local Government (DILG) 502947 1.998565
Department of Environment and Natural Resources (DENR) 482475 1.917215
Department of Budget and Management (DBM) 435520 1.730630
The Judiciary 398156 1.582156
Department of Agriculture (DA) 290155 1.152991
National Economic and Development Authority (NEDA) 263255 1.046099
Other Executive Offices 262507 1.043126
State Universities and Colleges (SUCs) 261737 1.040067
Department of Agrarian Reform (DAR) 258860 1.028634
Department of Social Welfare and Development (DSWD) 232827 0.925187
Congress of the Philippines 179696 0.714060
Department of Labor and Employment (DOLE) 124146 0.493320
Department of Foreign Affairs (DFA) 123636 0.491293
Department of Health (DOH) 120803 0.480036
Department of Public Works and Highways (DPWH) 114388 0.454545
Department of Trade and Industry (DTI) 84628 0.336287
Department of Justice (DOJ) 84271 0.334868
Civil Service Commission (CSC) 76022 0.302089
Presidential Communications Operations Office (PCOO) 52160 0.207269
Autonomous Region in Muslim Mindanao (ARMM) 43535 0.172995
Office of the Ombudsman 38412 0.152638
Office of the President (OP) 36371 0.144528
Department of Tourism (DOT) 34884 0.138619
Department of Energy (DOE) 22166 0.088081
Commission on Audit (COA) 15658 0.062220
Allocations to Local Government Units 13038 0.051809
Commission on Human Rights (CHR) 6585 0.026167
Office of the Vice-President (OVP) 6190 0.024597
Joint Legislative-Executive Councils 50 0.000199

ICT-oriented Projects

We also looked at programmed ICT projects in the NEP. This differ from above. Project implementation costs will include administrative costs and not only ICT services costs.


In [12]:
search_data = 'BalinkBayan Portal|Digitization|Software System|Information System|Data banking|Data Management|Knowledge Management|Information Management|Computerization|Information technology'
ict_project_details = all_data[all_data.Description.str.contains(search_data,na=0)]
a=ict_project_details[ict_project_details.NEP=='NEW'][['Department','Description','Amount']].groupby(['Department','Description']).sum()
ict_projects = a.groupby(level=0).agg(['sum','count'])

#ict_project_details.to_csv('ICT Project Details.csv')
ict_descriptions = a.groupby(level=1).agg(['sum','count'])
ict_descriptions.sort([('Amount','sum')],ascending=False,inplace=True)
ict_descriptions


Out[12]:
Amount
sum count
Description
Department of Education Computerization Program 8530763 1
Digitization Empowerment Program 2670154 1
Revenue Information Systems Development and Maintenance 1187427 1
Digitization Empowerment for Basic Education 453436 1
Planning , Monitoring, Information Management and Systems Development 358070 1
Data Management including Systems Development and Maintenance 323754 1
Information System Strategic Plan 296813 2
Enterprise Information Systems Plan (EISP) 175000 1
Health Information Systems and Technology Development 117897 1
Planning and Management Information Systems 94016 1
Data Processing, Updating including Resource Information Management and Statistical Services 36202 1
Planning, Monitoring and Knowledge Management 35961 1
Information Technology and Data Management Services 34896 1
Climate Data Management, Agrometeorological and Weather Modification Research and Development 31782 1
Computerization of licensure examination processes and regulations 29823 1
Management of Information Systems 28197 1
Computerization Program 18873 1
Provision of Capacity Building, Knowledge Management Services, Legal Services and Information Systems and Technology Development and Maintenance 17518 1
Information System Strategic Plan (ISSP) 17440 1
Higher Education Management Information System (HEMIS) 12040 1
Information Systems Development and Maintenance 11413 2
BalinkBayan Portal 11361 1
Development Planning and Knowledge Management 11333 1
Information System Development and Maintenance 10914 2
Implementation of the Management Information System 10413 1
Planning, Research, Monitoring and Information Systems Management 10315 1
Operation and Maintenance of Computerized Management Information System 7857 1
Evaluation, Coordination and Monitoring of Industrial Programs/Projects and Management Information System 5828 1
Planning, Policy Formulation and Management Information System 5800 1
Geographical Information System (GIS) Building (Completion) - Northern LA Union Campus 4975 1
Development of a crime reporting and recording system and establishment, coordination and maintenance of the National Crime Information System (NCIS) 4940 1
Computerization - GIFMIS 4838 1
Operation of the Nutrition Management Information System 4674 1
Information System Strategic Plan (Instructional Support) - College of Agribusiness, Fisheries and Marine Sciences ( CAFMS - Malita Campus) 3573 1
Development of Shelter Monitoring Information System 2152 1
Development of Front-line Services Information Systems 1101 1
Unified College Information System 1016 1
Development and Maintenance of the Information System 900 1
Development and maintenance of NCAA Information System which includes Cultural Data Banking and Public Information Services 600 1
Internal Project 4: JRMSU Higher Education Services Management Information System (JRMSU-HESMIS) 586 1
National Museum's Customized Information System 100 1

ICT Expenditure (Auto and New Proposed)


In [13]:
ict_budget = ict_projects.join(ict_item_department['Amount'],how='right')
ict_budget.fillna(0,inplace=True)
ict_budget.columns = ['Amount of New Project','Count of New Projects','Amount ICT Budget Items']
ict_budget.sort(columns='Amount of New Project',ascending=False,inplace=True)

The total ICT spending for NEP amounts to the following (in '000' PhP):


In [14]:
ict_budget.sum()


Out[14]:
Amount of New Project      14584751
Count of New Projects            44
Amount ICT Budget Items    25165407
dtype: float64

Telco will get at least the following amount from the government


In [17]:
ppp = [
"Internet Subscription Expenses",
"Landline","Mobile","Cable, Satellite, Telegraph and Radio Expenses"]

c=all_data[all_data.Objective.isin(ppp)]
c['Amount'].sum()/ict_budget['Amount ICT Budget Items'].sum()*100
c['Amount'].sum()


Out[17]:
5330033.0

Proprietary Software Expenses


In [18]:
proprietary = [
    'ICT Software Subscription',
    'ICT Software',
    'Computer Software',"Cloud Computing Service",]

proprietary_expenses = all_data[(all_data.Objective.isin(proprietary))]

In [19]:
proprietary_expenses['Amount'].sum()/ict_budget['Amount ICT Budget Items'].sum()*100
proprietary_expenses['Amount'].sum()


Out[19]:
709468.0

In [20]:
new_projects = ict_project_details[ict_project_details.NEP=='NEW']

To Outsource or In-house IT implementation for new projects


In [37]:
benefits = [
       'Basic Salary - Civilian',
       'Retirement and Life Insurance Premiums','Bonus - Civilian',
       'PERA - Civilian',
       'Cash Gift - Civilian', 'Clothing/Uniform Allowance - Civilian',
       'PhilHealth - Civilian',
       'Productivity Incentive Allowance - Civilian',
       'ECIP - Civilian','Pag-IBIG - Civilian',
       'Honoraria - Civilian', 
       'Salaries and Wages - Casual/Contractual']

personnel_benefits = new_projects[new_projects.Objective.isin(benefits)] 

outsourced = [
       'Other General Services - ICT Services',
       'Consultancy Services',
       'ICT Consultancy Services',
       'Cloud Computing Service','Website Maintenance']

outsourced_expenses = new_projects[new_projects.Objective.isin(outsourced)]

In [38]:
#personnel_benefits['Amount'].sum()/ict_budget['Amount of New Project'].sum()
personnel_benefits['Amount'].sum()


Out[38]:
420913.0

In [39]:
#outsourced_expenses['Amount'].sum()/ict_budget['Amount of New Project'].sum()
outsourced_expenses['Amount'].sum()


Out[39]:
793460.0

Expensive Website Maintenance


In [21]:
Web_Maintenance = all_data[all_data.Objective=='Website Maintenance']
temp=Web_Maintenance[['Department','Agency','Amount']].groupby(['Department','Agency']).sum()
temp.sort(columns='Amount',ascending=False,inplace=True)
temp


Out[21]:
Amount
Department Agency
Department of National Defense (DND) Office of Civil Defense 1500
Department of Environment and Natural Resources (DENR) Office of the Secretary 567
Other Executive Offices National Commission for Culture and the Arts-Proper 550
Department of Budget and Management (DBM) Government Procurement Policy Board-Technical Support Office 150
Autonomous Region in Muslim Mindanao (ARMM) Autonomous Regional Government in Muslim Mindanao 107
Department of the Interior and Local Government (DILG) National Police Commission 66
Department of National Defense (DND) Armed Forces of the Philippines - General Headquarters, AFP and AFP-Wide Service Support Units (AFPWSSUS) 43
Department of Foreign Affairs (DFA) UNESCO National Commission of the Philippines 25

Rents - ICT Machinery and Equipment


In [22]:
#Description, Agency, Department, Category
query_str = 'Rents - ICT Machinery and Equipment'
temp = all_data[all_data.Objective==query_str].groupby(['Department','Agency','Description']).sum()
temp.sort(columns='Amount',ascending=False,inplace=True)
#temp
temp.sum()


Out[22]:
Amount    2287511
dtype: float64

ICT Acquisitions


In [23]:
#Description, Agency, Department, Category
query_str = [
    'Information and Communication Technology Equipment',
    'Communication Equipment',
    'Communication Networks',
    'ICT Machinery and Equipment',
    ]
temp0 = all_data[all_data.Objective.isin(query_str)] 
temp0['Amount'].sum()/all_data['Amount'].sum()*100
temp0.sum()


Out[23]:
Amount    14509967
dtype: float64

In [42]: