Last issue

Included this week:

  • CPI
  • Household Finances
  • House Prices: New vs Secondhand

Inflation

CPI

See below, CPI is the top panel and percentage change year on year by Commodity Group makes up the panels.

# Plot
## CPM01
CPM01_1.18_LABS <- CPM01_1.18 %>%
  filter(value > 2)

Fig_ALL.18 <- CPM01_1.18 %>%
  ggplot(aes(x=Date,y=value,group=Commodity.Group))+
  geom_hline(yintercept = 2, linetype="dashed",alpha=0.6)+
  geom_col(aes(fill=colourcol),alpha=0.7)+
  scale_fill_manual(values=c("#CC0000","#1b5545"))+
  theme_bw()+
  theme(legend.position = "none")+
  ylab("%")+xlab(NULL)+
  ggtitle("Consumer Price Index - Year on Year")+
  geom_text(data=CPM01_1.18_LABS,aes(label = value,
                              vjust= ifelse(value >=0,0.25,0.5),
                              hjust= ifelse(value >=0,1,-0.25)),size = 3,angle = 90)
# Plot
## CPM01
Fig_CG.18 <- CPM01_2.18 %>%
  ggplot(aes(x=Date,y=value,group=Commodity.Group))+
  geom_hline(yintercept = 2, linetype="dashed",alpha=0.6)+
  geom_col(aes(fill=colourcol),alpha=0.7)+
  scale_fill_manual(values=c("#CC0000","#1b5545"))+
  theme_bw()+
  theme(legend.position = "none")+
  ylab("%")+xlab(NULL)+
  geom_text_repel(aes(label=value),size=2.5,max.overlaps = 6,alpha=0.7)+
  facet_wrap(~Commodity.Group,ncol=2)

Fig_ALL.18 + Fig_CG.18 + plot_layout(nrow=2,heights = c(1,5))

Contribution to Inflation

# Plot
## CPM11
CPM11_1.12M_Max <- CPM11_1.12M %>%
  group_by(COICOP.Group) %>%
  slice(which.max(Date))
CPM11_1.12M_Max$lab <- paste(CPM11_1.12M_Max$Month, ":", CPM11_1.12M_Max$value)

CPM11_1.12M %>%
  ggplot(aes(x=Date,y=value,group=COICOP.Group,colour=COICOP.Group))+
  geom_hline(yintercept = 2, linetype="dashed",alpha=0.2)+
  geom_hline(yintercept = 0, alpha=0.2)+
  geom_line()+
  theme_bw()+
  theme(legend.position = "none")+
  ylab("%")+xlab(NULL)+
  ggtitle("Contribution to Inflation - Year on Year")+
  geom_text(data=CPM11_1.12M_Max,aes(label=lab,y=-3),hjust="right",size=3,fontface="bold",alpha=0.6)+
  facet_wrap(~COICOP.Group,ncol=3)

Household Finaces

Disposable Income

###### Plot
ISQ04.TDI_Max <- ISQ04.TDI %>%
  group_by(Statistic) %>%
  slice(which.max(Year_Q))

ISQ04.TDI %>%
  ggplot(aes(x=Year_Q,y=value,group=Statistic,colour=Statistic))+
  geom_line()+
  geom_text_repel(aes(label=value),alpha=0.6,colour="black",max.overlaps = 5)+
  geom_text(data=ISQ04.TDI_Max,aes(label=lab,y=11000),hjust="right",size=3,fontface="bold",alpha=0.6)+
  theme_bw()+
  ggtitle("Household Total Disposable Income - Ireland")+
  labs(subtitle="ISQ04")+
  ylab("euro million")+
  theme(legend.position="bottom")+
  facet_wrap(~Statistic,nrow=2)

Consumption Expenditure

###### Plot
ISQ04.P31_Max <- ISQ04.P31 %>%
  group_by(Statistic) %>%
  slice(which.max(Year_Q))

ISQ04.P31 %>%
  ggplot(aes(x=Year_Q,y=value,group=Statistic,colour=Statistic))+
  geom_line()+
  geom_text_repel(aes(label=value),alpha=0.6,colour="black",max.overlaps = 5)+
  geom_text(data=ISQ04.P31_Max,aes(label=lab,y=11000),hjust="right",size=3,fontface="bold",alpha=0.6)+
  theme_bw()+
  ggtitle("Household Individual Consumption - Ireland")+
  labs(subtitle="ISQ04")+
  ylab("euro million")+
  theme(legend.position="bottom")+
  facet_wrap(~Statistic,nrow=2)

Savings Ratio

ISQ04.SR_Max <- ISQ04.SR %>%
  group_by(Statistic) %>%
  slice(which.max(Year_Q))

ISQ04.SR %>%
  ggplot(aes(x=Year_Q,y=value,group=Statistic,colour=Statistic))+
  geom_line()+
  geom_hline(yintercept=0,linetype="dotted",alpha=0.6)+
  geom_text_repel(aes(label=value),alpha=0.6,colour="black",max.overlaps = 5)+
  geom_text(data=ISQ04.SR_Max,aes(label=lab,y=-5),hjust="right",size=3,fontface="bold",alpha=0.6)+
  theme_bw()+
  ggtitle("Household Savings Rate - Ireland")+
  labs(subtitle="ISQ04")+
  ylab("%")+
  theme(legend.position="bottom")+
  facet_wrap(~Statistic,nrow=2)

Housing

House Price Index (RPPI)

setwd("/Users/charten/OneDrive - Glenveagh Properties/Research & Development/1. Analysis/")
GEO_Merge <- readxl::read_xlsx(path="C:\\Users\\charten\\OneDrive - Glenveagh Properties\\Research & Development\\1. Analysis\\HPM04_GEO.xlsx",sheet = 1)
shp <- sf::read_sf("Constituency_Boundaries_Ungeneralised___OSi_National_Electoral_Boundaries___2017.shp")

