Tidyverse Functions (Part 2)

Introduction

The tidyverse metapackage offers even more useful functions than the ones we have covered to date. In this tutorial, we’ll be learning some new functions that will help us tansform our data, compute new variables, and visualize things more effectively.

First, here is a summary of the data analysis functions covered in this tutorial and a quick description of when you’ll want to use them:

  • Use distinct() whenever you want to see the list of unique values within a variable

  • Use top_n() whenever you want to get the top X rows (based on the values from some variable)

  • Use mutate() whenever you want to add a new variable (column) to the existing data frame based on an operation

  • Use pivot_longer() and pivot_wider() whenever you want to convert data from wide format to long format, and vice versa

Second, here is a summary of some helpful functions for creating data visualizations using ggplot2:

  • Use the group, color, shape, and size aesthetic mappings to group information

  • Use fct_reorder() to sort the labels on your axes

  • Use expand_limits() to automatically extend an axis in a certain direction (e.g., to show the value at zero)

  • Use scale_{x,y}_continuous() to add more tick marks to an axis

  • Use labs() to provide easier-to-read labels for each axis

  • Use facet_wrap() to create a grid of similar charts based on a variable

  • Use theme() to move (or hide) the chart legend

Our dataset for this tutorial

We will be illustrating each function by applying them to a dataset combining the gross salaries for Town of Amherst employees in 2020 with the salaries from 2018. These data were extracted from the PDF files using Tabula, cleaned up to standardize department names, and saved to this CSV file.

I can load this dataset by using the read_csv() function from the readr package (part of tidyverse), supplying the URL for the dataset as my lone argument, and specifying that I want to disable scientific notation for the rest of my working session.

options(scipen=999)
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──

## ✓ ggplot2 3.3.5     ✓ purrr   0.3.4
## ✓ tibble  3.1.3     ✓ dplyr   1.0.7
## ✓ tidyr   1.1.3     ✓ stringr 1.4.0
## ✓ readr   2.0.1     ✓ forcats 0.5.1

## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
salaries <- read_csv("https://dds.rodrigozamith.com/files/amherst_gross_wages_2018_2020.csv")
## Rows: 1559 Columns: 5

## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (3): last_name, first_name, department
## dbl (2): year, gross_wages

##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Let’s review the first few rows in the dataset to see what we’re working with.

head(salaries)
year last_name first_name gross_wages department
2020 AARONSON JEREMY 252.71 Fire
2018 ABDEL-MAKSOUD ALI 9878.00 Amherst Recreation
2020 ABDEL-MAKSOUD AMMAR 1433.96 Amherst Recreation
2018 ABELLI NICOLE 45931.00 Amherst Recreation
2020 ABELLI NICOLE 57203.87 Amherst Recreation
2020 ABRAMSON ANDREW 81.96 Town Clerk’s

Next, let’s double-check the structure of the dataset:

glimpse(salaries)
## Rows: 1,559
## Columns: 5
## $ year        <dbl> 2020, 2018, 2020, 2018, 2020, 2020, 2018, 2018, 2020, 2018...
## $ last_name   <chr> "AARONSON", "ABDEL-MAKSOUD", "ABDEL-MAKSOUD", "ABELLI", "A...
## $ first_name  <chr> "JEREMY", "ALI", "AMMAR", "NICOLE", "NICOLE", "ANDREW", "D...
## $ gross_wages <dbl> 252.71, 9878.00, 1433.96, 45931.00, 57203.87, 81.96, 102.0...
## $ department  <chr> "Fire", "Amherst Recreation", "Amherst Recreation", "Amher...

As we can see, there are five variables in this dataset, and a total of 1,559 observations. The names are correctly stored as chr values and the numbers (year and gross_wages) correctly present themselves as numerical (dbl) values. Finally, it still seems like the data mostly exist for just two years: 2018 and 2020. (We can easily double-check that using the distinct() function, which is described below.)

distinct()

We use the distinct() to get a quick listing of all the unique values within a given variable.

This is helpful when a variable (like department) has a lot of values that repeat, yet you want to quickly see which different values (different departments) are present in the dataset. For example, here’s how we can get a basic data frame consisting of just the unique values for department:

salaries %>%
  distinct(department)
department
Fire
Amherst Recreation
Town Clerk’s
Jones Library
Accounting
Public Works
Inspections Services
Dispatch
Police
Senior Center
Cherry Hill Golf Course
Town Manager’s Office
Conservation
Collectors
Assessor
Planning
Select Board
Town Council
Public Health
Sustainability
Facilities/Maintenance
Information Technology
Animal Control
Parking Enforcement
Human Resources
Human Resources/Human Rights

count() effectively does this and provides us with additional information (how often that unique value comes up), so it is often more useful in the beginning. However, there will be times in more advanced analyses when you’ll want to call on a simple vector of unique values as part of a multi-step operation, and distinct() allows you to do that in an efficient way.

We can double-check that we only have data for 2018 and 2020 by using the following code:

salaries %>%
  distinct(year)
year
2020
2018

That is indeed the case. We only have data for those two years.

top_n()

The top_n() function is useful whenever we want to look at the top X rows of the dataset based on some variable. This is a faster alternative to the arrange() and head() pairings we’ve previously covered.

This function takes two arguments: (1) the number of rows you want and (2) the variable to base the selection on.

For example, here’s how we can produce a data frame with the three people that have the highest salaries (gross_wages):

salaries %>%
  top_n(3, gross_wages)
year last_name first_name gross_wages department
2020 BOCKELMAN PAUL 193575.7 Town Manager’s Office
2020 LANG TODD 172626.8 Police
2020 LIVINGSTONE SCOTT 172109.8 Police

This may occasionally produce more than 3 rows if the third-highest value was shared by two or more people, making this a superior alternative to relying on head(). We would still need to pair it with arrange() to sort the output, though.

mutate()

The mutate() function is used whenever we want to add (compute) a new variable to the data frame based on an operation. (Put differently, when you want to add a new data point for each observation (row) within the data frame.)

We supply the mutate() function with an argument structured with (1) the name of the variable we want to create (e.g., new_salary), (2) followed by the equal sign (=) to denote what we want that new variable to be equal to, which is followed by (3) the operation we want to perform to calculate the values for the new variable (e.g., old_salary + 10).

This syntax is similar to what we previously covered with the summarize() function. However, unlike summarize(), the mutate() function does not strip information from the dataset (i.e., it does not aggregate data). Because we’re just adding a new column, all of our original variables (like first_name) are preserved.

Here’s how we might compute what a 2% raise would look like for each person in this dataset, storing that information in a variable called increased_wages:

salaries %>%
  mutate(increased_wages=gross_wages*1.02) %>%
  select(year, first_name, last_name, gross_wages, increased_wages)
