全臺灣最富有的鄉鎮村里(2024年)

一言以蔽之:新竹市東區關新里五連霸全臺最富里。

財政部「綜合所得稅申報初步核定統計專冊」已於六月廿八日公佈,扣除納稅單位小於10戶的,那麼臺灣前二十名(按照中位數排名)的鄉鎮村里如下表格。

縣市鄉鎮村里今年名次去年名次納稅單位(戶)PR75第三分位數(萬元)平均數(萬元)PR50中位數(萬元)PR25第一分位數(萬元)變異係數
新竹市東區關新里112061598.0461.1354.3164.111.5%
新竹市東區龍山里224632453.8328.1249.197.110.3%
新竹縣竹北市東平里336144455.7336.0240.697.710.8%
新竹市東區埔頂里463483388.1283.1214.080.89.9%
新竹縣竹北市鹿場里545111433.7333.0202.776.915.1%
新竹縣竹北市中興里654020457.1347.5197.968.618.3%
新竹縣竹北市隘口里771687380.8288.2190.369.921.5%
新竹市東區東勢里881780336.7257.1183.167.813.5%
新竹縣竹北市北興里993319349.3260.4179.880.213.0%
臺南市善化區蓮潭里10112162290.2212.9166.576.79.7%
新竹縣竹北市十興里11103173324.6245.9165.966.711.8%
新竹縣竹北市中崙里12123069333.6244.8152.056.512.5%
新竹縣竹北市東興里13133885294.0219.2144.861.711.9%
新竹市東區豐功里14161772361.2274.3141.045.914.1%
新竹市東區東園里15152520290.3212.8135.252.111.4%
新竹縣竹北市斗崙里16143416309.7241.3132.652.614.8%
新竹縣竹北市興安里17171616284.5219.7121.744.313.4%
新竹市東區光明里18181225288.0235.8120.443.215.5%
臺北市內湖區寶湖里19193850266.8242.8114.344.461.8%
新竹縣寶山鄉大崎村20795258.6221.7112.037.114.5%
關新公園

新竹市東區關新里已連續五年蟬聯最富里的頭銜,其綜合所得,不管是平均數、第三分位數、中位數、第一分位數,都是居於全臺灣冠軍。

最厲害的是連PR25的第一分位數,也就是關新里連『最窮的四分之一族群』,年收入都有164.1萬元(如果這樣也叫窮的話),超過第二名的新竹縣竹北市東平里97.7萬元,足足有66.4萬元之多。

除了第九名以外,前十名的富有里都是位於新竹科學園區週邊。而臺南市善化區蓮潭里,拜臺南科學園區所賜,近年來一直都是臺南最富有的里,同時也是全臺南生育率最高的里,今年首次進入前十名的榜單。

至於第十一名~第二十名的富有里,第十九名在內湖科技園區週邊,其他也都是竹科相關。

另外一個後起之秀是第二十名的新竹縣寶山鄉大崎村,顯然是因為台積電全球研發中心以及2奈米先進製程晶圓廠房都座落在這裡,就會有許多台積電的員工搬遷至此。

如果考慮變異係數(標準差/中位數),除了臺北市內湖區寶湖里以外,其他十九個村里的變異係數都很低,表示園區附近村里內的財富是很平均的,不是被特別有錢的幾戶拉高的。其中,新竹市東區又比新竹縣竹北市平均,這也跟竹北的豪宅比較多有關係。

備註:2023年全臺灣最富有的鄉鎮村里請參考連結。


最後,教大家如何取得這些資料。

這些都是公開資訊,以本文為例子,原始資料在111年度綜合所得稅申報初步核定統計專冊,抓取HTML的原始文字檔案,解壓縮後,裡面有111_165-A.html、111_165-B.html……111_165-Z.html,這就是各縣市鄉鎮村里統計分析表。

接著使用程式分析一下html文字檔案,就可以得到上面的這些表格了。下面這段小程式是用C語言來實現的,將編譯後的執行檔與111_165-*.html放在同一個目錄,雙擊執行檔就可以列印出以TAB分隔的文字檔,再將文字複製貼上Excel,即可計算。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

static void *str_copy(char *dst, char *str)
{
char *ptr;

ptr = dst;
while (*str)
{
if (*str != ' ') /* ignore ' ' */
{
*ptr = *str;
ptr++;
}
str++;
}
*ptr = '\0';
}

static void parse_html(char *fpath)
{
FILE *fp;
char *ptr1, *ptr2;
char buf[1024];
char city[1024], area[1024];

if (!(fp = fopen(fpath, "r")))
{
printf("%s does not exist.\n", fpath);
return;
}

while (fgets(buf, sizeof(buf), fp))
{
if (ptr1 = strstr(buf, "縣市別:"))
{
ptr1 += 12;
if (ptr2 = strchr(ptr1, '<'))
*ptr2 = '\0';
str_copy(city, ptr1);
}
else if (strstr(buf, "納稅單位") || strstr(buf, "綜合所得總額") ||
strstr(buf, "平均數") || strstr(buf, "中位數") ||
strstr(buf, "第一分位數") || strstr(buf, "第三分位數") ||
strstr(buf, "標準差") || strstr(buf, "變異係數") || strstr(buf, "註:本統計"))
{
continue;
}
else if (ptr1 = strstr(buf, "font-size: 14px;\">"))
{
ptr1 += 18;
if (ptr2 = strchr(ptr1, '<'))
*ptr2 = '\0';
if (!strstr(buf, "border-bottom-style"))
{
strcpy(area, ptr1);
}
else
{
if (*ptr1 >= '0' && *ptr1 <= '9')
printf("\t%s", ptr1);
else
printf("\n%s%s%s", city, area, ptr1);
}
}
}

printf("\n");
fclose(fp);
}

int main()
{
int ch;
char fpath[128];

printf("縣市鄉鎮村里\t納稅單位\t綜合所得總額\t平均數\t中位數"
"\t第一分位數\t第三分位數\t標準差\t變異係數");

for (ch = 'A'; ch <= 'Z'; ch++)
{
if (ch == 'L' || ch == 'R' || ch == 'S' || ch == 'Y') /* 台中縣/台南縣/高雄縣/陽明山 */
continue;

sprintf(fpath, "111_165-%c.html", ch);
parse_html(fpath);
}

return 0;
}