HPM09 <- cso_get_data("HPM09")
HPM09_long <- HPM09 %>%
  pivot_longer(!1:2, names_to = "year_month")
rm(HPM09)
HPM09 <- HPM09_long
rm(HPM09_long)

HPM09$Month <- as.Date(paste(HPM09$year_month, "01", sep = "-"), "%YM%m-%d")
HPM09$Year <- year(HPM09$Month)
HPM04 <- cso_get_data("HPM04")
HPM04_long <- HPM04 %>%
  pivot_longer(!1:5, names_to = "year_month")
rm(HPM04)
HPM04 <- HPM04_long
rm(HPM04_long)
### Date transformation
HPM04$Year <-substr(HPM04$year_month,1,4)
HPM04$Month <- sub(".* ", "", HPM04$year_month)
HPM04$Month_NR <- as.integer(factor(HPM04$Month, levels=month.name))
HPM04$Date <- as.yearmon(paste(HPM04$Year, HPM04$Month_NR), "%Y %m")
HPM04_join <- full_join(HPM04, GEO_Merge, by = "Eircode.Output")
HPM04 <- HPM04_join
rm(HPM04_join)
HPM09$Year <-substr(HPM09$year_month,1,4)
HPM09$Month <- sub(".* ", "", HPM09$year_month)
HPM09$Month_NR <- as.integer(factor(HPM09$Month, levels=month.name))
HPM09$Date <- as.yearmon(paste(HPM09$Year, HPM09$Month_NR), "%Y %m")

HPM09_1 <- HPM09 %>%
  filter(Statistic == "Residential Property Price Index")%>%
  filter(Type.of.Residential.Property == "National - all residential properties")

HPM09_2 <- HPM09 %>%
  filter(Statistic == "Percentage Change over 12 months for Residential Property Price Index")%>%
  filter(Type.of.Residential.Property == "National - all residential properties")

RPPI_tail_2 <- tail(HPM09_2,1)
RPPI_tail_2_lag <-head(tail(HPM09_2,2),1)
RRPI_Line_1 <- ggplot(data=HPM09_1, aes(x=Date, y=value, group = Type.of.Residential.Property))+
  geom_line(linejoin="mitre",size = 1.25, linetype = 1,alpha = 0.5, colour="#1b5545")+
  labs(title = "Residential Property Price Index" ,
       y="2015 = 100",
       x="Month")+
  geom_text_repel(aes(label=value),data = HPM09_1, size = 3)+
  theme_bw()+
  theme(legend.position = "bottom")+theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))

HPM09_1_T12 <- tail(HPM09_1,12)
RRPI_Line_2 <- ggplot(data=HPM09_1_T12, aes(x=Date, y=value, group = Type.of.Residential.Property))+
  geom_line(linejoin="mitre",size = 1.25, linetype = 1,alpha = 0.5, colour="#1b5545")+
  labs(title = "Residential Property Price Index" ,
       subtitle = "12 Month Series",
       y="2015 = 100",
       x="Month")+
  geom_text(aes(label=value),vjust= 1.5, hjust = 0, size=3)+
  theme_bw()+
  theme(legend.position = "bottom")+theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))

RRPI_Line_1+RRPI_Line_2+plot_layout(ncol = 2)

HPM09_2_T24 <- tail(HPM09_2,24)
colour <- ifelse(HPM09_2_T24$value < 0,"#CC0000","#1b5545")
RPPI_Bar_2 <- ggplot(data=HPM09_2_T24, aes(x=Date, y=value, group = Type.of.Residential.Property))+
  geom_col(alpha = 0.5, colour="#373634", fill = colour)+
  labs(title = "Year on Year Percentage Change for Residential Property Price Index" ,
       subtitle = "24 Month Series",
       y="Percentage change",
       x="Month")+
  geom_text(aes(label=value),vjust= 1.5, size=3)+
  theme_bw()+
  theme(legend.position = "bottom")+

rm(HPM09)

The national house price inflation for is 12.2%. This represents a -1.1 change from which was 13.3%.

Prices: 12 Month Rolling Average

# Rolling 12 Month Market-based Household Purchases of Residential Dwellings

HPM08 <- cso_get_data("HPM08")

HPM08 <- HPM08 %>%
  pivot_longer(!1:5, names_to = "year_month")
HPM08$Year <-substr(HPM08$year_month,1,4)
HPM08$Month <- sub(".* ", "", HPM08$year_month)
HPM08$Month_NR <- as.integer(factor(HPM08$Month, levels=month.name))
HPM08$Date <- as.yearmon(paste(HPM08$Year, HPM08$Month_NR), "%Y %m")

HPM08$value = as.numeric(HPM08$value)
HPM08$value <- comma(HPM08$value,big.mark = ",")
HPM08$lab <- paste(HPM08$Month,":",round(HPM08$value,digits=0))
HPM08$value_short <- round((HPM08$value/1000),digits=1)
# Mean
## Subset

HPM08_1 <- HPM08 %>%
  filter(Statistic=="Moving 12 Month Mean Sale Price")

### Take the Executions & All Buyer Types, remove All Dwelling Statuses

HPM08_1 <- HPM08_1 %>%
  filter(Type.of.Buyer=="All Buyer Types") %>%
  filter(Stamp.Duty.Event=="Executions") %>%
  filter(Dwelling.Status!="All Dwelling Statuses")

### Split by all and Eircode Output Areas

HPM08_1.ALL <- HPM08_1 %>%
  filter(Eircode.Output=="All")

HPM08_1.ALL_Max <- HPM08_1.ALL %>%
  group_by(Dwelling.Status) %>%
  slice(which.max(Date))

HPM08_1.EOA <- HPM08_1 %>%
  filter(Eircode.Output!="All")