year first_name last_name gross_wages increased_wages
2020 JEREMY AARONSON 252.71 257.7642
2018 ALI ABDEL-MAKSOUD 9878.00 10075.5600
2020 AMMAR ABDEL-MAKSOUD 1433.96 1462.6392
2018 NICOLE ABELLI 45931.00 46849.6200
2020 NICOLE ABELLI 57203.87 58347.9474
2020 ANDREW ABRAMSON 81.96 83.5992
2018 DIANA ADAIR 102.00 104.0400
2018 EMILY ADELSBEGER 359.00 366.1800
2020 PATRICIA AHO 180.18 183.7836
2018 ELIZA AHRENS 14023.00 14303.4600
2018 JAKE ALDRICH 9500.00 9690.0000
2018 MONICA ALDRICH 82065.00 83706.3000
2020 MONICA ALDRICH 96169.00 98092.3800
2018 SONIA ALDRICH 111878.00 114115.5600
2020 SONIA ALDRICH 132251.42 134896.4484
2018 HENRY ALLAN 63229.00 64493.5800
2020 HENRY ALLAN 69565.75 70957.0650
2018 CAMLYN ALLEN 4444.00 4532.8800
2018 LUKE ALLEN 501.00 511.0200
2018 MARTA ALVAREZ 360.00 367.2000
2020 MARTA ALVAREZ 270.27 275.6754
2018 BRIDGET AMBERS 4939.00 5037.7800
2018 AMY ANAYA 75243.00 76747.8600
2020 AMY ANAYA 86178.46 87902.0292
2020 CATHERINE ANDERSON 51923.57 52962.0414
2018 MARIAH ANTHONY 13960.00 14239.2000
2020 MARIAH ANTHONY 71710.39 73144.5978
2018 EDWARD APPEL 336.00 342.7200
2020 EDWARD APPEL 3194.73 3258.6246
2018 JESSENIA AQUINO 42.00 42.8400
2018 BRUCE ARBOUR 273.00 278.4600
2020 BRUCE ARBOUR 99.36 101.3472
2018 PATRICK ARBOUR 62101.00 63343.0200
2020 PATRICK ARBOUR 76540.67 78071.4834
2018 ANDREW ARMSTRONG 3581.00 3652.6200
2018 JESUS AROCHO 154513.00 157603.2600
2020 JESUS AROCHO 162880.27 166137.8754
2018 SIMONE ASCHER 50268.00 51273.3600
2020 SIMONE ASCHER 64967.68 66267.0336
2018 CYNTHIA ASEBROOK 358.00 365.1600
2020 CYNTHIA ASEBROOK 38.61 39.3822
2018 CAROL ASHBY 325.00 331.5000
2020 CAROL ASHBY 90.09 91.8918
2018 SHERRILL ASHTON 212.00 216.2400
2020 SHERRILL ASHTON 773.60 789.0720
2018 THERESA ATTERIDGE 7213.00 7357.2600
2020 THERESA ATTERIDGE 2791.47 2847.2994
2018 CHARLES ATWOOD 55.00 56.1000
2020 SIMONE AUDETTE 335.38 342.0876
2018 SUSAN AUDETTE 66215.00 67539.3000
2020 SUSAN AUDETTE 75618.29 77130.6558
2018 JARRETT AUSTIN 5649.00 5761.9800
2020 JARRETT AUSTIN 5684.04 5797.7208
2018 DANIEL AVERILL 2141.00 2183.8200
2020 DANIEL AVERILL 39383.53 40171.2006
2020 CATHY AXELSON-BERRY 51.48 52.5096
2018 CONNOR BAGDON 1936.00 1974.7200
2018 NANCY BAIR 88.00 89.7600
2020 NANCY BAIR 90.09 91.8918
2020 BRIANNA BAKER 28493.87 29063.7474
2018 JORDAN BAKER 368.00 375.3600
2020 CALEB BALLANTINE 77.22 78.7644
2020 DANIEL BALLANTINE 96.53 98.4606
2018 SARAH BANNISTER 6099.00 6220.9800
2018 STEVEN BARANOSKI 170.00 173.4000
2018 BRYANNYAGARA BARBOZA 69.00 70.3800
2020 BRYANNYAGARA BARBOZA 90.09 91.8918
2018 ERIK BARDWELL 56064.00 57185.2800
2020 ERIK BARDWELL 56779.94 57915.5388
2020 MOHAMAD BARHAM 96.53 98.4606
2018 BRIANNA BARIL 1766.00 1801.3200
2018 MICHAEL BARONE 100310.00 102316.2000
2020 MICHAEL BARONE 99440.02 101428.8204
2018 LAURA BARRY 52301.00 53347.0200
2020 LAURA BARRY 11157.14 11380.2828
2018 ROBIN BARTON 64972.00 66271.4400
2020 ROBIN BARTON 67613.40 68965.6680
2018 CHRISTOPHER BASCOMB 101015.00 103035.3000
2020 CHRISTOPHER BASCOMB 116310.16 118636.3632
2020 GREGORY BASCOMB 1500.00 1530.0000
2018 CLAIRE BASLER-CHANG 3182.00 3245.6400
2018 AIDAN BASS 3883.00 3960.6600
2020 JOSEPH BASS 64.35 65.6370
2020 BAILEY BATTY 366.79 374.1258
2020 EVELYN BEAURY 77.22 78.7644
2018 PHILIP BELANGER 30285.00 30890.7000
2020 PHILIP BELANGER 46561.70 47492.9340
2018 BRADLEY BELL 1074.00 1095.4800
2018 JOHN BELLA-HUNTER 2005.00 2045.1000
2018 ANYA BENSON 3850.00 3927.0000
2020 ANYA BENSON 7911.55 8069.7810
2020 ELAYNE BERGER 151.22 154.2444
2020 EMERY BERGER 151.22 154.2444
2018 CASEY BERGERON 93965.00 95844.3000
2020 CASEY BERGERON 88642.25 90415.0950
2018 KIMBERLY BERGERON 45685.00 46598.7000
2020 KIMBERLY BERGERON 54098.05 55180.0110
2018 EVERETT BERGMANN 57168.00 58311.3600
2020 EVERETT BERGMANN 61219.34 62443.7268
2018 PAUL BERMAN 290.00 295.8000
2020 LIZA BERNARD 3112.90 3175.1580
2018 MARTHA BERNSTEIN 113.00 115.2600
2020 CLARE BERTRAND 184.41 188.0982
2018 MATTHEW BERUBE 71176.00 72599.5200
2020 MATTHEW BERUBE 81355.84 82982.9568
2018 JOHN BERWALD 154.00 157.0800
2020 JOHN BERWALD 102.96 105.0192
2020 HANNAH BETE 2156.54 2199.6708
2020 JUDITH BEYER 77.22 78.7644
2020 LOUIS BEYER 77.22 78.7644
2018 BARBARA BILZ 88861.00 90638.2200
2020 BARBARA BILZ 99137.75 101120.5050
2020 LAWRENCE BIRKHOLZ 1500.00 1530.0000
2018 CAROL BIRTWISTLE 306.00 312.1200
2020 CAROL BIRTWISTLE 140.02 142.8204
2020 HOLLY BLACK 186.62 190.3524
2018 ARLO BLANCHARD 3922.00 4000.4400
2020 JEFFREY BLAUSTEIN 90.09 91.8918
2020 MARILYN BLAUSTEIN 90.09 91.8918
2018 THOMAS BLESSING 1508.00 1538.1600
2018 ANNA BLOKHINA 56.00 57.1200
2018 FREDERICK BLOOM 121.00 123.4200
2020 TAYLOR BLOW 645.86 658.7772
2018 PAUL BOCKELMAN 171504.00 174934.0800
2020 PAUL BOCKELMAN 193575.69 197447.2038
2020 PARIS BOICE 10651.58 10864.6116
2020 JANDALL BOOM 252.00 257.0400
2018 BRADLEY BORDEWIECK 61890.00 63127.8000
2020 BRADLEY BORDEWIECK 68109.50 69471.6900
2020 MICHELLE BORKHUIS 2705.40 2759.5080
2020 TYLER BORRELL 3695.89 3769.8078
2018 WILLIAM BORRELL 3379.00 3446.5800
2020 ZITA BOSCHER 1498.25 1528.2150
2018 CHERYL BOUCHER 79015.00 80595.3000
2020 CHERYL BOUCHER 95341.52 97248.3504
2018 JONATHAN BOULANGER 1047.00 1067.9400
2018 THERESA BOUTHILETTE SARNA 59309.00 60495.1800
2020 THERESA BOUTHILETTE SARNA 65259.85 66565.0470
2018 HOLLY BOWSER 73770.00 75245.4000
2020 HOLLY BOWSER 86727.38 88461.9276
2018 JEFFREY BOWSER 54540.00 55630.8000
2020 JEFFREY BOWSER 57361.02 58508.2404
2018 ROXANNE BOYD 38058.00 38819.1600
2020 ROXANNE BOYD 47143.78 48086.6556
2018 CATHY BOYLE 56312.00 57438.2400
2018 MICHAEL BOYLE 112742.00 114996.8400
2018 PAUL BRACCIOTTI 206.00 210.1200
2020 PAUL BRACCIOTTI 115.83 118.1466
2018 ANDREW BRACE 47796.00 48751.9200
2020 ANDREW BRACE 67308.07 68654.2314
2018 BETTY BRACE 236.00 240.7200
2020 TYLER BRADLEY 90.09 91.8918
2018 PHILIP BRAININ 2103.00 2145.0600
2020 PHILIP BRAININ 2622.24 2674.6848
2018 SAMUEL BRAININ 1845.00 1881.9000
2020 AARON BRAITHWAITE 577.16 588.7032
2020 BENJAMIN BREGER 39474.01 40263.4902
2018 CHRISTINE BRESTRUP 88369.00 90136.3800
2020 CHRISTINE BRESTRUP 100296.78 102302.7156
2020 JILLIAN BREVIK 90.09 91.8918
2018 ALISA BREWER 1500.00 1530.0000
2020 ALISA BREWER 5000.04 5100.0408
2018 NINA BRIAN-SMITH 429.00 437.5800
2018 SHANE BRITT 4408.00 4496.1600
2020 ROBERT BROOKS 99.74 101.7348
2018 CARLTON BROSE 110.00 112.2000
2018 CATHERINE BROWN 1517.00 1547.3400
2020 CATHERINE BROWN 9760.61 9955.8222
2018 JENNIFER BROWN 33763.00 34438.2600
2020 JENNIFER BROWN 74139.55 75622.3410
2018 EVA BROWNE 22.00 22.4400
2018 JOHN BRYAN 99.00 100.9800
2020 JOHN BRYAN 318.54 324.9108
2020 KELLEY BRYANT 96.53 98.4606
2020 ABIGAIL BUCEY 1269.20 1294.5840
2018 JANE BUCHANAN 7415.00 7563.3000
2018 WILLIAM BUDINGTON 265.00 270.3000
2018 MATTHEW BUKOWSKI 651.00 664.0200
2020 ZACHARY BULLOUGH 77077.13 78618.6726
2018 NONNY BURACK 626.00 638.5200
2020 NONNY BURACK 1500.00 1530.0000
2020 NONNY BURACK 106.08 108.2016
2018 DAVID BURGESS 100413.00 102421.2600
2020 DAVID BURGESS 19372.75 19760.2050
2018 NATHANAEL BURGESS 77727.00 79281.5400
2020 NATHANAEL BURGESS 89309.83 91096.0266
2018 SANDRA BURGESS 57063.00 58204.2600
2018 CONOR BURKE 70517.00 71927.3400
2020 CONOR BURKE 64035.47 65316.1794
2020 TRISTAN BURKE 2081.57 2123.2014
2018 GEOFFREY BURNHAM 1087.00 1108.7400
2018 GLENN BURROWS 73329.00 74795.5800
2020 GLENN BURROWS 78790.40 80366.2080
2018 ROSALIE BURROWS 206.00 210.1200
2018 MIA CABANA 60245.00 61449.9000
2020 MIA CABANA 69143.07 70525.9314
2018 IRENA CADE 77.00 78.5400
2018 CARL CAIVANO 110.00 112.2000
2020 CARL CAIVANO 99.45 101.4390
2018 JONATHAN CALI 539.00 549.7800
2020 JONATHAN CALI 1047.54 1068.4908
2018 STEPHEN CALL 84197.00 85880.9400
2020 STEPHEN CALL 93817.18 95693.5236
2018 BRENDAN CAMPBELL 5069.00 5170.3800
2020 TREVOR CAMPBELL 179.69 183.2838
2020 EVAN CANNEY 1096.46 1118.3892
2018 ALEXANDER CANTOR 792.00 807.8400
2018 ELISABETH CANTOR 134.00 136.6800
2020 ELISABETH CANTOR 163.92 167.1984
2020 KRISTA CARAWAY 4427.15 4515.6930
2018 ROBERT CARKHUFF 2198.00 2241.9600
2020 ROBERT CARKHUFF 431.20 439.8240
2018 PETER CARLSON 65118.00 66420.3600
2020 PETER CARLSON 70757.45 72172.5990
2018 BENTON CARR 84181.00 85864.6200
2020 BENTON CARR 90851.04 92668.0608
2018 LINDSAY CARROLL 86443.00 88171.8600
2020 LINDSAY CARROLL 108957.81 111136.9662
2018 CYNTHIA CARY 60900.00 62118.0000
2020 CYNTHIA CARY 66981.81 68321.4462
2018 CAMERON CASS 2998.00 3057.9600
2018 KAREN CASSIDY 3497.00 3566.9400
2020 KAREN CASSIDY 7490.62 7640.4324
2018 LAURA CASTANO-LONGEY 2160.00 2203.2000
2020 LAURA CASTANO-LONGEY 2711.56 2765.7912
2018 RICHARD CAVALIERE 715.00 729.3000
2020 NALEYAH CESAR-BONE 305.28 311.3856
2018 NICHOLAS CHANDLER 98870.00 100847.4000
2020 NICHOLAS CHANDLER 101155.31 103178.4162
2018 STEVEN CHANDLER 105409.00 107517.1800
2020 STEVEN CHANDLER 120449.80 122858.7960
2018 MARK CHAPLIN 7464.00 7613.2800
2018 DAEL CHAPMAN 298.00 303.9600
2020 DAEL CHAPMAN 51.48 52.5096
2018 NICHOLAS CHEHADE 3828.00 3904.5600
2018 KATHLEEN CHILDRESS 286.00 291.7200
2020 KATHLEEN CHILDRESS 2515.79 2566.1058
2020 MATTHEW CHIPMAN 62794.99 64050.8898
2018 NICHOLAS CHIREKOS 73913.00 75391.2600
2020 NICHOLAS CHIREKOS 89685.51 91479.2202
2018 MICHELE CHMURA 52611.00 53663.2200
2020 MICHELE CHMURA 52073.37 53114.8374
2018 CARRISSA CHO 1254.00 1279.0800
2018 NUR CHOWDHURI 187.00 190.7400
2018 ELIZABETH CHUDZIK 81034.00 82654.6800
2020 ELIZABETH CHUDZIK 89333.01 91119.6702
2018 JOHN CHUDZIK 118776.00 121151.5200
2020 JOHN CHUDZIK 96244.37 98169.2574
2018 STEPHANIE CICCARELLO 73665.00 75138.3000
2020 STEPHANIE CICCARELLO 79794.58 81390.4716
2018 JOSHUA CICIA 66591.00 67922.8200
2020 JOSHUA CICIA 72933.04 74391.7008
2020 RICHARD CILIBERTO 752.95 768.0090
2018 DANTE CITINO 1785.00 1820.7000
2020 DANTE CITINO 2034.03 2074.7106
2020 TOMMY CLAIRE 385.00 392.7000
2018 CHARLES CLARK 13451.00 13720.0200
2020 CHARLES CLARK 47688.35 48642.1170
2018 JOSHUA CLARK 62248.00 63492.9600
2020 JOSHUA CLARK 64638.95 65931.7290
2018 THOMAS CLARK 92196.00 94039.9200
2020 THOMAS CLARK 103902.69 105980.7438
2018 VINCENT CLEARY 50.00 51.0000
2018 BRUCE CLEVELAND 35734.00 36448.6800
2020 BRUCE CLEVELAND 47053.12 47994.1824
2018 DAVID CLOONEY 79310.00 80896.2000
2020 DAVID CLOONEY 87115.98 88858.2996
2020 ANTHONY CLOUGH 1104.42 1126.5084
2018 TRAVIS CLOUGH 2239.00 2283.7800
2018 DAVID CODY 62036.00 63276.7200
2020 DAVID CODY 76825.63 78362.1426
2018 JONATHAN CODY 610.00 622.2000
2018 JOHN COELHO 63777.00 65052.5400
2020 JOHN COELHO 69090.52 70472.3304
2020 JOSEPH COFFEY 139.58 142.3716
2018 JOSHUA COLBY 55996.00 57115.9200
2020 JOSHUA COLBY 50346.75 51353.6850
2020 PAUL COLLINS 96.53 98.4606
2018 XAVIER COLON 2116.00 2158.3200
2018 ELISE COMMONS 789.00 804.7800
2018 COLIN CONKEY 2659.00 2712.1800
2020 EMMA CONNER 102.96 105.0192
2020 DARBY CONNOLLY 1032.41 1053.0582
2018 LOUIS CONOVER 44.00 44.8800
2020 LOUIS CONOVER 241.32 246.1464
2018 RITA CONTARDO 89196.00 90979.9200
2018 CLARE COOKE 44414.00 45302.2800
2020 CLARE COOKE 54037.85 55118.6070
2018 RUSSELL COOMBS 73899.00 75376.9800
2020 RUSSELL COOMBS 77628.58 79181.1516
2018 SCOTT COOMBS 47767.00 48722.3400
2018 JASMINE COOPER 159.00 162.1800
2018 JULIA COPPONI 371.00 378.4200
2018 ADAM CORMIER 73960.00 75439.2000
2020 ADAM CORMIER 78005.04 79565.1408
2018 DEBRA CORMIER 60711.00 61925.2200
2020 DEBRA CORMIER 47405.84 48353.9568
2018 DOMINICK CORSETTI 102278.00 104323.5600
2020 DOMINICK CORSETTI 100174.43 102177.9186
2018 ANDREW COTE 42650.00 43503.0000
2020 ANDREW COTE 66271.04 67596.4608
2020 CASSANDRA COTE 1905.57 1943.6814
2018 LIVIA COX 3186.00 3249.7200
2018 JESSE CRAFTS-FINCH 39.00 39.7800
2020 JESSE CRAFTS-FINCH 99.49 101.4798
2020 SARAH CRAIG 288.99 294.7698
2018 CHRIS CRANE 12644.00 12896.8800
2020 CHRIS CRANE 13436.82 13705.5564
2018 JASON CRANE 759.00 774.1800
2018 CAROLINE CRISTOFORO 6073.00 6194.4600
2018 JOHN CROWLEY 56144.00 57266.8800
2020 JOHN CROWLEY 60731.31 61945.9362
2018 LUCAS CROWLEY 390.00 397.8000
2018 ROBERT CROWNER 605.00 617.1000
2020 ROBERT CROWNER 614.71 627.0042
2020 PETER CRUMP 1513.28 1543.5456
2018 MATTHEW CRUTCH 39255.00 40040.1000
2020 MATTHEW CRUTCH 43420.87 44289.2874
2018 JAIME CRUZ 77.00 78.5400
2018 JOCELYN CUFFEE 105.00 107.1000
2018 NICHOLAS CUNHA 449.00 457.9800
2020 RITA CURLEY 90198.23 92002.1946
2018 MICHAEL CURTIN 79051.00 80632.0200
2020 MICHAEL CURTIN 84646.21 86339.1342
2020 WILLIAM CUTRONE 1325.43 1351.9386
2018 ADAM D’AGOSTINO 61.00 62.2200
2018 THOMAS D’ANNOLFO 572.00 583.4400
2018 THOMAS DALEY 4246.00 4330.9200
2018 KELLY DALTON 2242.00 2286.8400
2018 BRIAN DALY 119463.00 121852.2600
2020 BRIAN DALY 131630.02 134262.6204
2018 JESSICA DAMON 91474.00 93303.4800
2020 JESSICA DAMON 91391.38 93219.2076
2018 JAMES DAMOURAS 106752.00 108887.0400
2020 JAMES DAMOURAS 117500.49 119850.4998
2018 NICHOLAS DAMREN 39953.00 40752.0600
2020 ANGELA DANGER 60449.19 61658.1738
2020 KELLY DAPPRICH 180.18 183.7836
2020 SAMUEL DATTILO 1296.67 1322.6034
2020 MATTHEW DAVIES 44558.12 45449.2824
2020 SHYLA DAVIS 262.85 268.1070
2020 PATRICIA DE ANGELIS 5000.04 5100.0408
2018 MARY DECKER 50368.00 51375.3600
2020 MARY DECKER 57737.47 58892.2194
2020 DOUGLAS DEDISCHEW 335.38 342.0876
2018 SCOTT DEL POZZO 22512.00 22962.2400
2018 ANTHONY DELANEY 56762.00 57897.2400
2020 ANTHONY DELANEY 65251.53 66556.5606
2018 ROBERT DELGADO 5155.00 5258.1000
2020 SARAH DEMAREST 8251.03 8416.0506
2020 PETER DEMLING 1500.00 1530.0000
2018 COREY DERES 37681.00 38434.6200
2020 COREY DERES 42898.93 43756.9086
2020 MICHELE DESABRAIS 7487.34 7637.0868
2020 JACK DESAUTELS 3879.78 3957.3756
2018 PATRICE DESMARAIS 33606.00 34278.1200
2018 PAUL DETHIER 85615.00 87327.3000
2020 PAUL DETHIER 92711.90 94566.1380
2020 CHRISTOPHER DIAZ 199.49 203.4798
2018 JOSE DIAZ-GUTIERREZ 87622.00 89374.4400
2020 JOSE DIAZ-GUTIERREZ 90287.16 92092.9032
2018 SUSAN DIERKS 121.00 123.4200
2018 LAUREL DIMASI 12302.00 12548.0400
2018 DAVID DION 87957.00 89716.1400
2020 DAVID DION 89516.50 91306.8300
2018 AARON DIPILLA 5770.00 5885.4000
2018 DEVIN DIXON 3587.00 3658.7400
2020 WAVERLY DOHERTY 1351.50 1378.5300
2020 MARY DOHRMANN 90.09 91.8918
2020 THERESA DONOHUE 1500.00 1530.0000
2020 SULLIVAN DOUGLAS 292.89 298.7478
2018 RICHARD DOWNIE 2166.00 2209.3200
2020 RICHARD DOWNIE 3820.44 3896.8488
2018 JANICE DOYAMA 14181.00 14464.6200
2020 JANICE DOYAMA 14975.12 15274.6224
2018 MARLENE DOYLE 44.00 44.8800
2020 MARLENE DOYLE 228.72 233.2944
2020 MICHAEL DOYLE 1430.14 1458.7428
2020 EMMA DRAGON 14732.46 15027.1092
2018 VANGJEL DRAGOTI 542.00 552.8400
2018 BRADLEY DRISCOLL 595.00 606.9000
2018 ELAINE DUDKIEWICZ 129.00 131.5800
2018 RICHARD DUDKIEWICZ 58871.00 60048.4200
2020 RICHARD DUDKIEWICZ 54190.57 55274.3814
2020 ELIZABETH DUFFY 87894.23 89652.1146
2020 DARCY DUMONT 5000.04 5100.0408
2018 WILLIAM DUNN 86495.00 88224.9000
2018 RYAN DWYER 3422.00 3490.4400
2018 NANCY EDDY 204.00 208.0800
2020 KATHERINE EDELL 240.32 245.1264
2018 LEE EDWARDS 259.00 264.1800
2018 ERIC EINHORN 88.00 89.7600
2018 LEE ELDER 30176.00 30779.5200
2018 ZAIM ELKALAI 2663.00 2716.2600
2020 KYLE ELLIOTT 1393.13 1420.9926
2018 NATALIE ELLIOTT 1911.00 1949.2200
2018 ERIC ENGELSON 138.00 140.7600
2020 ERIC ENGELSON 90.09 91.8918
2018 JANET ENGELSON 138.00 140.7600
2020 JANET ENGELSON 90.09 91.8918
2020 MEREDITH ENRIGHT 186.62 190.3524
2020 SOPHIA EPSTEIN 102.96 105.0192
2018 KAREN ERMAN 36326.00 37052.5200
2018 JORDAN ESIASON 1742.00 1776.8400
2018 JUSTIN ESIASON 3212.00 3276.2400
2018 SARAH ETKIN 10079.00 10280.5800
2020 TIMOTHY EVE-COWLES 3449.44 3518.4288
2018 STEPHANIE EVERETT 58436.00 59604.7200
2020 STEPHANIE EVERETT 71450.58 72879.5916
2018 THOMAS FAIR 2533.00 2583.6600
2020 THOMAS FAIR 13093.60 13355.4720
2018 MOLLY FALSETTI-YU 226.00 230.5200
2020 MOLLY FALSETTI-YU 135.92 138.6384
2018 MOLLY FARBER 73515.00 74985.3000
2020 MOLLY FARBER 80048.69 81649.6638
2018 ANABELLE FARNHAM 3251.00 3316.0200
2020 ANABELLE FARNHAM 7273.89 7419.3678
2020 ANABELLE FARNHAM 90.09 91.8918
2020 JULIA FARNHAM 2393.86 2441.7372
2020 HUMERA FASIHUDDIN 158.39 161.5578
2018 NOAH FAY 4609.00 4701.1800
2018 JULIE FEDERMAN 78023.00 79583.4600
2020 JULIE FEDERMAN 75330.05 76836.6510
2020 SERGE FEDOROVSKY 66184.28 67507.9656
2018 RICHARD FEIN 143.00 145.8600
2018 FELIPE FELICIANO 106036.00 108156.7200
2020 FELIPE FELICIANO 106668.70 108802.0740
2018 YVONNE FELICIANO 92211.00 94055.2200
2020 YVONNE FELICIANO 92213.81 94058.0862
2018 ADAM FELTMAN 59706.00 60900.1200
2020 ADAM FELTMAN 68918.27 70296.6354
2018 STEPHEN FELTOVIC 54514.00 55604.2800
2020 STEPHEN FELTOVIC 57639.52 58792.3104
2020 DAMARIS FERNANDEZ-SIERRA 725.42 739.9284
2018 EDWARD FERRY 231.00 235.6200
2018 PAMELA FIELD-SADLER 59281.00 60466.6200
2020 PAMELA FIELD-SADLER 63812.14 65088.3828
2018 JANE FINDLAY 143.00 145.8600
2020 JANE FINDLAY 141.57 144.4014
2018 LEAH FINN-ERB 740.00 754.8000
2020 JERRY FISCHER 96.53 98.4606
2018 ELIZA FITZGERALD 607.00 619.1400
2018 ROBERT FLAHERTY 73690.00 75163.8000
2020 ROBERT FLAHERTY 21940.59 22379.4018
2018 RICHARD FLEURENT 11173.00 11396.4600
2020 RICHARD FLEURENT 15799.26 16115.2452
2018 THERESA FLEURENT 71398.00 72825.9600
2020 THERESA FLEURENT 77242.63 78787.4826
2018 GARY FLYNN 80230.00 81834.6000
2020 GARY FLYNN 84535.45 86226.1590
2018 BRIAN FOLEY 55.00 56.1000
2018 BRYAN FORBES 43118.00 43980.3600
2020 BRYAN FORBES 51460.28 52489.4856
2018 MICHAEL FORCUM 41871.00 42708.4200
2018 BARBARA FORD 279.00 284.5800
2020 BARBARA FORD 170.75 174.1650
2020 DIANA FORDHAM 3842.75 3919.6050
2020 SARAH FORSAITH 21801.24 22237.2648
2018 DAVID FOSTER 109314.00 111500.2800
2018 JON FOSTER 42305.00 43151.1000
2020 JON FOSTER 53724.51 54799.0002
2018 GEORGE FOURNIER 7103.00 7245.0600
2018 LISA FOX 759.00 774.1800
2020 AVA FRADKIN 112.61 114.8622
2020 KATHARINE FRETWELL 186.62 190.3524
2020 LENORE FRIEDLANDER 102.96 105.0192
2020 ELAINE FRONHOFER 90.09 91.8918
2018 SEAN FROST 60710.00 61924.2000
2020 SEAN FROST 69361.16 70748.3832
2018 MATTHEW FRYDRYK 101893.00 103930.8600
2020 MATTHEW FRYDRYK 101439.60 103468.3920
2018 AMANDA FULLER 7244.00 7388.8800
2018 TANYA FULLER 286.00 291.7200
2020 TANYA FULLER 194.87 198.7674
2018 MARYJEAN FURNIA 29490.00 30079.8000
2018 VICTORIA GADDY 3100.00 3162.0000
2020 VICTORIA GADDY 2625.00 2677.5000
2020 CHARLES GAGNON 1079.15 1100.7330
2018 SCOTT GALLAGHER 120763.00 123178.2600
2020 SCOTT GALLAGHER 142611.97 145464.2094
2020 RYANN GALLANT 163.92 167.1984
2018 RICHARD GALLO 80.00 81.6000
2018 DAVID GANCORZ 42775.00 43630.5000
2020 DAVID GANCORZ 49204.74 50188.8348
2018 RAJU GANGHI 869.00 886.3800
2018 JENNIFER GANNETT 63522.00 64792.4400
2018 SAMUEL GARDNER 6100.00 6222.0000
2018 ANNA GARVIN 9677.00 9870.5400
2018 AMY GATES 110.00 112.2000
2018 STEPHEN GAUGHAN 122692.00 125145.8400
2020 STEPHEN GAUGHAN 157942.33 161101.1766
2020 ANA GAUTHIER 207.90 212.0580
2018 CHERYL GAUTHIER 41589.00 42420.7800
2020 CHERYL GAUTHIER 44941.75 45840.5850
2018 SCOTT GAVRON 43159.00 44022.1800
2020 SCOTT GAVRON 36448.82 37177.7964
2018 DOUGLAS GEARY 91860.00 93697.2000
2020 DOUGLAS GEARY 83344.78 85011.6756
2020 HENRY GEFFERT 2625.26 2677.7652
2020 CALEIGH GEOGHEGAN 1398.08 1426.0416
2020 DAN GEORGAKAS 1500.00 1530.0000
2018 CHERYL GEORGE 1366.00 1393.3200
2018 CYNTHIA GEORGE 236.00 240.7200
2018 DONALD GEORGE 209.00 213.1800
2018 JOHN GEORGE 5088.00 5189.7600
2018 STEPHEN GEORGE 474.00 483.4800
2020 STEPHEN GEORGE 318.24 324.6048
2018 JOSH GERBER DOLAN 2693.00 2746.8600
2018 JULIE GERSTMAN 121.00 123.4200
2020 GENNADI GERSTNER 1727.31 1761.8562
2020 DANIEL GESSEN 764.96 780.2592
2018 GEORGE GILLISPIE 80091.00 81692.8200
2020 GEORGE GILLISPIE 89015.81 90796.1262
2020 JULIEN GINSBERG PELTZ 90.09 91.8918
2018 ADELE GLADSTONE-GILBERT 107.00 109.1400
2020 ADELE GLADSTONE-GILBERT 67.57 68.9214
2018 PETE GLAZIER 12805.00 13061.1000
2018 LAUREL GLOCHESKI 179.00 182.5800
2020 LAUREL GLOCHESKI 93.31 95.1762
2018 WILLIAM GLOVER 88565.00 90336.3000
2020 WILLIAM GLOVER 97965.35 99924.6570
2018 JOAN GOLOWICH 55.00 56.1000
2018 LUIS GOMBA 6845.00 6981.9000
2020 LUIS GOMBA 612.70 624.9540
2018 CEDRIC GONNET 11737.00 11971.7400
2020 CEDRIC GONNETT 1017.80 1038.1560
2018 CHRISTOPHER GOODHIND 92683.00 94536.6600
2020 CHRISTOPHER GOODHIND 104338.97 106425.7494
2018 SUSAN GOODHIND 59090.00 60271.8000
2020 SUSAN GOODHIND 65028.41 66328.9782
2020 FRAN GOODWIN 106.18 108.3036
2020 STEPHANIE GOODWIN 910.32 928.5264
2018 DEBORAH GORDON 56847.00 57983.9400
2020 DEBORAH GORDON 63556.92 64828.0584
2018 BETH GOREN 363.00 370.2600
2020 BETH GOREN 90.09 91.8918
2020 ETHAN GORMAN 28986.40 29566.1280
2018 PATRICK GORMELY 66823.00 68159.4600
2020 PATRICK GORMELY 69465.64 70854.9528
2020 HELEN GRABEL 61.13 62.3526
2018 BENJAMIN GRAHAM 89252.00 91037.0400
2020 BENJAMIN GRAHAM 104363.74 106451.0148
2018 ANDREW GRAMIGNA 165.00 168.3000
2018 JASON GRANT 45477.00 46386.5400
2020 JASON GRANT 48051.43 49012.4586
2020 REILLY GRANT 199.49 203.4798
2018 TERRI-LYN GRANT 3795.00 3870.9000
2018 AUDREY GRAY 2992.00 3051.8400
2018 NIAMH GRAY-MULLEN 504.00 514.0800
2020 NIAMH GRAY-MULLEN 2170.94 2214.3588
2020 JULIE GRDEN 90.09 91.8918
2018 HILDA GREENBAUM 267.00 272.3400
2020 CHRISTOPHER GREENFIELD 1773.85 1809.3270
2018 LAURENE GRENIER 66.00 67.3200
2020 JUDY LYNN GRIESEMER 7500.00 7650.0000
2018 SHIRLEY GRIFFIN 231.00 235.6200
2020 SHIRLEY GRIFFIN 90.09 91.8918
2018 JOANN GRISWOLD 121.00 123.4200
2020 JOANN GRISWOLD 102.96 105.0192
2020 HEATHER GROSS 168.64 172.0128
2018 JON GROSS 261.00 266.2200
2018 RONALD GROSSLEIN 72.00 73.4400
2018 JENNIFER GUCCIONE 2459.00 2508.1800
2020 AISLINN GUINEE 1918.83 1957.2066
2018 EMILY GUISTI 1938.00 1976.7600
2018 JENNIFER GULICK 351.00 358.0200
2018 JENNIFER GUNDERSEN 140909.00 143727.1800
2018 RYAN GWYTHER 82993.00 84652.8600
2020 RYAN GWYTHER 92022.48 93862.9296
2018 DARRYL HAGAR 20237.00 20641.7400
2020 DARRYL HAGAR 22965.96 23425.2792
2018 TYLER HALLOCK 2141.00 2183.8200
2020 VIRGINIA HAMILTON 167.31 170.6562
2018 LOUISE HAMMANN 209.00 213.1800
2020 LOUISE HAMMANN 92.82 94.6764
2018 DONNA HANCOCK 99.00 100.9800
2020 DONNA HANCOCK 15539.82 15850.6164
2018 COLIN HANNAHAN 737.00 751.7400
2020 MANDI JO HANNEKE 5000.04 5100.0408
2018 SEAN HANNON 102794.00 104849.8800
2020 SEAN HANNON 114731.67 117026.3034
2018 CYNTHIA HARBESON 61306.00 62532.1200
2020 CYNTHIA HARBESON 70277.37 71682.9174
2018 MARY HARRAGHY 209.00 213.1800
2020 MARY HARRAGHY 270.27 275.6754
2018 JOSHUA HARRIS 78946.00 80524.9200
2020 JOSHUA HARRIS 89455.04 91244.1408
2020 RITA HART 1500.00 1530.0000
2018 FAIZAN HASSAN 4482.00 4571.6400
2020 FAIZAN HASSAN 4604.21 4696.2942
2020 JEFFREY HATCH 1500.00 1530.0000
2018 RALPH HATHAWAY 54511.00 55601.2200
2020 RALPH HATHAWAY 63071.19 64332.6138
2020 AARON HAYDEN 364.00 371.2800
2018 SAMUEL HEBB 104153.00 106236.0600
2018 BRADFORD HENDRICKS 9784.00 9979.6800
2018 WALTER HENRY 46581.00 47512.6200
2020 WALTER HENRY 50548.61 51559.5822
2018 CAROL HEPBURN 60520.00 61730.4000
2020 CAROL HEPBURN 64764.61 66059.9022
2018 DEBORAH HERBERT 261.00 266.2200
2020 DEBORAH HERBERT 275.73 281.2446
2018 CORRINE HERLIHY 3839.00 3915.7800
2020 EUGENE HERMAN 1500.00 1530.0000
2020 MARY HERMAN 1500.00 1530.0000
2018 JOSEPHINE HERNANDEZ 1486.00 1515.7200
2018 GEORGE HICKS 65915.00 67233.3000
2020 GEORGE HICKS-RICHARDS 74184.64 75668.3328
2018 MATTHEW HILDRETH 2640.00 2692.8000
2018 KENDALL HILL 57745.00 58899.9000
2020 OLIVIA HILLMEYER 7930.56 8089.1712
2018 LEGRAND HINES 138.00 140.7600
2020 LEAH HIRSHBERG 96.53 98.4606
2020 JESSE HLAVA 90.09 91.8918
2018 MARY HOCKEN 154.00 157.0800
2020 MARY HOCKEN 57.92 59.0784
2018 JANET HOFFMAN 245.00 249.9000
2018 KENNETH HOFFMAN 353.00 360.0600
2020 KENNETH HOFFMAN 191.24 195.0648
2018 CHRIS HOFFMANN 306.00 312.1200
2020 CHRIS HOFFMANN 389.31 397.0962
2018 PAUL HOLDEN 8043.00 8203.8600
2020 PAUL HOLDEN 11118.15 11340.5130
2018 DAVID HOLMES 6947.00 7085.9400
2020 DAVID HOLMES 5822.74 5939.1948
2018 ANNELISE HOLMI 1891.00 1928.8200
2018 DANA HOPKINS MCGILL 2788.00 2843.7600
2020 DANA HOPKINS MCGILL 5253.33 5358.3966
2020 JEANNE HORRIGAN 295.43 301.3386
2018 MARGERY HOWELL 88.00 89.7600
2020 MARY HUBBELL 90.09 91.8918
2018 GALE HUBLEY 77.00 78.5400
2018 SUSAN HUGUS 61052.00 62273.0400
2020 SUSAN HUGUS 65934.45 67253.1390
2018 REBECCA HULL 124.00 126.4800
2018 ANDREW HULSE 86247.00 87971.9400
2020 ANDREW HULSE 92243.96 94088.8392
2018 MARCUS HUMBER 96441.00 98369.8200
2020 MARCUS HUMBER 92377.35 94224.8970
2018 RALPH HURWITZ 36020.00 36740.4000
2020 RALPH HURWITZ 39209.37 39993.5574
2018 JOHN IMBIMBO 67272.00 68617.4400
2020 JOHN IMBIMBO 50422.52 51430.9704
2018 JOHN INGRAM 93421.00 95289.4200
2020 JOHN INGRAM 102722.85 104777.3070
2018 CYRUS IRANI 1447.00 1475.9400
2020 CYRUS IRANI 312.11 318.3522
2020 DARIUS IRANI 68.60 69.9720
2018 JOSEPH ISABELLE 42735.00 43589.7000
2020 JOSEPH ISABELLE 8371.66 8539.0932
2018 GLENN JACKSON 79652.00 81245.0400
2020 ERIN JACQUE 42924.91 43783.4082
2018 MICHAEL JACQUE 52892.00 53949.8400
2020 MICHAEL JACQUE 59912.93 61111.1886
2020 MARY JAFFEE 99.74 101.7348
2020 SARCENAS JEAN-PHILIPPE 1138.60 1161.3720
2020 NANCY JENAL 180.18 183.7836
2020 TAMMY JEZEK 47113.28 48055.5456
2018 BRIAN JOHNSON 132524.00 135174.4800
2020 BRIAN JOHNSON 135750.79 138465.8058
2020 BROOKE JOHNSON 39028.53 39809.1006
2018 CHRISTOPHER JOHNSON 57256.00 58401.1200
2018 MARJORIE JOHNSON 124.00 126.4800
2020 MARJORIE JOHNSON 102.96 105.0192
2020 MARK JOHNSON 270.27 275.6754
2018 JOY JOLIE 59139.00 60321.7800
2020 JOY JOLIE 65043.12 66343.9824
2018 JAMES JORDAN 79126.00 80708.5200
2020 JAMES JORDAN 80683.27 82296.9354
2020 MARION JORDAN 54084.45 55166.1390
2018 KATHRYN JULIAN 2677.00 2730.5400
2020 NYINDU KABANGU 68.60 69.9720
2018 STEVEN KACEY 183.00 186.6600
2020 STEVEN KACEY 47754.77 48709.8654
2018 MIRIAM KAPLAN 30434.00 31042.6800
2018 JULIE KARLSSON 7182.00 7325.6400
2018 ARI KASAL 79560.00 81151.2000
2020 ARI KASAL 89112.94 90895.1988
2018 MICHAEL KATZ 600.00 612.0000
2020 MICHAEL KATZ 750.00 765.0000
2018 RACHAEL KATZ 9054.00 9235.0800
2020 RACHAEL KATZ 74.60 76.0920
2018 ELIJAH KAYSER-HIRSH 149.00 151.9800
2018 MEGHAN KEAN 636.00 648.7200
2018 MARC KEENAN 3725.00 3799.5000
2020 MARC KEENAN 2278.00 2323.5600
2018 PHYLLIS KEENAN 55.00 56.1000
2020 PHYLLIS KEENAN 74.00 75.4800
2018 JANE KELLEY 267.00 272.3400
2020 JANE KELLEY 304.98 311.0796
2020 WYATT KELLMAN 90.09 91.8918
2020 BRENDAN KELLY 2156.40 2199.5280
2018 SUSAN KELLY 173.00 176.4600
2020 SUSAN KELLY 122.41 124.8582
2020 DAVID KELSEN 21497.94 21927.8988
2020 DONNA-RAE KENNEALLY 19103.10 19485.1620
2018 JOHN KENNEDY 93408.00 95276.1600
2020 JOHN KENNEDY 121002.10 123422.1420
2020 REMINGTON KEYES 90.12 91.9224
2018 JOHN KICK 95.00 96.9000
2018 THELMA KILLINGS 110.00 112.2000
2018 DAVID KING 110.00 112.2000
2020 DEVON KING 263.83 269.1066
2020 MATTHEW KING 11229.46 11454.0492
2018 SHOSHONA KING 149.00 151.9800
2020 SHOSHONA KING 209.14 213.3228
2020 ERIN KLAES 2035.30 2076.0060
2020 NOLAN KLAES 473.44 482.9088
2018 DUANE KLIMCZYK 104604.00 106696.0800
2020 DUANE KLIMCZYK 97872.68 99830.1336
2018 BRIAN KNIGHTLY 61379.00 62606.5800
2020 BRIAN KNIGHTLY 63645.04 64917.9408
2018 CHRISTINA KNIGHTLY 91312.00 93138.2400
2020 CHRISTINA KNIGHTLY 71373.52 72800.9904
2018 DAVID KNIGHTLY 116906.00 119244.1200
2020 DAVID KNIGHTLY 90392.65 92200.5030
2020 LOUIS KNOLLE 34304.01 34990.0902
2018 ERIC KNYT 4390.00 4477.8000
2020 ERIC KNYT 3866.16 3943.4832
2020 CAROL KOLENIK 117.41 119.7582
2018 MICHAEL KONETZNY 81201.00 82825.0200
2018 ELLEN KOSMER 77.00 78.5400
2020 KAREN KOWLES 1500.00 1530.0000
2018 NOAH KRAMER 4793.00 4888.8600
2020 NOAH KRAMER 1146.06 1168.9812
2018 KAY KRANICK-WEINBERG 110.00 112.2000
2020 KAY KRANICK-WEINBERG 1500.00 1530.0000
2018 GEOFFREY KRAVITZ 85334.00 87040.6800
2020 GEOFFREY KRAVITZ 14505.92 14796.0384
2018 LILIAN KRAVTIZ 110.00 112.2000
2018 ELIZABETH KROGH 236.00 240.7200
2020 ELIZABETH KROGH 182.91 186.5682
2018 CONSTANCE KRUGER 80.00 81.6000
2018 CONSTANCE KRUGER 1500.00 1530.0000
2018 MITCHELL KUC 1585.00 1616.7000
2020 MITCHELL KUC 2910.60 2968.8120
2018 DINAH KUDATSKY 121.00 123.4200
2020 DINAH KUDATSKY 102.96 105.0192
2020 OWEN KUPPERMAN 454.80 463.8960
2020 SHIRLEY KURTULUS 1500.00 1530.0000
2018 KEVIN L’ITALIEN 78418.00 79986.3600
2020 DAVID LABANC 1199.50 1223.4900
2020 CHRISTINE LABICH 212.36 216.6072
2018 ALEX LACROSSE 630.00 642.6000
2018 ADAM LADD 1857.00 1894.1400
2020 ADAM LADD 135.18 137.8836
2018 JENNIFER LAFOUNTAIN 76905.00 78443.1000
2020 JENNIFER LAFOUNTAIN 92294.23 94140.1146
2018 JOSEPH LAGASSE 82167.00 83810.3400
2020 JOSEPH LAGASSE 93079.17 94940.7534
2018 NOAH LAMB 1051.00 1072.0200
2020 NOAH LAMB 1011.88 1032.1176
2018 DERICK LAMOUREUX 414.00 422.2800
2020 DERICK LAMOUREUX 646.80 659.7360
2018 JESSICA LAMSON 33828.00 34504.5600
2020 JESSICA LAMSON 42634.38 43487.0676
2018 TODD LANG 170892.00 174309.8400
2020 TODD LANG 172626.81 176079.3462
2020 AMY LANGDON 103.95 106.0290
2018 PHELAN LAPAN 204.00 208.0800
2020 JEREMIAH LAPLANTE 60014.38 61214.6676
2020 STEPHANIE LAPLANTE 1366.83 1394.1666
2018 HENRY LAPPEN 88.00 89.7600
2018 WILLIAM LARAMEE 92001.00 93841.0200
2020 WILLIAM LARAMEE 98803.32 100779.3864
2018 CATHERINE LARSON 4959.00 5058.1800
2020 CATHERINE LARSON 1057.52 1078.6704
2018 MEHRENE LARUDEE 176.00 179.5200
2020 MEHRENE LARUDEE 102.96 105.0192
2018 ELIZABETH LASS 63641.00 64913.8200
2020 ELIZABETH LASS 801.31 817.3362
2018 BRIAN LATHAM 21400.00 21828.0000
2018 EVAN LATVALLA 4425.00 4513.5000
2020 EVAN LATVALLA 20056.51 20457.6402
2018 MARY JANE LAUS 276.00 281.5200
2020 MARY JANE LAUS 291.82 297.6564
2020 JACK LAXSON 102.96 105.0192
2018 ANASTASIA LECUIVRE 74446.00 75934.9200
2018 CAROLINE LEDERMAN 282.00 287.6400
2020 CAROLINE LEDERMAN 2233.73 2278.4046
2018 PAMELA LEDOUX 418.00 426.3600
2020 PAMELA LEDOUX 102.96 105.0192
2018 DIANNE LEDUC 9922.00 10120.4400
2020 DIANNE LEDUC 14009.48 14289.6696
2018 EMMA LEE 644.00 656.8800
2020 MICHAEL LEFLAR 109.28 111.4656
2018 PHYLLIS LEHRER 165.00 168.3000
2020 PHYLLIS LEHRER 180.18 183.7836
2018 MICHAEL LENART 6129.00 6251.5800
2020 MYRA LENBURG 93.31 95.1762
2020 SAMUEL LEONARD 5613.77 5726.0454
2018 ROBIN LEVINE 4709.00 4803.1800
2020 ROBIN LEVINE 1033.74 1054.4148
2018 JENNIFER LEWIS 55.00 56.1000
2020 KEYVIN LEWIS 21943.97 22382.8494
2020 KALSANG LHAMO 180.18 183.7836
2018 TYLER LIBONATE 1078.00 1099.5600
2020 TYLER LIBONATE 3074.67 3136.1634
2018 JUDITH LINCOLN 11108.00 11330.1600
2018 KRISTEN LINDBERG 4282.00 4367.6400
2020 KRISTEN LINDBERG 4820.58 4916.9916
2018 ELLEN LINDSEY 55.00 56.1000
2020 ELLEN LINDSEY 679.33 692.9166
2020 JOSEPH LISSECK 1500.00 1530.0000
2020 MARY LISSECK 1500.00 1530.0000
2020 KEVIN LITALIEN 84267.73 85953.0846
2018 KIM LITTMANN 60336.00 61542.7200
2020 KIM LITTMANN 65144.13 66447.0126
2018 SCOTT LIVINGSTONE 157452.00 160601.0400
2020 SCOTT LIVINGSTONE 172109.78 175551.9756
2020 KUEI LO 12703.75 12957.8250
2018 NASH LOCHNER 612.00 624.2400
2020 JOHN LOEB 180.18 183.7836
2018 CHERYL LOFLAND 67399.00 68746.9800
2020 CHERYL LOFLAND 72770.99 74226.4098
2020 ELIZABETH LOFTUS 2484.18 2533.8636
2018 GALE LONGTO 256.00 261.1200
2020 GALE LONGTO 3169.13 3232.5126
2018 KEITH LONGTO 77321.00 78867.4200
2020 KEITH LONGTO 68741.07 70115.8914
2018 JANET LOPEZ 118737.00 121111.7400
2020 JANET LOPEZ 116041.14 118361.9628
2020 HEATHER LORD 2087.65 2129.4030
2018 DAVID LOVLER 206.00 210.1200
2018 SUSAN LOWERY 132.00 134.6400
2020 SUSAN LOWERY 319.02 325.4004
2020 JOSEPH LUGO 12.87 13.1274
2018 CHRISTINA LUPICA 3911.00 3989.2200
2018 CHARLES LYDON 6573.00 6704.4600
2020 AMY MEI LYNCH 96.53 98.4606
2020 JAILENE LYNCH 48655.75 49628.8650
2020 ELIZABETH MABEE 90.09 91.8918
2018 JAMES MACALLISTER 110.00 112.2000
2020 ALEXANDER MACDONALD 889.94 907.7388
2018 RICHARD MACLEAN 118096.00 120457.9200
2020 RICHARD MACLEAN 116277.22 118602.7644
2018 HELEN MACMELLON 58715.00 59889.3000
2020 HELEN MACMELLON 67339.71 68686.5042
2020 DELANEY MACPHETRES 1070.34 1091.7468
2018 JOHN MAGARIAN 165.00 168.3000
2020 JOHN MAGARIAN 102.96 105.0192
2018 ILANA MAHLER 3839.00 3915.7800
2020 JANE MAHMOODI 1500.00 1530.0000
2018 JACQUELINE MAIDANA 50.00 51.0000
2020 JACQUELINE MAIDANA 90.09 91.8918
2018 CADEN MAINZER 169.00 172.3800
2020 CADEN MAINZER 66.30 67.6260
2018 LEWIS MAINZER 165.00 168.3000
2020 LEWIS MAINZER 64.35 65.6370
2020 JANE MAIRS 93.31 95.1762
2018 MARY MALINOWSKI 88.00 89.7600
2018 NATHANIEL MALLOY 77517.00 79067.3400
2020 NATHANIEL MALLOY 90546.73 92357.6646
2018 SUSAN MALONE 60303.00 61509.0600
2020 SUSAN MALONE 76475.66 78005.1732
2020 AIDAN MALONEY 445.11 454.0122
2020 PATRICK MANEY 550.72 561.7344
2020 SEAN MANGANO 95457.04 97366.1808
2018 DEBORAH MANN 88.00 89.7600
2018 ARLENE MANNING 146.00 148.9200
2020 ARLENE MANNING 90.09 91.8918
2018 ANNA MARCZUK 187.00 190.7400
2018 GRAZYNA MARCZUK 47733.00 48687.6600
2020 GRAZYNA MARCZUK 56638.95 57771.7290
2018 DANIELLE MARIE 1623.00 1655.4600
2018 CLAUDIA MARINERO 4813.00 4909.2600
2020 EMMA MARKHAM 183.40 187.0680
2018 SHIRLEY MARKHAM 116.00 118.3200
2020 SHIRLEY MARKHAM 253.68 258.7536
2018 JANET MARQUARDT 204.00 208.0800
2020 JANET MARQUARDT 70.79 72.2058
2020 ANN MARIE MARQUIS 12443.06 12691.9212
2018 SARAH MARSHALL 160.00 163.2000
2020 SARAH MARSHALL 308.98 315.1596
2018 PAUL MARSHUK 1480.00 1509.6000
2018 MARCIN MARSZALEK 15226.00 15530.5200
2020 MARCIN MARSZALEK 15011.16 15311.3832
2018 DAVID MARTELL 96580.00 98511.6000
2020 DAVID MARTELL 110595.84 112807.7568
2020 MARTHA MARTENEY 175.36 178.8672
2020 AMBER MARTIN 56203.21 57327.2742
2020 SHAVENA MARTIN 63503.48 64773.5496
2020 TAYLOR MARTIN-GRAHAM 322.93 329.3886
2018 VALDISHKA MARTINEZ 2060.00 2101.2000
2018 TYLER MARTINS 9156.00 9339.1200
2020 TYLER MARTINS 101617.30 103649.6460
2018 PATRICIA MASCIS 257.00 262.1400
2020 PATRICIA MASCIS 112.71 114.9642
2020 JOSEPH MASPO 5429.82 5538.4164
2020 BETSY MATHEWS 293.69 299.5638
2018 ELIZABETH MATTHEWS 4397.00 4484.9400
2020 ELIZABETH MATTHEWS 8196.17 8360.0934
2018 MICHELE MATUSZKO 63213.00 64477.2600
2020 MICHELE MATUSZKO 68509.21 69879.3942
2018 JULIA MAWSON 401.00 409.0200
2020 JULIA MAWSON 95.62 97.5324
2018 ROBERT MCALLISTER 512.00 522.2400
2018 STEVEN MCCARTHY 45758.00 46673.1600
2020 STEVEN MCCARTHY 60295.04 61500.9408
2018 LAURIE MCCOMB 85068.00 86769.3600
2020 LAURIE MCCOMB 92916.98 94775.3196
2020 LINDSEY MCCONNELL 2022.83 2063.2866
2020 WILLIAM MCCUTCHEON 31.75 32.3850
2020 ALLISON MCDONALD 1999.98 2039.9796
2018 JOHN MCDONALD 2538.00 2588.7600
2020 JOHN MCDONALD 261.39 266.6178
2018 CLAIRE MCGINNIS 43478.00 44347.5600
2018 BARBARA MCGLYNN 3255.00 3320.1000
2020 BARBARA MCGLYNN 4295.22 4381.1244
2018 JOSEPH MCGLYNN 6976.00 7115.5200
2018 ERIC MCGRATH 94.00 95.8800
2018 VIANKA MCKENZIE 2150.00 2193.0000
2020 VIANKA MCKENZIE 3290.19 3355.9938
2020 ELIZABETH MCLAUGHLIN 180.18 183.7836
2020 MADELEINE MCLAUGHLIN 5262.52 5367.7704
2018 ALLISON MCNAMARA 4349.00 4435.9800
2020 PATRICIA MCPEAK-LAROCCA 193.05 196.9110
2018 MICHAEL MEADE 132.00 134.6400
2020 MICHAEL MEADE 99.74 101.7348
2018 MICHAEL MEAGHER 231.00 235.6200
2020 MICHAEL MEAGHER 238.10 242.8620
2018 JORDAN MEIER 333.00 339.6600
2020 LAURA MELBIN 90.09 91.8918
2018 JOEL MELENDEZ 5106.00 5208.1200
2020 JOEL MELENDEZ 4114.38 4196.6676
2020 DANIEL MENARD 49403.20 50391.2640
2018 WILLIAM MENARD 112110.00 114352.2000
2020 WILLIAM MENARD 112471.56 114720.9912
2018 MIRA MENON 55.00 56.1000
2018 JOSEPH MERCIER 73986.00 75465.7200
2020 JOSEPH MERCIER 84977.56 86677.1112
2018 DOROTHY MERRIAM 77.00 78.5400
2020 DOROTHY MERRIAM 186.62 190.3524
2018 WILLIAM MESSER 2330.00 2376.6000
2018 ADAM METZGER 42270.00 43115.4000
2020 ADAM METZGER 1547.51 1578.4602
2018 ERIKA MIJLIN 132.00 134.6400
2018 AUSTIN MILES 1040.00 1060.8000
2020 AUSTIN MILES 1677.43 1710.9786
2018 JOHN MILLER 3140.00 3202.8000
2020 JOHN MILLER 41292.31 42118.1562
2018 SUSAN MILLIKEN-ROGERS 77.00 78.5400
2018 ANGELA MILLS 26733.00 27267.6600
2020 ANGELA MILLS 58950.39 60129.3978
2020 SHALINI BAHL MILNE 5000.04 5100.0408
2018 DAVID MINER 110974.00 113193.4800
2020 DAVID MINER 99210.99 101195.2098
2018 JOSEPH MIRAGLIA 57645.00 58797.9000
2018 JOANNE MISIASZEK 66232.00 67556.6400
2020 JOANNE MISIASZEK 78055.52 79616.6304
2020 BRIAN MITCHELL 11608.27 11840.4354
2020 CHLOE MITCHELL 32.18 32.8236
2018 LUC MITCHELL 3187.00 3250.7400
2018 EDWARD MONE 507.00 517.1400
2020 EDWARD MONE 301.67 307.7034
2020 TODD MONGEON 646.80 659.7360
2018 MILAGROS MONTEMAYOR 33.00 33.6600
2020 KAYDEN MOORE 148.01 150.9702
2018 GUILFORD MOORING 126203.00 128727.0600
2020 GUILFORD MOORING 143171.29 146034.7158
2018 ALBERTO MORALES-FERNANDEZ 3191.00 3254.8200
2020 ALBERTO MORALES-FERNANDEZ 1923.71 1962.1842
2018 LUCAS MORALES-FERNANDEZ 550.00 561.0000
2020 SHARON MORGAN 112.71 114.9642
2018 ROBERT MORRA 102333.00 104379.6600
2020 ROBERT MORRA 115846.68 118163.6136
2018 BRIAN MORRIS 67391.00 68738.8200
2020 BRIAN MORRIS 73721.53 75195.9606
2018 RICHARD MORSE 732.00 746.6400
2020 RICHARD MORSE 498.59 508.5618
2020 ALICIA MORTON 1500.00 1530.0000
2020 THOMAS MORTON 1500.00 1530.0000
2020 ANNABEL MOTT 714.30 728.5860
2020 STANLEY MOULTON 102.96 105.0192
2018 RAMZI MOUSHABECK 3949.00 4027.9800
2020 ISAIAH MOYSTON 1735.64 1770.3528
2018 JENNIFER MOYSTON 52852.00 53909.0400
2020 JENNIFER MOYSTON 62398.95 63646.9290
2020 JENNIFER MULLINS 67109.74 68451.9348
2018 MARISA MULVEY 329.00 335.5800
2020 MARISA MULVEY 112.88 115.1376
2018 MICHAEL MURPHY 58.00 59.1600
2018 NANCY MURPHY 57486.00 58635.7200
2020 NANCY MURPHY 63215.10 64479.4020
2020 SHAWN MURPHY 814.03 830.3106
2020 LINDA MURRAY 115.19 117.4938
2018 RACHEL MUSTIN 66.00 67.3200
2018 ALINE MWEZE 1495.00 1524.9000
2018 NATALIE NADEAU 704.00 718.0800
2020 NATALIE NADEAU 95.25 97.1550
2020 KATE NADOLSKI 2984.90 3044.5980
2018 KASEY NAGLE 88710.00 90484.2000
2020 KASEY NAGLE 95659.11 97572.2922
2018 MARGARET NARTOWICZ 32193.00 32836.8600
2018 OLIVIER NDIKUMANA 5386.00 5493.7200
2020 OLIVIER NDIKUMANA 533.48 544.1496
2018 TIMOTHY NEALE 341.00 347.8200
2020 TIMOTHY NEALE 594.22 606.1044
2018 KATHLEEN NELSON 13678.00 13951.5600
2018 WALTER NELSON 143734.00 146608.6800
2020 WALTER NELSON 160049.71 163250.7042
2020 DEBORAH NEUBAUER 70.79 72.2058
2018 LINDA NEWCOMB 8643.00 8815.8600
2020 LINDA NEWCOMB 2940.92 2999.7384
2020 KATHERINE NEWELL 80867.12 82484.4624
2020 ANDREA NEWMAN 106.18 108.3036
2020 CATHERINE NEWMAN 148.01 150.9702
2020 KATHERINE NEWMAN 20049.16 20450.1432
2018 JUSTIN NIGRELLI 739.00 753.7800
2018 MARTIN NORDEN 143.00 145.8600
2020 MARTIN NORDEN 304.99 311.0898
2020 ELIJAH NORMAN 6388.46 6516.2292
2018 BENEDIKT NUESSLEIN 1439.00 1467.7800
2018 CHRISTOPH NUESSLEIN 2458.00 2507.1600
2020 CHRISTOPH NUESSLEIN 3506.42 3576.5484
2020 STEFAN NUESSLEIN 1788.07 1823.8314
2020 AMY NUSSBAUM 215.58 219.8916
2018 JOHN NYARKO 311.00 317.2200
2018 SAMSON NYMPHA 1172.00 1195.4400
2018 CLAUDIA O’BRIEN 397.00 404.9400
2020 CLAUDIA O’BRIEN 167.34 170.6868
2018 CODY O’BRIEN 24823.00 25319.4600
2018 KELLY O’BRIEN 9449.00 9637.9800
2020 ROBERT O’BRIEN 35818.44 36534.8088
2020 MARY O’CONNOR 121.23 123.6546
2018 ATHENA O’KEEFFE 45741.00 46655.8200
2020 ALANA O’LOUGHLIN 1023.09 1043.5518
2020 JOAN O’MEARA 83.66 85.3332
2018 LIAM O’SULLIVAN 1009.00 1029.1800
2020 LIAM O’SULLIVAN 1672.58 1706.0316
2020 MARY OBRIEN 551.70 562.7340
2020 MARY BETH OGULEWICZ 82973.77 84633.2454
2020 ATHENA OKEEFFE 63673.53 64947.0006
2018 KELLY OLANYK 74162.00 75645.2400
2020 KELLY OLANYK 74988.92 76488.6984
2018 PATRICIA OLANYK 5810.00 5926.2000
2020 PATRICIA OLANYK 6665.59 6798.9018
2018 EMILY OLES 49951.00 50950.0200
2020 EMILY OLES 4001.63 4081.6626
2018 GABRIEL OLIVA RAPOPORT 212.00 216.2400
2018 JEFFERY OLMSTEAD 129836.00 132432.7200
2020 JEFFERY OLMSTEAD 139859.63 142656.8226
2020 LISA ORAM 90.09 91.8918
2018 ROBERT ORRELL 72492.00 73941.8400
2020 ROBERT ORRELL 47449.52 48398.5104
2018 ERIC OSMAN 149.00 151.9800
2018 STEPHANIE OSMAN 182.00 185.6400
2018 MIGUEL OTERO 46870.00 47807.4000
2020 MIGUEL OTERO 52963.50 54022.7700
2020 COURTNEY OUSLEY 4468.45 4557.8190
2018 LANCE OVERBY 152.00 155.0400
2020 LANCE OVERBY 249.90 254.8980
2018 GABRIEL OWEN 15211.00 15515.2200
2020 CYNTHIA OWENS 180.18 183.7836
2018 NANCY PAGANO 93318.00 95184.3600
2018 ELAINE PALMER 22.00 22.4400
2018 LINDSAY PALMER 12750.00 13005.0000
2020 LINDSAY PALMER 12089.54 12331.3308
2020 DOROTHY PAM 5000.04 5100.0408
2018 JOSE PAREDES 39917.00 40715.3400
2020 JOSE PAREDES 51191.85 52215.6870
2018 JANICE PARKER-RILEY 157.00 160.1400
2020 JANICE PARKER-RILEY 1500.00 1530.0000
2020 JANICE PARKER-RILEY 64.35 65.6370
2018 TAMBETSU PARKS 229.00 233.5800
2020 TAMBETSU PARKS 406.39 414.5178
2018 JEFFREY PARR 88760.00 90535.2000
2020 JEFFREY PARR 89840.77 91637.5854
2018 JOHN PASTORELLO 4611.00 4703.2200
2020 JOHN PASTORELLO 7763.64 7918.9128
2018 MARILYN PATTON 55.00 56.1000
2018 LUDMILLA PAVLOVA-GILLHAM 149.00 151.9800
2020 LUDMILLA PAVLOVA-GILLHAM 341.50 348.3300
2020 JUSTIN PAYAN 102.96 105.0192
2018 TYLER PEASE 33425.00 34093.5000
2020 TYLER PEASE 43349.97 44216.9694
2020 DENIS PELLETIER 71661.92 73095.1584
2020 COOPER PENNIMAN 135.03 137.7306
2018 MICHAEL PEREZ 55122.00 56224.4400
2020 MICHAEL PEREZ 60617.05 61829.3910
2018 MELISSA PEROT 44.00 44.8800
2018 JANICE PETERMAN 766.00 781.3200
2020 JANICE PETERMAN 713.90 728.1780
2018 TERRY PETERS 521.00 531.4200
2020 TERRY PETERS 413.22 421.4844
2018 MARY PETERSON 39.00 39.7800
2020 JAMES PEWTHERER 102.97 105.0294
2018 BRIDGETTE PHILIBERT 2819.00 2875.3800
2020 BRIDGETTE PHILIBERT 2756.31 2811.4362
2018 SUSAN PHILLIPS 121.00 123.4200
2020 SUSAN PHILLIPS 1500.00 1530.0000
2020 JONATHAN PICKERING 3031.91 3092.5482
2018 PHYLLIS PIKE 369.00 376.3800
2018 BARBARA PISTRANG 61.00 62.2200
2020 BARBARA PISTRANG 119.34 121.7268
2020 JAMES PISTRANG 383.31 390.9762
2018 PENNINGTON PITTS 382.00 389.6400
2018 CAROLYN PLATT 74909.00 76407.1800
2020 CAROLYN PLATT 81089.36 82711.1472
2018 LILY PLOTKIN 1861.00 1898.2200
2018 BROOKE PODSIADLO 2495.00 2544.9000
2020 BROOKE PODSIADLO 1866.38 1903.7076
2018 ANTOINETTE POLI 165.00 168.3000
2018 CORRADO POLI 154.00 157.0800
2018 ANTONIO POLINO 2062.00 2103.2400
2020 ANTONIO POLINO 3128.67 3191.2434
2018 MAUREEN POLLOCK 54108.00 55190.1600
2020 MAUREEN POLLOCK 66516.11 67846.4322
2018 CHRISTOPHER PRICE 43389.00 44256.7800
2020 CHRISTOPHER PRICE 49528.40 50518.9680
2018 SARAH PRICE 146.00 148.9200
2018 JESSICA PRONOVOST 68527.00 69897.5400
2020 JESSICA PRONOVOST 74030.96 75511.5792
2018 DEBRA PUPPEL 41313.00 42139.2600
2018 NUJHAT PURNATA 3396.00 3463.9200
2018 JOAN PYFROM 44835.00 45731.7000
2020 JOAN PYFROM 49312.65 50298.9030
2018 MARIA RACCA 82671.00 84324.4200
2018 DEBORAH RADWAY 104450.00 106539.0000
2018 JUDITH RAIFFA 55.00 56.1000
2020 ANDREA RAMIREZ FRANCO 225.30 229.8060
2018 MATTHEW RANDALL 3823.00 3899.4600
2020 LOUIS RANDAZZO 948.86 967.8372
2020 KAREN RANEN 6832.98 6969.6396
2018 STEPHEN RANSFORD 143.00 145.8600
2020 STEPHEN RANSFORD 1500.00 1530.0000
2020 STEPHEN RANSFORD 90.09 91.8918
2018 ROSEMARY RATH 110.00 112.2000
2018 JANICE RATNER 332.00 338.6400
2020 VIOLET RAWLINGS 154.44 157.5288
2020 EMILY REARDON 2034.09 2074.7718
2020 EMILY REARDON 48.26 49.2252
2018 JAMIE REARDON 120386.00 122793.7200
2020 JAMIE REARDON 138785.54 141561.2508
2018 PATRICIA RECTOR 143.00 145.8600
2020 PATRICIA RECTOR 1500.00 1530.0000
2020 PATRICIA RECTOR 90.09 91.8918
2018 WILLIAM REDDER 135.00 137.7000
2018 MELINDA REID 113.00 115.2600
2020 MELINDA REID 79.56 81.1512
2018 ROSALIND REID 154.00 157.0800
2020 DEVIN REILLY 630.84 643.4568
2020 TRISTAN RENTSCH 173.75 177.2250
2020 CATHERINE REPETTI 199.49 203.4798
2018 BRETT REPKE 521.00 531.4200
2020 NORYN RESNICK 189.83 193.6266
2018 CRISTINA REY PIRIZ 2818.00 2874.3600
2018 JENNIFER REYNOLDS 48255.00 49220.1000
2020 JENNIFER REYNOLDS 62717.89 63972.2478
2018 PENNY RHODES 132.00 134.6400
2020 IAN RHODEWALT 157.66 160.8132
2018 PAUL RHUDE 290.00 295.8000
2018 DALE RICE 132.00 134.6400
2020 DALE RICE 193.05 196.9110
2018 CAITLYN RICHMOND 174.00 177.4800
2018 MELISSA RICKER-HORTON 58652.00 59825.0400
2020 MELISSA RICKER-HORTON 64565.44 65856.7488
2018 TATE RIETKIRK 325.00 331.5000
2020 TATE RIETKIRK 1689.02 1722.8004
2018 MAEVE RIORDAN 421.00 429.4200
2020 MIGUEL RIVERA 5945.75 6064.6650
2020 EVELYN RIVERA-RIFFENBURG 53975.46 55054.9692
2018 WILLIE ROBERTS 3801.00 3877.0200
2018 MICHAYLA ROBERTSON-PINE 149.00 151.9800
2020 LUCY ROBINSON 90.09 91.8918
2018 JOSEPH ROCASAH 1031.00 1051.6200
2018 ISAIAH RODRIGUEZ 858.00 875.1600
2018 SARAH ROE 92177.00 94020.5400
2020 SARAH ROE 89558.69 91349.8638
2020 ELLA ROMANELLI 257.40 262.5480
2018 ALYSIA ROMANI 1847.00 1883.9400
2018 COLTON ROOT 127.00 129.5400
2020 AALIYAH ROSA 6226.94 6351.4788
2018 PAUL ROSA 3293.00 3358.8600
2020 PAUL ROSA 1208.35 1232.5170
2020 AIDEN ROSENBLATT 424.77 433.2654
2018 SARAH ROSENBLUM 1584.00 1615.6800
2020 EVAN ROSS 5000.04 5100.0408
2018 JUAN ROSS-PERKINS 946.00 964.9200
2020 JUAN ROSS-PERKINS 628.58 641.1516
2020 ANNA ROSSI 1500.00 1530.0000
2020 ANNA ROSSI 77.22 78.7644
2018 SETH ROTHBERG 53439.00 54507.7800
2020 SETH ROTHBERG 58342.49 59509.3398
2018 ELIZABETH ROWELL 455.00 464.1000
2020 ELIZABETH ROWELL 112.71 114.9642
2018 DONNA ROY 71350.00 72777.0000
2018 MICHAEL ROY 79765.00 81360.3000
2020 MICHAEL ROY 87299.34 89045.3268
2018 SUSAN ROZNOY 110.00 112.2000
2020 SUSAN ROZNOY 90.09 91.8918
2020 SOLOMON RUESCHEMEYER-BAILEY 180.18 183.7836
2018 JASON RUSHFORD 74785.00 76280.7000
2020 JASON RUSHFORD 80673.91 82287.3882
2018 AMY RUSIECKI 95381.00 97288.6200
2020 AMY RUSIECKI 105054.22 107155.3044
2020 GEORGE RYAN 5000.04 5100.0408
2018 JANET RYAN 58929.00 60107.5800
2020 JANET RYAN 63499.83 64769.8266
2018 RONALD RYCZEK 95114.00 97016.2800
2020 RONALD RYCZEK 91654.67 93487.7634
2020 JAYMES SALTIS 54870.81 55968.2262
2020 BARBARA SALTZ 1500.00 1530.0000
2020 HENRY SAMMIS 196.27 200.1954
2018 MANUEL SANTIAGO 129.00 131.5800
2020 MANUEL SANTIAGO 291.73 297.5646
2018 MARY SANTIAGO 77.00 78.5400
2020 MIGUEL SANTIAGO 46083.44 47005.1088
2018 THOMAS SARNA 47071.00 48012.4200
2020 THOMAS SARNA 53869.70 54947.0940
2020 JOHN SARNACKI 51556.16 52587.2832
2020 ANITA SARRO 225.23 229.7346
2018 JUSTIN SATKOWSKI 74704.00 76198.0800
2020 JUSTIN SATKOWSKI 87633.08 89385.7416
2020 RYAN SAUNDERS 1319.58 1345.9716
2018 MICHAEL SAWICKI 59003.00 60183.0600
2020 MICHAEL SAWICKI 76966.31 78505.6362
2020 AMANDA SAYEGH 2811.80 2868.0360
2020 ALANNAH SCARDINO 1470.69 1500.1038
2020 APRIL SCHILLING 3152.66 3215.7132
2020 JENNA SCHILLING 3523.94 3594.4188
2018 SOPHIE SCHILLING 2498.00 2547.9600
2020 SOPHIE SCHILLING 2879.62 2937.2124
2020 CATHY SCHOEN 5000.04 5100.0408
2018 MADELINE SCHORSCH 66.00 67.3200
2020 STEPHEN SCHREIBER 5000.04 5100.0408
2020 NANCY SCHROEDER 9605.95 9798.0690
2020 TRACEY SCHRYBA 12409.98 12658.1796
2018 MARCIE SCLOVE 268.00 273.3600
2018 LUKE SEDOR PROTTI 2147.00 2189.9400
2018 PHILLIP SENA 1076.00 1097.5200
2018 ERIN SERAFIN 1247.00 1271.9400
2020 SUDHA SETTY 90.09 91.8918
2020 MOHAN SETTY-CHARITY 90.09 91.8918
2020 BRANDON SEVIGNE 4430.90 4519.5180
2020 AMANDA SHALLCROSS 90.09 91.8918
2020 EMILY SHALLCROSS 90.09 91.8918
2018 JOHN SHANNON 39642.00 40434.8400
2020 JOHN SHANNON 57145.28 58288.1856
2020 MARY SHARMA 180.18 183.7836
2018 MONIKA SHARMA 3358.00 3425.1600
2018 SHARON SHARRY 100940.00 102958.8000
2020 SHARON SHARRY 111600.51 113832.5202
2018 MARY SHAUGHAN 194.00 197.8800
2020 MARY SHAUGHAN 90.09 91.8918
2020 MARY ELLEN SHAUGHAN 1500.00 1530.0000
2018 JEFFREY SHEA 2243.00 2287.8600
2018 CHRISTINA SHEN 71060.00 72481.2000
2020 CHRISTINA SHEN 80363.57 81970.8414
2018 ANNICK SHERIDAN 3639.00 3711.7800
2020 JACQUELINE SHERIDAN 96.53 98.4606
2018 PAUL SHERRY 2621.00 2673.4200
2020 BRADLEY SHERWOOD 714.29 728.5758
2018 CHRISTINE SHERWOOD 8008.00 8168.1600
2020 CHRISTINE SHERWOOD 6155.03 6278.1306
2018 NANCEE SHIFFLETT 3983.00 4062.6600
2018 DEVIN SHULAR 55.00 56.1000
2018 ELWOOD SHULAR 35325.00 36031.5000
2020 ELWOOD SHULAR 45422.98 46331.4396
2020 STUART SHULMAN 365.82 373.1364
2018 LAUREN SIMPSON 521.00 531.4200
2018 JAYANT SINGH 83712.00 85386.2400
2020 JAYANT SINGH 93815.68 95691.9936
2018 CHRISTOPHER SKEELS 39961.00 40760.2200
2020 CHRISTOPHER SKEELS 47461.45 48410.6790
2018 JASON SKEELS 91991.00 93830.8200
2020 JASON SKEELS 99653.93 101647.0086
2020 BENJAMIN SKELTON 1644.17 1677.0534
2020 KAREN SKOLFIELD 186.62 190.3524
2018 DAVID SKRIBISKI 50830.00 51846.6000
2020 DAVID SKRIBISKI 54591.76 55683.5952
2018 LISA SLOCUM 43308.00 44174.1600
2020 LISA SLOCUM 16440.83 16769.6466
2020 ELI SLOVIN 1051.40 1072.4280
2018 CALVIN SMITH 1719.00 1753.3800
2020 CALVIN SMITH 977.23 996.7746
2020 CHELSEA SMITH 1288.42 1314.1884
2018 EDMUND SMITH 69765.00 71160.3000
2020 EDMUND SMITH 77940.65 79499.4630
2018 JAMES SMITH 10468.00 10677.3600
2020 JAMES SMITH 4614.49 4706.7798
2020 KATHLEEN SMITH 90.09 91.8918
2020 RENATA SMITH 180.18 183.7836
2018 ALAN SNOW 83512.00 85182.2400
2020 ALAN SNOW 87216.27 88960.5954
2018 JAMES SNOWDEN 87645.00 89397.9000
2018 JOHN SOBIESKI 3213.00 3277.2600
2020 JOHN SOBIESKI 6899.20 7037.1840
2018 CONNOR SORMANTI 862.00 879.2400
2020 CONNOR SORMANTI 953.42 972.4884
2020 MICHAEL SOSA 884.75 902.4450
2018 SCOTT SOVERINO 86744.00 88478.8800
2020 SCOTT SOVERINO 89972.32 91771.7664
2018 DONALD SPEARANCE 102.00 104.0400
2018 PATRICK SPEDDING 52481.00 53530.6200
2018 MARJORIE SPIEGEL 59042.00 60222.8400
2020 MARJORIE SPIEGEL 17270.20 17615.6040
2020 LUCIA SPIRO 96.53 98.4606
2020 KERRY SPITZER 1500.00 1530.0000
2018 MATTHEW SPOSITO 83940.00 85618.8000
2020 MATTHEW SPOSITO 84714.15 86408.4330
2020 AMY SPRINGER 221.96 226.3992
2018 MICHAEL ST CYR 26.00 26.5200
2018 JOSEPH STAFFORD 44697.00 45590.9400
2020 JOSEPH STAFFORD 45347.43 46254.3786
2018 ADRIAN STAIR 206.00 210.1200
2020 ADRIAN STAIR 90.09 91.8918
2020 ANNA STANFORTH 180.18 183.7836
2020 CILO STEARNS 90.09 91.8918
2018 ALLISON STEELE 242.00 246.8400
2020 DIANA STEIN 99.74 101.7348
2018 ANDREW STEINBERG 1500.00 1530.0000
2020 ANDREW STEINBERG 5000.04 5100.0408
2018 VALERIE STEINBERG 4382.00 4469.6400
2020 VALERIE STEINBERG 3670.52 3743.9304
2018 JOSHUA STEININGER 69569.00 70960.3800
2020 JOSHUA STEININGER 78055.25 79616.3550
2018 JULIE STEPANEK 6225.00 6349.5000
2020 JULIE STEPANEK 1687.72 1721.4744
2018 BEVERLY STEVENS 281.00 286.6200
2020 BEVERLY STEVENS 276.71 282.2442
2018 JOEL STEVENS 281.00 286.6200
2020 JOEL STEVENS 276.71 282.2442
2018 SHIRLEY STEVENS 162.00 165.2400
2020 SHIRLEY STEVENS 1500.00 1530.0000
2018 CHARLES STEVENSON 55.00 56.1000
2020 ZELDA STEWART 1043.90 1064.7780
2020 MYRIAM STIVEN 1962.00 2001.2400
2018 CORRINA STOKES 8309.00 8475.1800
2018 LACE STOKES 42223.00 43067.4600
2020 LACE STOKES 46349.97 47276.9694
2018 SHAUNA STRATTONMEIER 14798.00 15093.9600
2018 MARY STREETER 143.00 145.8600
2020 MARY STREETER 109.40 111.5880
2018 LINDSAY STROLE 64039.00 65319.7800
2018 LINDSAY STROMGREN 125258.00 127763.1600
2020 LINDSAY STROMGREN 133711.45 136385.6790
2020 SARAH STROUD 9898.14 10096.1028
2020 ANTRIESE SUAREZ 162.91 166.1682
2018 AMBER SULLIVAN 52346.00 53392.9200
2020 DELANEY SULLIVAN 687.17 700.9134
2020 DELANEY SULLIVAN 90.09 91.8918
2018 JALEN SULLIVAN 1693.00 1726.8600
2020 JALEN SULLIVAN 2174.72 2218.2144
2018 BRIANNA SUNRYD 66109.00 67431.1800
2020 BRIANNA SUNRYD 73282.01 74747.6502
2020 SARAH SWARTZ 5000.04 5100.0408
2020 HANNAH SWEET 39155.65 39938.7630
2020 HAROLD SWIFT 4919.84 5018.2368
2018 TINA SWIFT 143.00 145.8600
2020 CELESTE SZE 1500.00 1530.0000
2018 MICHAEL SZEWCZYNSKI 86835.00 88571.7000
2020 MICHAEL SZEWCZYNSKI 94391.18 96279.0036
2018 MICHAEL SZWED 61098.00 62319.9600
2020 MICHAEL SZWED 10120.59 10323.0018
2018 J TAN 195.00 198.9000
2020 J TAN 289.58 295.3716
2020 MARTHA TAUNTON 180.18 183.7836
2020 AMBER TAYLOR 63351.75 64618.7850
2018 STEVE TELEGA 70598.00 72009.9600
2020 STEVE TELEGA 75281.08 76786.7016
2018 JULIAN TEMMERMAN 412.00 420.2400
2018 ADRIENNE TERRIZZI 193.00 196.8600
2020 ADRIENNE TERRIZZI 144.73 147.6246
2018 KENTON THARP 157.00 160.1400
2018 PAUL THEILMAN 98508.00 100478.1600
2020 PAUL THEILMAN 110398.71 112606.6842
2018 HELEN THELEN 140.00 142.8000
2018 MAGGIE THIBAULT 4545.00 4635.9000
2020 MAGGIE THIBAULT 5969.27 6088.6554
2018 REGAN THIBAULT 3477.00 3546.5400
2020 REGAN THIBAULT 3438.02 3506.7804
2018 ALICIA THIBEAULT 1224.00 1248.4800
2018 NICHOLAS THOMANN 1518.00 1548.3600
2018 LIAM THOMAS 213.00 217.2600
2018 JON THOMPSON 71750.00 73185.0000
2020 JON THOMPSON 79942.43 81541.2786
2020 LYNNE THOMPSON 90.09 91.8918
2020 MARK THOMPSON 7169.22 7312.6044
2018 ROBIN THOMPSON 198.00 201.9600
2020 ROBIN THOMPSON 109.40 111.5880
2018 THEO THOMPSON 704.00 718.0800
2018 WILLIAM THOMPSON 165.00 168.3000
2020 WILLIAM THOMPSON 64.35 65.6370
2020 NIELS THOMSEN 23674.88 24148.3776
2020 KIRSTEN THOMSON 180.18 183.7836
2018 SCOTT THURSTON 85410.00 87118.2000
2020 SCOTT THURSTON 87408.42 89156.5884
2020 PERSIS TICKNOR-SWANSON 40.98 41.7996
2018 JANICE TIDLUND 57631.00 58783.6200
2020 JANICE TIDLUND 60350.17 61557.1734
2020 PIERRE TILUS 391.04 398.8608
2018 GABRIEL TING 126526.00 129056.5200
2020 GABRIEL TING 143698.34 146572.3068
2018 BRANDON TOPONCE 64945.00 66243.9000
2020 ALEJANDRO TORO-RODRIGUEZ 38605.44 39377.5488
2018 AMINA TORRES 4021.00 4101.4200
2020 RAYMOND TORRES 36010.24 36730.4448
2018 SUSAN TRACY 77.00 78.5400
2018 PETER TREYZ 1735.00 1769.7000
2018 VICTORIA TRINGALE 898.00 915.9600
2018 MATTHEW TRINGALI 872.00 889.4400
2020 PETER TRIPP 189.83 193.6266
2018 DAVID TROMPKE 2433.00 2481.6600
2018 DYLAN TUNNELL 68184.00 69547.6800
2020 DYLAN TUNNELL 81296.24 82922.1648
2018 LORI TURATI 58980.00 60159.6000
2020 LORI TURATI 7434.62 7583.3124
2018 JACQUELINE TUTHILL 132.00 134.6400
2020 JACQUELINE TUTHILL 64.35 65.6370
2018 SUSAN TYLER 314.00 320.2800
2020 SUSAN TYLER 90.09 91.8918
2020 JOHN URSCHEL 90.09 91.8918
2018 RYAN VAIL 1437.00 1465.7400
2020 SEAN VALENTINE 102.96 105.0192
2018 THOMAS VALLE 83596.00 85267.9200
2020 THOMAS VALLE 93042.86 94903.7172
2020 KAYLAN VALOVCIN 87175.36 88918.8672
2018 SARA VAN STEENBURGH 242.00 246.8400
2020 SARA VAN STEENBURGH 92.82 94.6764
2018 JOHN VANASSE 1545.00 1575.9000
2020 DENNIS VANDAL 1500.00 1530.0000
2018 JO-ANNE VANIN 187.00 190.7400
2020 JO-ANNE VANIN 436.03 444.7506
2018 NATHANIEL VANNOY 52444.00 53492.8800
2020 NATHANIEL VANNOY 58234.08 59398.7616
2018 FRANCES VANTREESE 127.00 129.5400
2020 FRANCES VANTREESE 90.09 91.8918
2018 KAYLAN VAZQUEZ 73731.00 75205.6200
2018 MARK VECCHIARELLI 61220.00 62444.4000
2020 ANDREW VECCHIO 34861.35 35558.5770
2020 ANDREW VECCHIO 505.40 515.5080
2018 LANDON VENEY 85.00 86.7000
2020 LANDON VENEY 258.94 264.1188
2018 CATHERINE VERTS 47748.00 48702.9600
2020 CATHERINE VERTS 46485.22 47414.9244
2020 STEPHANIE VIGNONE 7769.52 7924.9104
2020 JOSHUA VILLANUEVA 68.60 69.9720
2018 MICHAEL VISNIEWSKI 6055.00 6176.1000
2020 MICHAEL VISNIEWSKI 4422.51 4510.9602
2018 HELEN VIVIAN 99.00 100.9800
2020 KAYLEIGH VOCCA 2620.99 2673.4098
2018 ABBE VREDENBURG 253.00 258.0600
2020 ABBE VREDENBURG 285.87 291.5874
2020 KATELYN WALAS 495.66 505.5732
2020 NICHOLAS WALAS 57638.15 58790.9130
2018 JAMES WALD 1500.00 1530.0000
2018 MICHAEL WARNER 74341.00 75827.8200
2020 MICHAEL WARNER 81934.60 83573.2920
2018 CASSIE WARREN 2820.00 2876.4000
2018 DAVID WASKIEWICZ 76976.00 78515.5200
2020 DAVID WASKIEWICZ 80919.08 82537.4616
2018 THOMAS WATERMAN 53924.00 55002.4800
2020 THOMAS WATERMAN 57528.05 58678.6110
2020 STEPHEN WATSON 60.08 61.2816
2020 GABRIELA WEAVER 215.57 219.8814
2018 RODNEY WEBER 17905.00 18263.1000
2020 RODNEY WEBER 10933.22 11151.8844
2020 RAFAEL WEIDENFELD 80.44 82.0488
2018 MARY WEIDENSAUL 4364.00 4451.2800
2020 MARY WEIDENSAUL 4738.28 4833.0456
2020 MAYA WEILERSTEIN 6046.45 6167.3790
2018 ROBERT WEINER 88.00 89.7600
2020 ROBERT WEINER 38.61 39.3822
2018 JEANNE WEINRAUB 88.00 89.7600
2018 LYNNE WEINTRAUB 34412.00 35100.2400
2020 LYNNE WEINTRAUB 37800.88 38556.8976
2020 DANO WEISBORD 102.96 105.0192
2018 DANIEL WELCH 97030.00 98970.6000
2020 DANIEL WELCH 103487.72 105557.4744
2018 LAURA WENK 132.00 134.6400
2018 LINDA WENTWORTH 62083.00 63324.6600
2020 LINDA WENTWORTH 71287.24 72712.9848
2018 CHRISTINE WESTERHOLM 55.00 56.1000
2018 CHARLOTTE WESTHEAD 294.00 299.8800
2020 CHARLOTTE WESTHEAD 99.74 101.7348
2018 WILLIE WHEELER 972.00 991.4400
2020 WILLIE WHEELER 574.48 585.9696
2018 KATHERINE WHITCOMB 10555.00 10766.1000
2020 KATHERINE WHITCOMB 12595.95 12847.8690
2018 CHRISTINE WHITE 57486.00 58635.7200
2020 CHRISTINE WHITE 63270.26 64535.6652
2018 LISA WHITE 13463.00 13732.2600
2018 JACKSON WHITLOCK 553.00 564.0600
2020 PHYLLIS WHITNEY 1500.00 1530.0000
2018 MARYANNA WHITTEMORE 187.00 190.7400
2020 MARYANNA WHITTEMORE 185.64 189.3528
2018 CLIFFORD WILKINSON 6300.00 6426.0000
2020 CLIFFORD WILKINSON 5085.66 5187.3732
2020 CRYSTAL WILLARD 46705.31 47639.4162
2020 CAROLINE WILLIAMS 89.20 90.9840
2018 DAVID WILLIAMS 179.00 182.5800
2018 JANET WILLIAMS 204.00 208.0800
2020 ROBERT WILLIAMS 5928.89 6047.4678
2018 ROY WILLIAMS 168.00 171.3600
2018 DAKOTA WILLIS 41922.00 42760.4400
2020 DAKOTA WILLIS 51694.06 52727.9412
2018 RODNEY WILLIS 78591.00 80162.8200
2020 RODNEY WILLIS 82957.78 84616.9356
2018 ELIZABETH WILLSON 34407.00 35095.1400
2020 ELIZABETH WILLSON 77487.88 79037.6376
2018 NANCY WILSON 784.00 799.6800
2020 NANCY WILSON 860.58 877.7916
2020 HENDER WINER 189.83 193.6266
2018 DAWN WINKLER 6284.00 6409.6800
2020 DAWN WINKLER 7314.80 7461.0960
2020 SHEILA WINTER 93.31 95.1762
2018 DEBRA WIRTH 413.00 421.2600
2020 DEBRA WIRTH 193.05 196.9110
2018 GREGORY WISE 113131.00 115393.6200
2020 GREGORY WISE 121546.06 123976.9812
2020 MORGAN WITHERELL 199.30 203.2860
2018 JEFFREY WOJCIK 3084.00 3145.6800
2018 ALBERT WOODHULL 261.00 266.2200
2020 ALBERT WOODHULL 109.28 111.4656
2020 DONNA WOODS 79879.17 81476.7534
2020 KRISTIN WOODS 103.11 105.1722
2020 JOSEPH WORTHLEY 51081.00 52102.6200
2018 WILLIAM WORTHLEY 80627.00 82239.5400
2020 WILLIAM WORTHLEY 85582.77 87294.4254
2018 MARK WOYNAR 76363.00 77890.2600
2020 MARK WOYNAR 78980.26 80559.8652
2020 CAMERON WRIGHT 2031.47 2072.0994
2020 ELISE WRIGHT 1336.84 1363.5768
2020 NATHANIEL WRIGHT 3831.60 3908.2320
2018 THERESA WRIGHT 154.00 157.0800
2020 THERESA WRIGHT 102.96 105.0192
2020 GORDON WYSE 99.74 101.7348
2018 ZIYANG XU 1062.00 1083.2400
2020 TERRENCE YATES 4316.05 4402.3710
2018 ERIC YELLE 8132.00 8294.6400
2020 GERALD YELLE 193.06 196.9212
2018 MATTHEW YODER 54473.00 55562.4600
2020 MATTHEW YODER 58227.18 59391.7236
2020 NOR YOUNG 1989.05 2028.8310
2018 NORA YOUNG 1964.00 2003.2800
2018 RONALD YOUNG 131647.00 134279.9400
2020 RONALD YOUNG 138974.80 141754.2960
2020 SASHA YOUNG 5439.10 5547.8820
2018 RICHARD YOURGA 971.00 990.4200
2018 TRACY ZAFIAN 338.00 344.7600
2020 TRACY ZAFIAN 355.17 362.2734
2018 ROBERT ZAKAITIS 58784.00 59959.6800
2020 ROBERT ZAKAITIS 61629.73 62862.3246
2018 CORY ZENG 90.00 91.8000
2020 CORY ZENG 7676.16 7829.6832
2020 FAYE ZHANG 77.22 78.7644
2018 HANBING ZHANG 2453.00 2502.0600
2018 CHUNYU ZHOU 26503.00 27033.0600
2020 CHUNYU ZHOU 43068.42 43929.7884
2018 JANE ZIFF 143.00 145.8600
2018 ALEXANDRIA ZIOMEK 674.00 687.4800
2018 MATTHEW ZIOMEK 132249.00 134893.9800
2018 MATTHEW ZIOMEK 103612.00 105684.2400
2020 MATTHEW ZIOMEK 146471.42 149400.8484
2020 MATTHEW ZIOMEK 107948.39 110107.3578
2018 KAY ZLOGAR 26488.00 27017.7600
2020 KAY ZLOGAR 27620.68 28173.0936
2020 GEOFFREY ZUCKER 140.02 142.8204

