Logo

Teacher Salary

About

Ever wanted to know how much your teacher makes? Well, now you can! This website allows you to search for teachers in British Columbia and see how much they make. The data comes from financial statements published by universities and school districts.

I couldn’t find my teacher!

The BC Financial Information Act only requires that employees that make more than $75,000 be published. However, some districts/universities may contain outdated data. This will be fixed in an upcoming update.

Technical Details

Many different methods were used to parse the data in the respective PDFs. Initially, I tried to parse the tables with Tabula but quickly found that it didn’t work all that well. It required a lot of manual adjusting, which was tedious to do. I contacted Nathan Griffiths from the Vancouver Sun as they have completed something similar.Their database covers all public servants but also contains outdated data for certain districts/institutions. Nathan had told me that from his experience, there was no way around manual cleanup when using Tabula or Adobe Acrobat.

Through trial and error, I discovered an optimal data parsing method. It involved copying all the data as plaintext through a PDF viewer and cleaning it with Python. This was much better than Tabula because Tabula would occasionally miss some aspects if formatted strangely. By avoiding Tabula, I could ensure I would not miss any data, plus the cleaning was a lot easier. The database is mainly filled with data I parsed, but I used the Vancouver Sun’s data for a few districts. Eventually, the database will soon contain data entirely collected by me.

The front end of this site was initially built using vanilla React with an Express.js backend and deployed on AWS Elastic Beanstalk. However, the current deployment is created with Next.js and deployed on Vercel since Next.js v13 makes everything more manageable (and it’s free). The backend uses the fuzzy npm module, which means misspelled queries should still work! The website includes a responsive design with Tailwind CSS and supports mobile devices.