HPM08_1.EOA <- HPM08_1.EOA %>%                            # Add lagged column
  group_by(Eircode.Output,Dwelling.Status) %>%
  dplyr::mutate(lag12 = dplyr::lag(value, n = 12, default = NA)) %>% 
  as.data.frame()

HPM08_1.EOA$Diffpc <- ((HPM08_1.EOA$value-HPM08_1.EOA$lag12)/HPM08_1.EOA$lag12)*100

GEO_Merge <- readxl::read_xlsx(path="C:\\Users\\charten\\OneDrive - Glenveagh Properties\\Research & Development\\1. Analysis\\HPM04_GEO.xlsx",sheet = 1)
HPM08_1.EOA <- full_join(HPM08_1.EOA, GEO_Merge, by = "Eircode.Output")

SUM_HPM08_1.EOA <-HPM08_1.EOA %>%
  group_by(Seat_Tag, Dwelling.Status, Date)%>% 
  summarise(value = mean(value,na.rm=TRUE))
  
SUM_HPM08_1.EOA <- SUM_HPM08_1.EOA %>%                            # Add lagged column
  group_by(Seat_Tag,Dwelling.Status) %>%
  dplyr::mutate(lag12 = dplyr::lag(value, n = 12, default = NA)) %>% 
  as.data.frame()

SUM_HPM08_1.EOA$Diffpc <- ((SUM_HPM08_1.EOA$value-SUM_HPM08_1.EOA$lag12)/SUM_HPM08_1.EOA$lag12)*100

HPM08_1.EOA_Max <- HPM08_1.EOA %>%
  group_by(Eircode.Output,Dwelling.Status) %>%
  slice(which.max(Date))

SUM_HPM08_1.EOA_Max <- SUM_HPM08_1.EOA %>%
  group_by(Seat_Tag,Dwelling.Status) %>%
  slice(which.max(Date))

# Plot
HPM08_1.ALL %>%
  ggplot(aes(x=Date,y=value,group=Dwelling.Status,colour=Dwelling.Status))+
  geom_line(size=1.25,alpha=0.7)+
  theme_bw()+
  theme(legend.position = "bottom")+
  ylab("euro")+xlab(NULL)+
  ggtitle("Market-based Household Purchases")+
  labs(subtitle="Mean Rolling 12 Month") +
  geom_text_repel(aes(label=value_short),alpha=0.6,size=2.75)+
  geom_text(data=HPM08_1.ALL_Max,aes(label=lab),colour="black",hjust="right",vjust=1,size=3,fontface="bold",alpha=0.6)

A chart for each Eircode Output Area can be seen in the Appendix below.

12 Month Variation

The latest values for these can be seen in the scroll box below. Also included is the lagged value, the rolling average for the 12 month period prior. The variation for each can be seen in the right most column.

Table <- HPM08_1.EOA_Max %>%
  select(2,3,6,7,14,15,23)
Table <- Table[,c(2,7,1,3,4,5,6)]
  
Table %>%
  kbl(caption = "Eircode Output Areas")%>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = T)%>%
  scroll_box(width = "800px", height = "300px") 