You can always a select() step at the end to make it easier to see the changes (old value vs. the new one).

You can also combine mutate() with other functions to do more advanced analysis. For example, here’s how we might calculate a 2% increase for each department’s 2020 personnel budgets:

salaries %>%
  filter(year == 2020) %>%
  group_by(department) %>%
  summarize(total_wages = sum(gross_wages)) %>%
  mutate(increased_total_wages=total_wages*1.02)
department total_wages increased_total_wages
Accounting 522074.13 532515.61
Amherst Recreation 677209.44 690753.63
Animal Control 64764.61 66059.90
Assessor 179961.45 183560.68
Cherry Hill Golf Course 15547.71 15858.66
Collectors 406429.27 414557.86
Conservation 388677.25 396450.79
Dispatch 840254.71 857059.80
Facilities/Maintenance 420992.75 429412.60
Fire 4603893.90 4695971.78
Information Technology 545780.28 556695.89
Inspections Services 813326.17 829592.69
Jones Library 1787241.92 1822986.76
Parking Enforcement 96938.12 98876.88
Planning 427755.51 436310.62
Police 5085051.48 5186752.51
Public Health 175109.71 178611.90
Public Works 4338482.07 4425251.71
Senior Center 329477.54 336067.09
Town Clerk’s 252432.05 257480.69
Town Council 142493.92 145343.80
Town Manager’s Office 508185.71 518349.42

