{ "info": { "author": "Michael Hirsch, Ph.D.", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Science/Research", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "[![Build Status](https://travis-ci.com/scivision/mbta_salary.svg?branch=master)](https://travis-ci.com/scivision/mbta_salary)\n[![Coverage Status](https://coveralls.io/repos/github/scivision/mbta_salary/badge.svg?branch=master)](https://coveralls.io/github/scivision/mbta_salary?branch=master)\n[![Python versions (PyPI)](https://img.shields.io/pypi/pyversions/mbtasalary.svg)](https://pypi.python.org/pypi/mbtasalary)\n[![Distribution format (PyPI)](https://img.shields.io/pypi/format/mbtasalary.svg)](https://pypi.python.org/pypi/mbtasalary)\n[![PyPi Download stats](http://pepy.tech/badge/mbtasalary)](http://pepy.tech/project/mbtasalary)\n\n# MBTA Salary Analysis\n\nYear 2015 data thanks to Matthew Rocheleau, the Boston Globe staff reporter on the \n[22 Dec 2015 MBTA overtime article](http://www.bostonglobe.com/2015/12/21/mbta-employees-who-will-make-more-than-this-year/u6BUkDr6EawQ7dlHx9bZQP/story.html).\n\n1. extract text tables from PDF using Poppler `pdftotext`\n2. load with Pandas\n3. look for interesting aspects of the data.\n\nFor example, in 2014, the top MBTA earner was a Technician with an\nestimated $145 K of overtime on top of an $89 K salary. Excessive\novertime can be a concern for worker performance and safety in any\nfield, with possible drastic consequences for the public when working in\nsensitive areas like transportation and medicine.\n\nThe Washingtonian published a 9 Dec 2015\n[article](http://www.washingtonian.com/blogs/capitalcomment/transportation/why-does-metro-suck-dangerous-accidents-escalator-outages.php)\nby Luke Mullins and Michael Gaynor that explores at length issues with WMATA and overtime abuses.\n\nBackpay is excluded as it represents a retroactive increase in base salary for the previous year. \nBackpay is last year's pay, paid out this year.\n\n\n![MBTA salary histogram by category](plots/2015hist.png)\n\n![MBTA salary by category](plots/2015cat.png)\n\n## Examples\n\nWe currently have 2013-2015 salary data. Other trend analyses may find\nit useful to request prior years data.\n\n### 2015 MBTA Salary\n\n```sh\nMBTAsalary EMP-2015-Gross-Bpay-Ovt.xlsx 2015\n```\n\nyields plots and the output:\n\nHighest earning MBTA staff $256080 in 2015 was a Foreperson,Section,\nincluding estimated $171257 overtime.\n\n\n type | max | median | 90th | subtot | num \n--------|---------|---------|---------|---------|------\n signal | 182049 | 117083 | 151384 | > 2e+07 | > 157 \n maint | 256080 | > 97309 | 134881 | > 2e+08 | 1743 \n ops | 145266 | > 96538 | 113948 | > 1e+07 | > 128 \n police | 203553 | > 93684 | 136959 | > 3e+07 | > 271 \n heavy | 178438 | > 80498 | 103964 | > 5e+07 | > 678 \n bus-ft | 120281 | > 75542 | > 91287 | > 1e+08 | 1304 \n subway | 158950 | > 73563 | > 94860 | > 4e+07 | > 628 \n bus-pt | > 54738 | > 40934 | > 49124 | > 2e+07 | > 410 \n rest | 231589 | > 87497 | 122225 | > 1e+08 | 1149 \n all | 256080 | > 82319 | 118860 | > 5e+08 | 6468 \n\n### 2014 MBTA Salary\n\n```sh\nMBTAsalary Wages2014.txt 2014\n```\n\nyields plots and the output:\n\nHighest earning MBTA staff $235194 in 2014 was a Technician,Power\nEquip, including estimated $145401 overtime.\n\n type | max | median | 90th | subtot | num \n--------|---------|---------|---------|---------|------\n signal | 179689 | 110775 | 127210 | > 2e+07 | > 155 \n police | 221910 | 107261 | 165080 | > 3e+07 | > 259 \n maint | 235194 | > 95772 | 131344 | > 2e+08 | 1727 \n ops | 138506 | > 93504 | 115208 | > 1e+07 | > 131 \n heavy | 224458 | > 90492 | 120647 | > 6e+07 | > 670 \n bus-ft | 196809 | > 88447 | 109504 | > 1e+08 | 1337 \n subway | 185242 | > 84203 | 111710 | > 4e+07 | > 576 \n bus-pt | > 66435 | > 33326 | > 52231 | > 1e+07 | > 345 \n rest | 220000 | > 86463 | 129061 | > 1e+08 | 1132 \n all | 235194 | > 89251 | 123618 | > 5e+08 | 6332 \n \n\n### MBTA 2013 Salary\n\n```sh\nMBTAsalary \"FOIA 14-11 final.txt\" 2013\n```\n\nyields plots and the output:\n\nHighest earning MBTA staff $238770 in 2013 was a General Manager\n\n type | max | median | 90th | subtot | num \n--------|---------|---------|---------|---------|------\n signal | 164161 | 109078 | 122121 | > 1e+07 | > 139 \n police | 205400 | 108173 | 162941 | > 3e+07 | > 245 \n maint | 209113 | > 87132 | 113655 | > 1e+08 | 1705 \n ops | 127287 | > 82337 | > 98121 | > 1e+07 | > 131 \n heavy | 154684 | > 72266 | > 99978 | > 5e+07 | > 654 \n bus-ft | 192440 | > 69327 | > 87284 | > 9e+07 | 1279 \n subway | 133214 | > 66729 | > 87589 | > 3e+07 | > 517 \n bus-pt | > 53263 | > 34434 | > 42247 | > 1e+07 | > 358 \n rest | 238770 | > 78120 | 112847 | > 9e+07 | 1098 \n all | 238770 | > 75818 | 108951 | > 5e+08 | 6126 \n\n\n## Obtaining Salary Data\n\nYou will need to download and convert the salary data first. \nEach year's format is a little different.\n\n### 2015 Salary Data\n\nWe obtained this data from Matthew Rocheleau, the Boston Globe staff reporter on the 22 Dec 2015 \n[MBTA overtime article](http://www.bostonglobe.com/2015/12/21/mbta-employees-who-will-make-more-than-this-year/u6BUkDr6EawQ7dlHx9bZQP/story.html).\nWe anticipate a request for the whole year 2015 data once we're into 2016.\n\n### 2014 Salary Data\n\n1. Download 2014 MBTA \n [salary data](http://www.mbta.com/uploadedfiles/Smart_Forms/News,_Events_and_Press_Releases/Wages2014.pdf)\n2. Extract text from PDF:\n ```sh\n pdftotext -layout Wages2014.pdf\n ```\n\n### 2013 Salary Data\n\n1. Download 2013 MBTA \n [salary data](http://www.mbta.com/uploadedfiles/Smart_Forms/News,_Events_and_Press_Releases/FOIA%2014-11%20final.pdf)\n2. Extract text from PDF:\n ```sh\n pdftotext -layout \"FOIA 14-11 final.pdf\"\n ```\n3. The last three lines of this .txt file are missing a space between the salary and \"2013\". \n Just open in a text editor and manually add one additional space before 2013 in these last three lines.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/scivision/mbta_salary", "keywords": "public transportation,MBTA", "license": "", "maintainer": "", "maintainer_email": "", "name": "mbtasalary", "package_url": "https://pypi.org/project/mbtasalary/", "platform": "", "project_url": "https://pypi.org/project/mbtasalary/", "project_urls": { "Homepage": "https://github.com/scivision/mbta_salary" }, "release_url": "https://pypi.org/project/mbtasalary/1.0.0/", "requires_dist": null, "requires_python": ">= 3.6", "summary": "Examining MBTA salaries", "version": "1.0.0" }, "last_serial": 4087077, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "23627ea103fb9d9133ae26f08f010d6b", "sha256": "b996d3ec9666b40bb7207bfb3f712db98b78748fa8e16c813b35924ad8c2231e" }, "downloads": -1, "filename": "mbtasalary-1.0.0.tar.gz", "has_sig": false, "md5_digest": "23627ea103fb9d9133ae26f08f010d6b", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 6561, "upload_time": "2018-07-20T21:00:23", "url": "https://files.pythonhosted.org/packages/49/c0/79b6bdddd58686f41efb5934279565d5338692c3a494bcec23d12f8e7a77/mbtasalary-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "23627ea103fb9d9133ae26f08f010d6b", "sha256": "b996d3ec9666b40bb7207bfb3f712db98b78748fa8e16c813b35924ad8c2231e" }, "downloads": -1, "filename": "mbtasalary-1.0.0.tar.gz", "has_sig": false, "md5_digest": "23627ea103fb9d9133ae26f08f010d6b", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 6561, "upload_time": "2018-07-20T21:00:23", "url": "https://files.pythonhosted.org/packages/49/c0/79b6bdddd58686f41efb5934279565d5338692c3a494bcec23d12f8e7a77/mbtasalary-1.0.0.tar.gz" } ] }