Eircode Output Areas
Eircode.Output Constituency Dwelling.Status year_month value lag12 Diffpc
A41: Ballyboughal Dublin Fingal New 2022 August NA 517,474.00 NA
A41: Ballyboughal Dublin Fingal Existing 2022 August 674,357.00 545,417.00 23.64
A42: Garristown Dublin Fingal New 2022 August 475,000.00 387,475.00 22.59
A42: Garristown Dublin Fingal Existing 2022 August 428,929.00 390,560.00 9.82
A45: Oldtown Dublin Fingal New 2022 August 597,169.00 NA NA
A45: Oldtown Dublin Fingal Existing 2022 August 405,750.00 372,000.00 9.07
A63: Greystones Wicklow New 2022 August 548,685.00 608,014.00 -9.76
A63: Greystones Wicklow Existing 2022 August 559,849.00 474,033.00 18.10
A67: Wicklow Wicklow New 2022 August 349,294.00 373,807.00 -6.56
A67: Wicklow Wicklow Existing 2022 August 397,377.00 345,539.00 15.00
A75: Castleblaney Cavan-Monaghan New 2022 August 97,894.00 241,211.00 -59.42
A75: Castleblaney Cavan-Monaghan Existing 2022 August 175,249.00 176,569.00 -0.75
A81: Carrickmacross Cavan-Monaghan New 2022 August 261,342.00 173,770.00 50.40
A81: Carrickmacross Cavan-Monaghan Existing 2022 August 227,268.00 201,792.00 12.62
A82: Kells Meath East New 2022 August 292,293.00 234,898.00 24.43
A82: Kells Meath East Existing 2022 August 226,599.00 203,110.00 11.56
A83: Enfield Meath West New 2022 August 329,961.00 321,129.00 2.75
A83: Enfield Meath West Existing 2022 August 331,874.00 281,470.00 17.91
A84: Ashbourne Meath East New 2022 August 506,364.00 442,808.00 14.35
A84: Ashbourne Meath East Existing 2022 August 313,764.00 317,275.00 -1.11
A85: Dunshaughlin Meath East New 2022 August 370,661.00 349,468.00 6.06
A85: Dunshaughlin Meath East Existing 2022 August 418,030.00 380,426.00 9.88
A86: Dunboyne Meath East New 2022 August 418,425.00 384,410.00 8.85
A86: Dunboyne Meath East Existing 2022 August 421,134.00 384,627.00 9.49
A91: Dundalk Louth New 2022 August 290,953.00 289,546.00 0.49
A91: Dundalk Louth Existing 2022 August 257,736.00 226,852.00 13.61
A92: Drogheda Louth New 2022 August 317,629.00 311,477.00 1.98
A92: Drogheda Louth Existing 2022 August 269,520.00 241,723.00 11.50
A94: Blackrock Dun Laoghaire New 2022 August 1,065,670.00 1,003,873.00 6.16
A94: Blackrock Dun Laoghaire Existing 2022 August 787,026.00 730,753.00 7.70
A96: Glenageary Dun Laoghaire New 2022 August 857,849.00 817,604.00 4.92
A96: Glenageary Dun Laoghaire Existing 2022 August 864,749.00 751,126.00 15.13
A98: Bray Wicklow New 2022 August 575,821.00 721,499.00 -20.19
A98: Bray Wicklow Existing 2022 August 501,768.00 445,319.00 12.68
C15: Navan Meath West New 2022 August 342,694.00 369,738.00 -7.31
C15: Navan Meath West Existing 2022 August 298,174.00 258,289.00 15.44
D01: Dublin 1 Dublin Central New 2022 August 461,567.00 NA NA
D01: Dublin 1 Dublin Central Existing 2022 August 326,794.00 305,234.00 7.06
D02: Dublin 2 Dublin Bay South New 2022 August 704,705.00 766,962.00 -8.12
D02: Dublin 2 Dublin Bay South Existing 2022 August 568,741.00 444,478.00 27.96
D03: Dublin 3 Dublin Bay North New 2022 August 757,263.00 727,723.00 4.06
D03: Dublin 3 Dublin Bay North Existing 2022 August 546,512.00 490,565.00 11.40
D04: Dublin 4 Dublin Bay South New 2022 August 1,424,748.00 1,349,270.00 5.59
D04: Dublin 4 Dublin Bay South Existing 2022 August 837,563.00 774,576.00 8.13
D05: Dublin 5 Dublin Bay North New 2022 August 615,714.00 666,569.00 -7.63
D05: Dublin 5 Dublin Bay North Existing 2022 August 466,454.00 426,934.00 9.26
D06: Dublin 6 Dublin Bay South New 2022 August 1,334,454.00 862,005.00 54.81
D06: Dublin 6 Dublin Bay South Existing 2022 August 870,537.00 778,205.00 11.86
D07: Dublin 7 Dublin West New 2022 August NA 1,022,666.00 NA
D07: Dublin 7 Dublin West Existing 2022 August 416,169.00 373,190.00 11.52
D08: Dublin 8 Dublin South Central New 2022 August 806,794.00 655,701.00 23.04
D08: Dublin 8 Dublin South Central Existing 2022 August 395,331.00 376,463.00 5.01
D09: Dublin 9 Dublin North-West New 2022 August 770,182.00 575,819.00 33.75
D09: Dublin 9 Dublin North-West Existing 2022 August 457,270.00 431,519.00 5.97
D10: Dublin 10 Dublin South Central New 2022 August NA NA NA
D10: Dublin 10 Dublin South Central Existing 2022 August 272,754.00 242,535.00 12.46
D11: Dublin 11 Dublin West New 2022 August 262,131.00 269,149.00 -2.61
D11: Dublin 11 Dublin West Existing 2022 August 334,577.00 297,358.00 12.52
D12: Dublin 12 Dublin South Central New 2022 August 632,387.00 523,483.00 20.80
D12: Dublin 12 Dublin South Central Existing 2022 August 389,952.00 359,035.00 8.61
D13: Dublin 13 Dublin Bay North New 2022 August 545,287.00 471,571.00 15.63
D13: Dublin 13 Dublin Bay North Existing 2022 August 551,397.00 467,795.00 17.87
D14: Dublin 14 Dublin Bay South New 2022 August 776,578.00 735,756.00 5.55
D14: Dublin 14 Dublin Bay South Existing 2022 August 683,587.00 625,472.00 9.29
D15: Dublin 15 Dublin West New 2022 August 436,381.00 406,288.00 7.41
D15: Dublin 15 Dublin West Existing 2022 August 399,415.00 379,896.00 5.14
D16: Dublin 16 Dublin South-West New 2022 August 771,962.00 611,194.00 26.30
D16: Dublin 16 Dublin South-West Existing 2022 August 571,482.00 503,481.00 13.51
D17: Dublin 17 Dublin Fingal New 2022 August 456,777.00 NA NA
D17: Dublin 17 Dublin Fingal Existing 2022 August 302,113.00 269,468.00 12.11
D18: Dublin 18 Dublin Rathdown New 2022 August 650,309.00 606,455.00 7.23
D18: Dublin 18 Dublin Rathdown Existing 2022 August 618,147.00 554,144.00 11.55
D20: Dublin 20 Dublin South Central New 2022 August 605,467.00 600,000.00 0.91
D20: Dublin 20 Dublin South Central Existing 2022 August 351,834.00 347,429.00 1.27
D22: Dublin 22 Dublin South Central New 2022 August 376,914.00 388,114.00 -2.89
D22: Dublin 22 Dublin South Central Existing 2022 August 311,216.00 284,755.00 9.29
D24: Dublin 24 Dublin South-West New 2022 August 402,960.00 433,158.00 -6.97
D24: Dublin 24 Dublin South-West Existing 2022 August 341,898.00 310,444.00 10.13
D6W: Dublin 6W Dublin South Central New 2022 August 776,188.00 604,856.00 28.33
D6W: Dublin 6W Dublin South Central Existing 2022 August 624,795.00 614,362.00 1.70
E21: Cahir Tipperary New 2022 August 245,000.00 119,175.00 105.58
E21: Cahir Tipperary Existing 2022 August 195,115.00 169,073.00 15.40
E25: Cashel Tipperary New 2022 August 192,950.00 234,879.00 -17.85
E25: Cashel Tipperary Existing 2022 August 175,957.00 163,500.00 7.62
E32: Carrick-on-Suir Tipperary New 2022 August 340,001.00 228,506.00 48.79
E32: Carrick-on-Suir Tipperary Existing 2022 August 192,744.00 163,256.00 18.06
E34: Tipperary Tipperary New 2022 August 102,150.00 349,353.00 -70.76
E34: Tipperary Tipperary Existing 2022 August 164,675.00 142,192.00 15.81
E41: Thurles Tipperary New 2022 August 191,815.00 197,490.00 -2.87
E41: Thurles Tipperary Existing 2022 August 189,277.00 166,329.00 13.80
E45: Nenagh Tipperary New 2022 August 249,338.00 215,532.00 15.68
E45: Nenagh Tipperary Existing 2022 August 227,522.00 186,517.00 21.98
E53: Roscrea Tipperary New 2022 August 164,000.00 193,418.00 -15.21
E53: Roscrea Tipperary Existing 2022 August 177,820.00 154,116.00 15.38
E91: Clonmel Tipperary New 2022 August 342,500.00 272,514.00 25.68
E91: Clonmel Tipperary Existing 2022 August 220,704.00 201,325.00 9.63
F12: Claremorris Mayo New 2022 August 191,843.00 146,274.00 31.15
F12: Claremorris Mayo Existing 2022 August 166,346.00 140,615.00 18.30
F23: Castlebar Mayo New 2022 August 275,594.00 237,165.00 16.20
F23: Castlebar Mayo Existing 2022 August 190,288.00 166,861.00 14.04
F26: Ballina Mayo New 2022 August 229,117.00 230,776.00 -0.72
F26: Ballina Mayo Existing 2022 August 168,258.00 142,312.00 18.23
F28: Westport Mayo New 2022 August 312,053.00 211,787.00 47.34
F28: Westport Mayo Existing 2022 August 262,451.00 219,781.00 19.41
F31: Ballinrobe Mayo New 2022 August 363,200.00 190,880.00 90.28
F31: Ballinrobe Mayo Existing 2022 August 172,347.00 147,845.00 16.57
F35: Ballyhaunis Mayo New 2022 August 154,370.00 161,454.00 -4.39
F35: Ballyhaunis Mayo Existing 2022 August 131,370.00 117,022.00 12.26
F42: Roscommon Roscommon-Galway New 2022 August 308,999.00 233,305.00 32.44
F42: Roscommon Roscommon-Galway Existing 2022 August 176,997.00 169,576.00 4.38
F45: Castlerea Roscommon-Galway New 2022 August 184,573.00 127,417.00 44.86
F45: Castlerea Roscommon-Galway Existing 2022 August 128,502.00 103,269.00 24.43
F52: Boyle Sligo-Leitrim New 2022 August 147,562.00 173,613.00 -15.01
F52: Boyle Sligo-Leitrim Existing 2022 August 157,059.00 139,962.00 12.22
F56: Ballymote Sligo-Leitrim New 2022 August 191,853.00 142,818.00 34.33
F56: Ballymote Sligo-Leitrim Existing 2022 August 140,619.00 112,524.00 24.97
F91: Sligo Sligo-Leitrim New 2022 August 252,904.00 185,159.00 36.59
F91: Sligo Sligo-Leitrim Existing 2022 August 207,647.00 178,255.00 16.49
F92: Letterkenny Donegal New 2022 August 259,078.00 236,610.00 9.50
F92: Letterkenny Donegal Existing 2022 August 174,936.00 162,736.00 7.50
F93: Lifford Donegal New 2022 August 287,993.00 175,180.00 64.40
F93: Lifford Donegal Existing 2022 August 146,197.00 133,515.00 9.50
F94: Donegal Donegal New 2022 August 226,689.00 178,678.00 26.87
F94: Donegal Donegal Existing 2022 August 169,122.00 144,508.00 17.03
H12: Cavan Cavan-Monaghan New 2022 August 225,013.00 216,331.00 4.01
H12: Cavan Cavan-Monaghan Existing 2022 August 179,041.00 157,962.00 13.34
H14: Belturbet Cavan-Monaghan New 2022 August 236,186.00 206,570.00 14.34
H14: Belturbet Cavan-Monaghan Existing 2022 August 143,837.00 127,309.00 12.98
H16: Cootehill Cavan-Monaghan New 2022 August 200,600.00 NA NA
H16: Cootehill Cavan-Monaghan Existing 2022 August 158,109.00 143,482.00 10.19
H18: Monaghan Cavan-Monaghan New 2022 August 316,525.00 386,001.00 -18.00
H18: Monaghan Cavan-Monaghan Existing 2022 August 200,940.00 170,905.00 17.57
H23: Clones Cavan-Monaghan New 2022 August NA NA NA
H23: Clones Cavan-Monaghan Existing 2022 August 131,406.00 92,750.00 41.68
H53: Ballinasloe Roscommon-Galway New 2022 August 228,447.00 222,164.00 2.83
H53: Ballinasloe Roscommon-Galway Existing 2022 August 190,176.00 158,897.00 19.69
H54: Tuam Galway East New 2022 August 214,402.00 222,370.00 -3.58
H54: Tuam Galway East Existing 2022 August 203,953.00 178,465.00 14.28
H62: Loughrea Galway East New 2022 August 290,454.00 264,826.00 9.68
H62: Loughrea Galway East Existing 2022 August 216,463.00 204,182.00 6.01
H65: Athenry Galway East New 2022 August 323,264.00 285,161.00 13.36
H65: Athenry Galway East Existing 2022 August 286,619.00 251,219.00 14.09
H71: Clifden Galway West New 2022 August 440,000.00 292,830.00 50.26
H71: Clifden Galway West Existing 2022 August 270,808.00 205,769.00 31.61
H91: Galway Galway West New 2022 August 417,121.00 382,361.00 9.09
H91: Galway Galway West Existing 2022 August 323,597.00 292,169.00 10.76
K32: Balbriggan Dublin Fingal New 2022 August 344,561.00 335,215.00 2.79
K32: Balbriggan Dublin Fingal Existing 2022 August 282,850.00 240,914.00 17.41
K34: Skerries Dublin Fingal New 2022 August 347,839.00 417,362.00 -16.66
K34: Skerries Dublin Fingal Existing 2022 August 504,376.00 467,727.00 7.84
K36: Malahide Dublin Fingal New 2022 August 652,799.00 595,288.00 9.66
K36: Malahide Dublin Fingal Existing 2022 August 623,505.00 560,274.00 11.29
K45: Lusk Dublin Fingal New 2022 August 411,087.00 358,088.00 14.80
K45: Lusk Dublin Fingal Existing 2022 August 353,022.00 319,987.00 10.32
K56: Rush Dublin Fingal New 2022 August 387,796.00 386,041.00 0.45
K56: Rush Dublin Fingal Existing 2022 August 349,927.00 349,669.00 0.07
K67: Swords Dublin Fingal New 2022 August 443,510.00 404,208.00 9.72
K67: Swords Dublin Fingal Existing 2022 August 362,941.00 329,651.00 10.10
K78: Lucan Dublin Mid-West New 2022 August 452,816.00 432,288.00 4.75
K78: Lucan Dublin Mid-West Existing 2022 August 376,653.00 355,877.00 5.84
N37: Athlone Longford-Westmeath New 2022 August 319,212.00 304,504.00 4.83
N37: Athlone Longford-Westmeath Existing 2022 August 227,500.00 203,397.00 11.85
N39: Longford Longford-Westmeath New 2022 August 208,706.00 222,379.00 -6.15
N39: Longford Longford-Westmeath Existing 2022 August 161,751.00 132,566.00 22.02
N41: Carrick-on-Shannon Sligo-Leitrim New 2022 August 208,972.00 157,606.00 32.59
N41: Carrick-on-Shannon Sligo-Leitrim Existing 2022 August 164,708.00 141,331.00 16.54
N91: Mullingar Longford-Westmeath New 2022 August 355,432.00 314,949.00 12.85
N91: Mullingar Longford-Westmeath Existing 2022 August 235,605.00 198,412.00 18.75
P12: Macroom Cork North-West New 2022 August 309,853.00 261,091.00 18.68
P12: Macroom Cork North-West Existing 2022 August 230,613.00 217,719.00 5.92
P14: Crookstown Cork North-West New 2022 August 367,030.00 424,362.00 -13.51
P14: Crookstown Cork North-West Existing 2022 August 281,536.00 340,042.00 -17.21
P17: Kinsale Cork South-West New 2022 August 388,450.00 422,798.00 -8.12
P17: Kinsale Cork South-West Existing 2022 August 520,559.00 393,662.00 32.24
P24: Cobh Cork East New 2022 August 302,376.00 282,214.00 7.14
P24: Cobh Cork East Existing 2022 August 284,606.00 239,510.00 18.83
P25: Midleton Cork East New 2022 August 362,041.00 336,455.00 7.60
P25: Midleton Cork East Existing 2022 August 287,286.00 259,115.00 10.87
P31: Ballincollig Cork North-West New 2022 August 390,991.00 390,065.00 0.24
P31: Ballincollig Cork North-West Existing 2022 August 370,220.00 331,136.00 11.80
P32: Rylane Cork North-West New 2022 August 415,750.00 380,000.00 9.41
P32: Rylane Cork North-West Existing 2022 August 287,583.00 205,778.00 39.75
P36: Youghal Cork East New 2022 August 606,240.00 337,989.00 79.37
P36: Youghal Cork East Existing 2022 August 236,988.00 218,654.00 8.38
P43: Carrigaline Cork South-Central New 2022 August 358,090.00 357,223.00 0.24
P43: Carrigaline Cork South-Central Existing 2022 August 375,227.00 302,733.00 23.95
P47: Dunmanway Cork South-West New 2022 August 407,499.00 350,325.00 16.32
P47: Dunmanway Cork South-West Existing 2022 August 216,283.00 177,329.00 21.97
P51: Mallow Cork East New 2022 August 294,915.00 273,739.00 7.74
P51: Mallow Cork East Existing 2022 August 203,360.00 163,530.00 24.36
P56: Charleville Cork North-West New 2022 August NA 125,533.00 NA
P56: Charleville Cork North-West Existing 2022 August 182,117.00 148,207.00 22.88
P61: Fermoy Cork East New 2022 August 431,350.00 332,398.00 29.77
P61: Fermoy Cork East Existing 2022 August 260,532.00 200,913.00 29.67
P67: Mitchelstown Cork East New 2022 August 316,363.00 280,972.00 12.60
P67: Mitchelstown Cork East Existing 2022 August 232,338.00 190,567.00 21.92
P72: Bandon Cork South-West New 2022 August 318,016.00 397,138.00 -19.92
P72: Bandon Cork South-West Existing 2022 August 282,198.00 224,716.00 25.58
P75: Bantry Cork South-West New 2022 August 242,615.00 261,190.00 -7.11
P75: Bantry Cork South-West Existing 2022 August 227,777.00 193,530.00 17.70
P81: Skibbereen Cork South-West New 2022 August 329,254.00 251,718.00 30.80
P81: Skibbereen Cork South-West Existing 2022 August 345,496.00 270,952.00 27.51
P85: Clonakilty Cork South-West New 2022 August 357,131.00 353,393.00 1.06
P85: Clonakilty Cork South-West Existing 2022 August 277,309.00 289,442.00 -4.19
R14: Athy Kildare South New 2022 August 300,000.00 NA NA
R14: Athy Kildare South Existing 2022 August 217,302.00 200,725.00 8.26
R21: Mhuine Bheag Carlow-Kilkenny New 2022 August NA 312,125.00 NA
R21: Mhuine Bheag Carlow-Kilkenny Existing 2022 August 257,771.00 187,940.00 37.16
R32: Portlaoise Laois-Offaly New 2022 August 284,450.00 248,754.00 14.35
R32: Portlaoise Laois-Offaly Existing 2022 August 219,724.00 196,774.00 11.66
R35: Tullamore Laois-Offaly New 2022 August 286,385.00 264,707.00 8.19
R35: Tullamore Laois-Offaly Existing 2022 August 228,192.00 195,006.00 17.02
R42: Birr Laois-Offaly New 2022 August 284,898.00 255,272.00 11.61
R42: Birr Laois-Offaly Existing 2022 August 195,449.00 157,787.00 23.87
R45: Edenderry Laois-Offaly New 2022 August 251,959.00 240,681.00 4.69
R45: Edenderry Laois-Offaly Existing 2022 August 216,735.00 185,648.00 16.75
R51: Kildare Kildare South New 2022 August 295,246.00 298,854.00 -1.21
R51: Kildare Kildare South Existing 2022 August 299,525.00 254,422.00 17.73
R56: Curragh Kildare South New 2022 August 410,698.00 368,386.00 11.49
R56: Curragh Kildare South Existing 2022 August 340,282.00 292,988.00 16.14
R93: Carlow Carlow-Kilkenny New 2022 August 259,384.00 249,235.00 4.07
R93: Carlow Carlow-Kilkenny Existing 2022 August 223,522.00 206,521.00 8.23
R95: Kilkenny Carlow-Kilkenny New 2022 August 394,463.00 348,345.00 13.24
R95: Kilkenny Carlow-Kilkenny Existing 2022 August 274,345.00 245,474.00 11.76
T12: Cork Southside Cork North-Central New 2022 August 441,822.00 417,636.00 5.79
T12: Cork Southside Cork North-Central Existing 2022 August 353,355.00 325,933.00 8.41
T23: Cork Northside Cork North-Central New 2022 August 425,818.00 397,421.00 7.15
T23: Cork Northside Cork North-Central Existing 2022 August 260,989.00 244,546.00 6.72
T34: Carrignavar Cork East New 2022 August 332,258.00 NA NA
T34: Carrignavar Cork East Existing 2022 August 371,542.00 285,112.00 30.31
T45: Glanmire Cork North-Central New 2022 August 342,767.00 337,284.00 1.63
T45: Glanmire Cork North-Central Existing 2022 August 366,274.00 310,939.00 17.80
T56: Watergrasshill Cork North-Central New 2022 August 321,977.00 325,904.00 -1.20
T56: Watergrasshill Cork North-Central Existing 2022 August 318,477.00 292,461.00 8.90
V14: Shannon Clare New 2022 August 136,200.00 234,888.00 -42.01
V14: Shannon Clare Existing 2022 August 192,268.00 170,269.00 12.92
V15: Kilrush Clare New 2022 August 194,820.00 268,506.00 -27.44
V15: Kilrush Clare Existing 2022 August 178,253.00 154,521.00 15.36
V23: Caherciveen Kerry New 2022 August 244,811.00 219,491.00 11.54
V23: Caherciveen Kerry Existing 2022 August 243,357.00 192,963.00 26.12
V31: Listowel Kerry New 2022 August 224,316.00 195,605.00 14.68
V31: Listowel Kerry Existing 2022 August 191,157.00 165,748.00 15.33
V35: Kilmallock Limerick County New 2022 August 297,384.00 313,861.00 -5.25
V35: Kilmallock Limerick County Existing 2022 August 186,124.00 166,509.00 11.78
V42: Newcastle West Limerick County New 2022 August 199,859.00 166,975.00 19.69
V42: Newcastle West Limerick County Existing 2022 August 193,402.00 158,432.00 22.07
V92: Tralee Kerry New 2022 August 281,695.00 299,137.00 -5.83
V92: Tralee Kerry Existing 2022 August 219,929.00 192,346.00 14.34
V93: Killarney Kerry New 2022 August 325,856.00 345,354.00 -5.65
V93: Killarney Kerry Existing 2022 August 281,515.00 227,361.00 23.82
V94: Limerick Limerick City New 2022 August 357,728.00 331,534.00 7.90
V94: Limerick Limerick City Existing 2022 August 249,276.00 234,523.00 6.29
V95: Ennis Clare New 2022 August 321,030.00 289,794.00 10.78
V95: Ennis Clare Existing 2022 August 250,897.00 205,167.00 22.29
W12: Newbridge Kildare South New 2022 August 399,492.00 349,483.00 14.31
W12: Newbridge Kildare South Existing 2022 August 308,919.00 271,374.00 13.84
W23: Celbridge Kildare North New 2022 August 429,622.00 410,994.00 4.53
W23: Celbridge Kildare North Existing 2022 August 395,407.00 368,716.00 7.24
W34: Monasterevin Kildare South New 2022 August 323,879.00 285,566.00 13.42
W34: Monasterevin Kildare South Existing 2022 August 239,767.00 213,457.00 12.33
W91: Naas Kildare North New 2022 August 391,839.00 358,218.00 9.39
W91: Naas Kildare North Existing 2022 August 358,761.00 333,652.00 7.53
X35: Dungarvan Waterford New 2022 August 279,929.00 287,986.00 -2.80
X35: Dungarvan Waterford Existing 2022 August 290,448.00 228,178.00 27.29
X42: Kilmacthomas Waterford New 2022 August 307,473.00 297,004.00 3.52
X42: Kilmacthomas Waterford Existing 2022 August 246,092.00 198,152.00 24.19
X91: Waterford Waterford New 2022 August 326,547.00 285,653.00 14.32
X91: Waterford Waterford Existing 2022 August 240,571.00 209,961.00 14.58
Y14: Arklow Wicklow New 2022 August 534,338.00 337,608.00 58.27
Y14: Arklow Wicklow Existing 2022 August 263,939.00 240,034.00 9.96
Y21: Enniscorthy Wexford New 2022 August 265,480.00 244,564.00 8.55
Y21: Enniscorthy Wexford Existing 2022 August 225,866.00 204,000.00 10.72
Y25: Gorey Wexford New 2022 August 298,846.00 296,110.00 0.92
Y25: Gorey Wexford Existing 2022 August 286,177.00 235,858.00 21.33
Y34: New Ross Wexford New 2022 August 182,312.00 273,434.00 -33.33
Y34: New Ross Wexford Existing 2022 August 203,439.00 182,018.00 11.77
Y35: Wexford Wexford New 2022 August 280,072.00 302,877.00 -7.53
Y35: Wexford Wexford Existing 2022 August 236,307.00 206,572.00 14.39