pivot_longer() and pivot_wider()

Data frames can come in two different formats: long and wide.

Given the same dataset, long format means you have fewer variables but more rows. Wide format means you have more variables but fewer rows.

This is important because some operations in R are more easily completed using wide data, and others using long data. This will also be the case with other software, as we’ll see when we export data from R to an interactive data visualization tool later in the book. Thus, we sometimes need to change the format.

Consider our current dataset:

salaries %>%
  head(10)
year last_name first_name gross_wages department
2020 AARONSON JEREMY 252.71 Fire
2018 ABDEL-MAKSOUD ALI 9878.00 Amherst Recreation
2020 ABDEL-MAKSOUD AMMAR 1433.96 Amherst Recreation
2018 ABELLI NICOLE 45931.00 Amherst Recreation
2020 ABELLI NICOLE 57203.87 Amherst Recreation
2020 ABRAMSON ANDREW 81.96 Town Clerk’s
2018 ADAIR DIANA 102.00 Town Clerk’s
2018 ADELSBEGER EMILY 359.00 Amherst Recreation
2020 AHO PATRICIA 180.18 Town Clerk’s
2018 AHRENS ELIZA 14023.00 Jones Library

Our dataset is in long format because we may have two observations (rows) for the same person, with each observation representing that person in a different point in time (different year).

Going from long to wide

If we want to convert that dataset from long to wide format, we would use the pivot_wider() function.

This function takes three key arguments: (1) id_cols, which covers the variable(s) that identify what makes an observation unique in our dataset; (2) names_from, which covers the variable(s) containing the information used to name our new variables (i.e., give column names); and (3) values_from, which covers the variable(s) containing the information used to add values to each entry with the corresponding column.

To help illustrate this, let’s just look at a small segment of our data:

salaries %>%
  filter(first_name=="PAUL" & last_name=="BOCKELMAN")
year last_name first_name gross_wages department
2018 BOCKELMAN PAUL 171504.0 Town Manager’s Office
2020 BOCKELMAN PAUL 193575.7 Town Manager’s Office

The id_cols are the variables (columns) that stay the same for each observation we want to treat as a unique unit (single row). In this case, we want our unique entries to be identified through the combination of first_name and last_name.

What makes our dataset long (repeated rows for unique individuals) is the year variable. The names_from variable thus refers to the year. This will then create two new columns (in addition to columns kept through id_cols) based on the two year values. The addition of new columns, such that we only have one row per individual, is what will make our new dataset wide.

Finally, the other variable that changes from row to row is the salary, which corresponds to the salary on a given year. We thus specify that as our values_from variable.

So, let’s put all of those arguments together as part of a pivot_wider() call:

salaries %>%
  filter(first_name=="PAUL" & last_name=="BOCKELMAN") %>%
  pivot_wider(id_cols=c("last_name", "first_name"), names_from="year", values_from="gross_wages")
last_name first_name 2018 2020
BOCKELMAN PAUL 171504 193575.7

I can apply that transformation to the entire dataset by dropping the filter() step. However, some rows will have a value for the newly created variable, 2020, and NA (missing data) for 2018 (and vice versa). That’s because our original (long) dataset didn’t have data for some individuals at one of those two points in time.

Going from wide to long

If we want to convert a dataset from wide to long format, we would use the pivot_longer() function.

This function also needs three key arguments: (1) cols, which covers the variable(s) that can be grouped into a single variable; (2) names_to, which covers the name you want to assign to the variable containing the previous column names; and (3) values_to, which covers the name you want to assign to the variable containing the values under the previous columns.

To illustrate that, let’s create a salaries_wide data frame using the earlier code, and then look up one of its employees once again.

salaries_wide <- salaries %>%
  pivot_wider(id_cols=c("last_name", "first_name", "department"), names_from="year", values_from="gross_wages")

salaries_wide %>%
  filter(first_name=="PAUL" & last_name=="BOCKELMAN")
last_name first_name department 2020 2018
BOCKELMAN PAUL Town Manager’s Office 193575.7 171504