The maps below are the aggregate values of each Eircode Area rolled up to Constituency level. The variation displayed on the maps represent the difference between the average value of this aggregation and its 12 month lag. - Not an average of the variation in the scroll box above.

# Map
setwd("/Users/charten/OneDrive - Glenveagh Properties/Research & Development/1. Analysis/")
shp <- sf::read_sf("Constituency_Boundaries_Ungeneralised___OSi_National_Electoral_Boundaries___2017.shp")

shpEOA <- merge(shp,SUM_HPM08_1.EOA_Max, by.x = "CON_SEAT_", by.y="Seat_Tag")

shpEOA.GDA <- shpEOA %>%
  filter(grepl('Dublin|Laoghaire|Meath|Louth|Kildare|Wicklow', CON_SEAT_))

shpEOA %>%
  ggplot()+
  geom_sf(aes(fill = Diffpc),colour=alpha("white",0.5))+
  scale_fill_stepsn(n.breaks = 10,
                    colors=c("#F92306","#FFFFFF","#0C4F00"),
                    limits = c(-25,25),
                    name = "% change")+
  ggtitle('National: Percentage Change - CSO: HPM08')+
  labs(subtitle="12 month rolling average: Locations aggregated to constituency",caption="scales limited to absolute value of 25%")+
  theme_void()+
  theme(legend.title = element_text(size = 10),
        legend.text = element_text(size = 8))+
  theme(legend.position = "left")+
  theme(plot.title = element_text(size=16,face="bold"))+
  facet_wrap(~Dwelling.Status,ncol=1)+
  theme(strip.text.x = element_text(size = 10,colour = "navy"))