We had to add the department to my id_cols argument because we had at least one person who worked in multiple departments within the same year. In doing so, we run the risk of now having two entries for a single person and year combination. This might be fine, but we could also aggregate all of the salaries beforehand, ignoring the departmental affiliation, if we want the most accurate sum for those wages.

The cols are the variables (columns) that contain the information we want to group under a single variable. In this case, that’s the 2018 and 2017 variables. (Note that those variable names are enclosed in backticks. That’s because R might think of them as numbers, and not variable names, without the backticks.)

We will assign them back to a column called year, which is the label we can assign to names_to.

Finally, we will name the variable containing the associated value for each variation of the year wages.

Here’s how we would translate all of that into arguments for our pivot_longer() function, once again looking at a single employee for the sake of simplicity.

salaries_wide %>%
  filter(first_name=="PAUL" & last_name=="BOCKELMAN") %>%
  pivot_longer(cols=c("2020", "2018"), names_to="year", values_to="gross_wages")
last_name first_name department year gross_wages
BOCKELMAN PAUL Town Manager’s Office 2020 193575.7
BOCKELMAN PAUL Town Manager’s Office 2018 171504.0

I can apply the transformation to the entire dataset by dropping the filter() statement. This will give us more observations (rows) than we had with the original dataset. That’s because it added rows even when one of our columns had had an NA value (which our original dataset didn’t have, hence the missing data now).

We could easily get rid of those NA values if we wanted by appending the values_drop_na=TRUE argument to the pivot_longer() function.

Adding ggplot() aesthetics

While we don’t need to make our plots appealing during the exploratory phase, there are some aesthetics that can still help us interpret the data correctly. It is also useful to begin practicing these functions for when it is time to produce good-looking visualizations. I’ll first describe the functions and then show them in examples below.

Also, do note that ggplot() likes data frames to be in long format.

Grouping information

You can provide different kinds of groupings based on a variable by entering that aesthetic as an argument within the aes() function when creating the ggplot() (alongside x and y aesthetics, for example).

There are different kinds of aesthetics you can use for this.

  • If you want to simply group values (e.g., treat multiple observations as being part of a single group), you can use the group argument.

  • If you want to color each grouping in a different color (e.g., have each department be a different color), you can use the color argument.

  • If you want to use different shapes as the signifier, use the shape argument.

  • If you want the size (weight) of a geom to be based on a variable, you can use the size argument.

For example, here’s how we might color a line graph based on the department being shown:

salaries %>%
  filter(department %in% c("Fire", "Police", "Town Manager's Office")) %>%
  group_by(year, department) %>%
  summarize(total_wages=sum(gross_wages)) %>%
  ggplot(aes(x=year, y=total_wages, color=department)) +
    geom_point() +
    geom_line()

Using the color argument to color-code points and lines.

The %in% operator allows us to quickly list different “OR” Boolean conditions. Put another way, if the value in the department variable appears in that vector of three department names, then it should be included in our dataset.

Reordering categorical information

Sometimes, you’ll want to reorder categorical information to get it to show a certain way (e.g., longest bars on top, legend in alphabetical order). A good function to do that is the fct_reorder() function, which should be applied at the time of aesthetic mapping.

This function takes two arguments: (1) the variable containing the values for the axis and (2) the variable containing the values you want to sort by.

For example, this is how I might re-order a column plot so that the first bar is the one with the highest total_wages value and the last bar is the one with the lowest value:

salaries %>%
  filter(year == 2020 & department %in% c("Fire", "Police", "Town Manager's Office")) %>%
  group_by(department) %>%
  summarize(total_wages=sum(gross_wages)) %>%
  ggplot(aes(x=fct_reorder(department, desc(total_wages)), y=total_wages)) +
    geom_col()

Using the fct_reorder() function to change the order of the bars based on a variable

Expanding the scale

By default, ggplot() will scale axes to the minimum and maximum values. The expand_limits() function allows us to quickly expand the axes beyond those values by applying it as an additional layer.

This function only requires one argument: the axis you want to modify, and what the new limit should be (e.g., expand_limits(y=0)).

If you want to specify a range, use c(lowest_value, highest_value). You can change the limits for two axes at once (e.g., y=0, x=c(10, 15))).

Here’s how we might expand the Y axis in our previous bar chart to go up by an additional 1,000,000 units:

salaries %>%
  filter(year == 2020 & department %in% c("Fire", "Police", "Town Manager's Office")) %>%
  group_by(department) %>%
  summarize(total_wages=sum(gross_wages)) %>%
  ggplot(aes(x=fct_reorder(department, -total_wages), y=total_wages)) +
    geom_col() +
    expand_limits(y=6000000)

Using the expand_limits() function to increase the range of the Y axis

Adding additional breaks

If you have continuous variables (e.g., numbers), you can add more tick marks to your chart by using scale_y_continuous() (for the Y axis, and x for the X axis) and apply the argument breaks=seq(from, to, by).

For example, if I want tick marks from 0 to 6,000,000, with a different tick every 1,000,000 units, I would could pair this with the seq() function like this:

salaries %>%
  filter(year == 2020 & department %in% c("Fire", "Police", "Town Manager's Office")) %>%
  group_by(department) %>%
  summarize(total_wages=sum(gross_wages)) %>%
  ggplot(aes(x=fct_reorder(department, -total_wages), y=total_wages)) +
    geom_col() +
    expand_limits(y=6000000) +
    scale_y_continuous(breaks=seq(0, 6000000, 1000000))

Using the scale_y_continuous() function to add more tick marks on our Y axis

I could also apply the limits argument to scale_y_continuous, which does the same thing as expand_limits(). Put another way, I could delete that previous line of code by adding this single argument.

Adding labels to my axes

By default, ggplot() puts the variable name as the label for each axis. If you want something that’s easier to read, you can specify it using the labs() function and adding the arguments x and y.

For example, here is how we would label the X axis as Department and the Y axis as Total Wages (in $).

salaries %>%
  filter(year == 2020 & department %in% c("Fire", "Police", "Town Manager's Office")) %>%
  group_by(department) %>%
  summarize(total_wages=sum(gross_wages)) %>%
  ggplot(aes(x=fct_reorder(department, -total_wages), y=total_wages)) +
    geom_col() +
    scale_y_continuous(breaks=seq(0, 6000000, 1000000), limits=c(0, 6000000)) +
    labs(x="Department", y="Total Wages (in $)")

Using the labs() function to add more readable labels to our axes

We could also do that for our Y axis by appending the name argument to the scale_y_continuous() function.

Showing multiple charts in one figure

You can create a grid of similar charts that vary based on some variable by using the facet_wrap() function.

This function requires a single argument: the variable(s) used to set up the grid (i.e., what variable should differentiate each cell within the grid).

For example, here’s how I could create a separate column plot for each of the two years in our dataset:

salaries %>%
  filter(department %in% c("Fire", "Police", "Town Manager's Office")) %>%
  group_by(year, department) %>%
  summarize(total_wages=sum(gross_wages)) %>%
  ggplot(aes(x=fct_reorder(department, -total_wages), y=total_wages)) +
    geom_col() +
    scale_y_continuous(breaks=seq(0, 6000000, 1000000), limits=c(0, 6000000)) +
    labs(x="Department", y="Total Wages (in $)") +
    facet_wrap(~year)

Using the facet_wrap() function to create like charts side by side

Notice that facet_wrap() uses a tilde (~) before the variable. In R convention, the tilde stands for ‘by’. So we are saying, create subplots by (based on) the year variable.

Theming the plot

We can also add a number of theming options by applying the theme() function to a new layer. That function accepts arguments to change the size of all text elements in the plot (text), the size of specific textual elements (axis.text.x), the position of a legend (legend.position), the background color (panel.background), and a litany of other visual settings.

For example, if I want to rotate the labels on my X axis by 45 degrees (to get rid of overlapping text), I could use the theme() option to style my plot’s axis.text.x attribute, like so:

salaries %>%
  filter(department %in% c("Fire", "Police", "Town Manager's Office")) %>%
  group_by(year, department) %>%
  summarize(total_wages=sum(gross_wages)) %>%
  ggplot(aes(x=fct_reorder(department, -total_wages), y=total_wages)) +
    geom_col() +
    scale_y_continuous(breaks=seq(0, 6000000, 1000000), limits=c(0, 6000000)) +
    labs(x="Department", y="Total Wages (in $)") +
    facet_wrap(~year) +
    theme(axis.text.x=element_text(angle=45, hjust=1))

image

The hjust argument keeps the labels from hugging the bottom of my X axis too tightly.

Other aesthetics

We are only scratching the surface of ggplot’s abilities, and we will cover them in greater detail later in the semester. If you are curious and wish to add even more aesthetics, check out the ggplot2 reference page.