shpEOA.GDA %>%
  ggplot()+
  geom_sf(aes(fill = Diffpc),colour=alpha("white",0.5))+
  scale_fill_stepsn(n.breaks = 10,
                    colors=c("#F92306","#FFFFFF","#0C4F00"),
                    limits = c(-25,25),
                    name = "% change")+
  geom_sf_text(aes(label=Diffpc),color="black",alpha=0.9,size=2.25)+
  ggtitle('Greater Dublin Area - CSO: HPM08')+
  labs(subtitle="12 month rolling average: Locations aggregated to constituency",caption="scales limited to absolute value of 25%")+
  theme_void()+
  theme(legend.title = element_text(size = 10),
        legend.text = element_text(size = 8))+
  theme(legend.position = "left")+
  theme(plot.title = element_text(size=16,face="bold"))+
  facet_wrap(~Dwelling.Status,ncol=1)+
  theme(strip.text.x = element_text(size = 10,colour = "navy"))

Appendix

HPM08_1.EOA.DUB <- HPM08_1.EOA %>%
  filter(Return.County == "Dublin")
HPM08_1.EOA.DUB_Max <- HPM08_1.EOA.DUB %>% 
  group_by(Eircode.Output,Dwelling.Status)%>%
  slice(which.max(Date))

HPM08_1.EOA.DUB %>%
  ggplot(aes(x=Date,y=value,group=Dwelling.Status,colour=Dwelling.Status))+
  geom_line(size=1.25,alpha=0.7)+
  theme_bw()+
  theme(legend.position = "bottom")+
  ylab("euro")+xlab(NULL)+
  ggtitle("Market-based Household Purchases")+
  labs(subtitle="Mean Rolling 12 Month") +
  geom_text_repel(aes(label=value_short),alpha=0.6,size=2.75)+
  geom_text(data=HPM08_1.EOA.DUB_Max,aes(label=lab),colour="black",hjust="right",vjust=1,size=2.75,fontface="bold",alpha=0.6) +
  facet_wrap(~Eircode.Output,ncol=2)

options(scipen = 999)

HPM08_1.EOA.OTH <- HPM08_1.EOA %>%
  filter(Return.County != "Dublin")
HPM08_1.EOA.OTH_Max <- HPM08_1.EOA.OTH %>%
  group_by(Eircode.Output,Dwelling.Status)%>%
  slice(which.max(Date))

HPM08_1.EOA.OTH %>%
  ggplot(aes(x=Date,y=value,group=Dwelling.Status,colour=Dwelling.Status))+
  geom_line(size=1.25,alpha=0.7)+
  theme_bw()+
  theme(legend.position = "bottom")+
  ylab("euro")+xlab(NULL)+
  ggtitle("Market-based Household Purchases")+
  labs(subtitle="Mean Rolling 12 Month") +
  geom_text_repel(aes(label=value_short),alpha=0.6,size=2.75)+
  geom_text(data=HPM08_1.EOA.OTH_Max,aes(label=lab),colour="black",hjust="right",vjust=1,size=2.75,fontface="bold",alpha=0.6) +
  facet_wrap(~Eircode.Output,ncol=2)