Standard Stats: Domestic Leagues

Standard Stats: Domestic Leagues Table
Playing Time Performance Expected Progression Per 90 Minutes
Season Age Squad Country Comp LgRank MP Starts Min 90s Gls Ast G+A G-PK PK PKatt CrdY CrdR xG npxG xAG npxG+xAG PrgC PrgP PrgR Gls Ast G+A G-PK G+A-PK xG xAG xG+xAG npxG npxG+xAG Matches
2013-201418Odensedk DEN1. Danish Superliga8th20190.2000000000.000.000.000.000.00
2014-201519Odensedk DEN1. Danish Superliga9th27171,67718.6022000400.000.110.110.000.11Matches
2015-201620Odensedk DEN1. Danish Superliga7th19161,34615.0033000100.000.200.200.000.20Matches
2016-201721Odensedk DEN1. Danish Superliga8th30292,45427.3044000200.000.150.150.000.15Matches
2017-201822Odensedk DEN1. Danish Superliga10th22201,74319.4011000300.000.050.050.000.05Matches
2018-201923Odensedk DEN1. Danish Superliga5th1255896.5000000200.000.000.000.000.00Matches
201923Haugesundno NOR1. Eliteserien7th29292,56428.5112100500.040.040.070.040.07Matches
202024Haugesundno NOR1. Eliteserien9th28282,40126.7055000300.000.190.190.000.19Matches
202125Haugesundno NOR1. Eliteserien11th101090010.0101100000.100.000.100.100.10Matches
2021-202226Toulousefr FRA2. Ligue 21st38383,29136.6156100511.61.64.35.91011912760.030.140.160.030.160.040.120.160.040.16Matches
2022-202327Toulousefr FRA1. Ligue 113th27262,25725.1123100510.80.81.92.7591361270.040.080.120.040.120.030.080.110.030.11Matches
2023-202428Toulousefr FRA1. Ligue 111th24191,54417.2011000201.11.00.71.73081960.000.060.060.000.060.060.040.100.060.10Matches
202428Austinus USA1. MLS18th764895.4000000100.40.40.00.4821150.000.000.000.000.000.070.000.070.070.07Matches
12 Seasons4 Clubs5 Leagues27524321,274236.4424284003323.93.87.010.71984295140.020.100.120.020.120.050.080.130.040.13
Country Comp LgRank MP Starts Min 90s Gls Ast G+A G-PK PK PKatt CrdY CrdR xG npxG xAG npxG+xAG PrgC PrgP PrgR Gls Ast G+A G-PK G+A-PK xG xAG xG+xAG npxG npxG+xAG Matches
Odense (6 Seasons)1 League112877,82887.0010100001200.000.110.110.000.11
Toulouse (3 Seasons)2 Leagues89837,09278.828102001223.53.46.910.31904084990.030.100.130.030.130.040.090.130.040.13
Haugesund (3 Seasons)1 League67675,86565.2268200800.030.090.120.030.12
Austin (1 Season)1 League764895.4000000100.40.40.00.4821150.000.000.000.000.000.070.000.070.070.07
Danish Superliga (6 Seasons)112877,82887.0010100001200.000.110.110.000.11
Eliteserien (3 Seasons)67675,86565.2268200800.030.090.120.030.12
Ligue 1 (2 Seasons)51453,80142.2134100711.91.82.64.4892172230.020.070.090.020.090.050.060.110.040.10
Ligue 2 (1 Season)38383,29136.6156100511.61.64.35.91011912760.030.140.160.030.160.040.120.160.040.16
MLS (1 Season)764895.4000000100.40.40.00.4821150.000.000.000.000.000.070.000.070.070.07

Shooting: Domestic Leagues

Shooting: Domestic Leagues Table
Standard Expected
Season Age Squad Country Comp LgRank 90s Gls Sh SoT SoT% Sh/90 SoT/90 G/Sh G/SoT Dist FK PK PKatt xG npxG npxG/Sh G-xG np:G-xG Matches
2013-201418Odensedk DEN1. Danish Superliga8th0.2000.0000
2014-201519Odensedk DEN1. Danish Superliga9th18.6050.270.0000Matches
2015-201620Odensedk DEN1. Danish Superliga7th15.0020.130.0000Matches
2016-201721Odensedk DEN1. Danish Superliga8th27.30090.000.330.0000Matches
2017-201822Odensedk DEN1. Danish Superliga10th19.40020.000.100.0000Matches
2018-201923Odensedk DEN1. Danish Superliga5th6.5000Matches
201923Haugesundno NOR1. Eliteserien7th28.5120630.00.700.210.050.1700Matches
202024Haugesundno NOR1. Eliteserien9th26.7019526.30.710.190.000.0000Matches
202125Haugesundno NOR1. Eliteserien11th10.018562.50.800.500.130.2000Matches
2021-202226Toulousefr FRA2. Ligue 21st36.6122731.80.600.190.050.1419.70001.61.60.07-0.6-0.6Matches
2022-202327Toulousefr FRA1. Ligue 113th25.1111436.40.440.160.090.2517.60000.80.80.07+0.2+0.2Matches
2023-202428Toulousefr FRA1. Ligue 111th17.201600.00.930.000.0018.30001.11.00.06-1.1-1.0Matches
202428Austinus USA1. MLS18th5.405120.00.920.180.000.0013.30000.40.40.08-0.4-0.4Matches
12 Seasons4 Clubs5 Leagues236.441014638.60.520.200.040.0918.30003.93.80.07-1.9-1.8
Country Comp LgRank 90s Gls Sh SoT SoT% Sh/90 SoT/90 G/Sh G/SoT Dist FK PK PKatt xG npxG npxG/Sh G-xG np:G-xG Matches
Odense (6 Seasons)1 League87.000180.000.220.0000
Toulouse (3 Seasons)2 Leagues78.82491122.40.620.140.040.1818.80003.53.40.07-1.5-1.4
Haugesund (3 Seasons)1 League65.22471634.00.720.250.040.1300
Austin (1 Season)1 League5.405120.00.920.180.000.0013.30000.40.40.08-0.4-0.4
Danish Superliga (6 Seasons)87.000180.000.220.0000
Eliteserien (3 Seasons)65.22471634.00.720.250.040.1300
Ligue 1 (2 Seasons)42.2127414.80.640.090.040.2518.00001.91.80.07-0.9-0.8
Ligue 2 (1 Season)36.6122731.80.600.190.050.1419.70001.61.60.07-0.6-0.6
MLS (1 Season)5.405120.00.920.180.000.0013.30000.40.40.08-0.4-0.4

Passing: Domestic Leagues

Passing: Domestic Leagues Table
Total Short Medium Long Expected
Season Age Squad Country Comp LgRank 90s Cmp Att Cmp% TotDist PrgDist Cmp Att Cmp% Cmp Att Cmp% Cmp Att Cmp% Ast xAG xA A-xAG KP 1/3 PPA CrsPA PrgP Matches
2013-201418Odensedk DEN1. Danish Superliga8th0.20
2014-201519Odensedk DEN1. Danish Superliga9th18.62Matches
2015-201620Odensedk DEN1. Danish Superliga7th15.03Matches
2016-201721Odensedk DEN1. Danish Superliga8th27.34Matches
2017-201822Odensedk DEN1. Danish Superliga10th19.41Matches
2018-201923Odensedk DEN1. Danish Superliga5th6.50Matches
201923Haugesundno NOR1. Eliteserien7th28.51Matches
202024Haugesundno NOR1. Eliteserien9th26.75Matches
202125Haugesundno NOR1. Eliteserien11th10.00Matches
2021-202226Toulousefr FRA2. Ligue 21st36.62076244884.83110792681164126592.070182585.012221955.754.34.2+0.7311253112191Matches
2022-202327Toulousefr FRA1. Ligue 113th25.11336157384.919956712873780991.149056786.46310858.321.92.6+0.117104197136Matches
2023-202428Toulousefr FRA1. Ligue 111th17.278894483.511478359544048990.028834284.2265349.110.71.1+0.38495281Matches
202428Austinus USA1. MLS18th5.421826283.23425104512013688.2839884.7121963.200.00.20.01203121Matches
12 Seasons4 Clubs5 Leagues236.44418522784.565966210362461269991.21562183285.322339955.9247.08.1+17.0572985822429
Country Comp LgRank 90s Cmp Att Cmp% TotDist PrgDist Cmp Att Cmp% Cmp Att Cmp% Cmp Att Cmp% Ast xAG xA A-xAG KP 1/3 PPA CrsPA PrgP Matches
Odense (6 Seasons)1 League87.010
Toulouse (3 Seasons)2 Leagues78.84200496584.662541199912341256391.31479173485.321138055.586.97.9+1.1562785521408
Haugesund (3 Seasons)1 League65.26
Austin (1 Season)1 League5.421826283.23425104512013688.2839884.7121963.200.00.20.01203121
Danish Superliga (6 Seasons)87.010
Eliteserien (3 Seasons)65.26
Ligue 1 (2 Seasons)42.22124251784.431434107231177129890.777890985.68916155.332.63.8+0.425153249217
Ligue 2 (1 Season)36.62076244884.83110792681164126592.070182585.012221955.754.34.2+0.7311253112191
MLS (1 Season)5.421826283.23425104512013688.2839884.7121963.200.00.20.01203121
Become a Stathead & surf this site ad-free.

Pass Types: Domestic Leagues

Pass Types: Domestic Leagues Table
Pass Types Corner Kicks Outcomes
Season Age Squad Country Comp LgRank 90s Att Live Dead FK TB Sw Crs TI CK In Out Str Cmp Off Blocks Matches
2013-201418Odensedk DEN1. Danish Superliga8th0.2
2014-201519Odensedk DEN1. Danish Superliga9th18.6Matches
2015-201620Odensedk DEN1. Danish Superliga7th15.0Matches
2016-201721Odensedk DEN1. Danish Superliga8th27.30Matches
2017-201822Odensedk DEN1. Danish Superliga10th19.40Matches
2018-201923Odensedk DEN1. Danish Superliga5th6.5Matches
201923Haugesundno NOR1. Eliteserien7th28.5115Matches
202024Haugesundno NOR1. Eliteserien9th26.7126Matches
202125Haugesundno NOR1. Eliteserien11th10.038Matches
2021-202226Toulousefr FRA2. Ligue 21st36.62448207037037259133200002076834Matches
2022-202327Toulousefr FRA1. Ligue 113th25.11573133823022124220800001336536Matches
2023-202428Toulousefr FRA1. Ligue 111th17.29447751692001301490000788023Matches
202428Austinus USA1. MLS18th5.426223031300628000021814Matches
12 Seasons4 Clubs5 Leagues236.4522744138008238448717000044181497
Country Comp LgRank 90s Att Live Dead FK TB Sw Crs TI CK In Out Str Cmp Off Blocks Matches
Odense (6 Seasons)1 League87.00
Toulouse (3 Seasons)2 Leagues78.8496541837697938163689000042001393
Haugesund (3 Seasons)1 League65.2279
Austin (1 Season)1 League5.426223031300628000021814
Danish Superliga (6 Seasons)87.00
Eliteserien (3 Seasons)65.2279
Ligue 1 (2 Seasons)42.22517211339942137235700002124559
Ligue 2 (1 Season)36.62448207037037259133200002076834
MLS (1 Season)5.426223031300628000021814

Goal and Shot Creation: Domestic Leagues

Goal and Shot Creation: Domestic Leagues Table
SCA SCA Types GCA GCA Types
Season Age Squad Country Comp LgRank 90s SCA SCA90 PassLive PassDead TO Sh Fld Def GCA GCA90 PassLive PassDead TO Sh Fld Def Matches
2013-201418Odensedk DEN1. Danish Superliga8th0.2
2014-201519Odensedk DEN1. Danish Superliga9th18.6Matches
2015-201620Odensedk DEN1. Danish Superliga7th15.0Matches
2016-201721Odensedk DEN1. Danish Superliga8th27.3Matches
2017-201822Odensedk DEN1. Danish Superliga10th19.4Matches
2018-201923Odensedk DEN1. Danish Superliga5th6.5Matches
201923Haugesundno NOR1. Eliteserien7th28.5Matches
202024Haugesundno NOR1. Eliteserien9th26.7Matches
202125Haugesundno NOR1. Eliteserien11th10.0Matches
2021-202226Toulousefr FRA2. Ligue 21st36.61052.878624634120.33802101Matches
2022-202327Toulousefr FRA1. Ligue 113th25.1491.96421231050.20500000Matches
2023-202428Toulousefr FRA1. Ligue 111th17.2291.69182152120.12100100Matches
202428Austinus USA1. MLS18th5.491.6690000010.18100000Matches
12 Seasons4 Clubs5 Leagues236.41922.28155571465200.241502201
Country Comp LgRank 90s SCA SCA90 PassLive PassDead TO Sh Fld Def GCA GCA90 PassLive PassDead TO Sh Fld Def Matches
Odense (6 Seasons)1 League87.0
Toulouse (3 Seasons)2 Leagues78.81832.32146571465190.241402201
Haugesund (3 Seasons)1 League65.2
Austin (1 Season)1 League5.491.6690000010.18100000
Danish Superliga (6 Seasons)87.0
Eliteserien (3 Seasons)65.2
Ligue 1 (2 Seasons)42.2781.85603383170.17600100
Ligue 2 (1 Season)36.61052.878624634120.33802101
MLS (1 Season)5.491.6690000010.18100000

Defensive Actions: Domestic Leagues

Defensive Actions: Domestic Leagues Table
Tackles Challenges Blocks
Season Age Squad Country Comp LgRank 90s Tkl TklW Def 3rd Mid 3rd Att 3rd Tkl Att Tkl% Lost Blocks Sh Pass Int Tkl+Int Clr Err Matches
2013-201418Odensedk DEN1. Danish Superliga8th0.2
2014-201519Odensedk DEN1. Danish Superliga9th18.6Matches
2015-201620Odensedk DEN1. Danish Superliga7th15.0Matches
2016-201721Odensedk DEN1. Danish Superliga8th27.300Matches
2017-201822Odensedk DEN1. Danish Superliga10th19.400Matches
2018-201923Odensedk DEN1. Danish Superliga5th6.5Matches
201923Haugesundno NOR1. Eliteserien7th28.54234Matches
202024Haugesundno NOR1. Eliteserien9th26.74741Matches
202125Haugesundno NOR1. Eliteserien11th10.01615Matches
2021-202226Toulousefr FRA2. Ligue 21st36.66540213113326251.6303062440105460Matches
2022-202327Toulousefr FRA1. Ligue 113th25.1713836278436764.2243562936107482Matches
2023-202428Toulousefr FRA1. Ligue 111th17.2181287391752.983213191937380Matches
202428Austinus USA1. MLS18th5.41498516966.7392772170Matches
12 Seasons4 Clubs5 Leagues236.41682047370259015558.16510627791922701392
Country Comp LgRank 90s Tkl TklW Def 3rd Mid 3rd Att 3rd Tkl Att Tkl% Lost Blocks Sh Pass Int Tkl+Int Clr Err Matches
Odense (6 Seasons)1 League87.0000
Toulouse (3 Seasons)2 Leagues78.8154906565248414657.562972572952491322
Haugesund (3 Seasons)1 League65.2105900
Austin (1 Season)1 League5.41498516966.7392772170
Danish Superliga (6 Seasons)87.0000
Eliteserien (3 Seasons)65.2105900
Ligue 1 (2 Seasons)42.28950443411528461.93267194855144862
Ligue 2 (1 Season)36.66540213113326251.6303062440105460
MLS (1 Season)5.41498516966.7392772170

Possession: Domestic Leagues

Possession: Domestic Leagues Table
Touches Take-Ons Carries Receiving
Season Age Squad Country Comp LgRank 90s Touches Def Pen Def 3rd Mid 3rd Att 3rd Att Pen Live Att Succ Succ% Tkld Tkld% Carries TotDist PrgDist PrgC 1/3 CPA Mis Dis Rec PrgR Matches
2013-201418Odensedk DEN1. Danish Superliga8th0.2
2014-201519Odensedk DEN1. Danish Superliga9th18.6Matches
2015-201620Odensedk DEN1. Danish Superliga7th15.0Matches
2016-201721Odensedk DEN1. Danish Superliga8th27.3Matches
2017-201822Odensedk DEN1. Danish Superliga10th19.4Matches
2018-201923Odensedk DEN1. Danish Superliga5th6.5Matches
201923Haugesundno NOR1. Eliteserien7th28.5Matches
202024Haugesundno NOR1. Eliteserien9th26.7Matches
202125Haugesundno NOR1. Eliteserien11th10.0Matches
2021-202226Toulousefr FRA2. Ligue 21st36.62788686371336837562788623658.12641.9167785614025101701758191837276Matches
2022-202327Toulousefr FRA1. Ligue 113th25.1185594457936477331855512752.91631.41269695232175956940171146127Matches
2023-202428Toulousefr FRA1. Ligue 111th17.2111956274533320371119241458.3833.37023760165730279181066396Matches
202428Austinus USA1. MLS18th5.4311139115765103116350.0350.016210004188121518615Matches
12 Seasons4 Clubs5 Leagues236.4607323114592962169913660731438055.95337.1381020273931719815437117513832514
Country Comp LgRank 90s Touches Def Pen Def 3rd Mid 3rd Att 3rd Att Pen Live Att Succ Succ% Tkld Tkld% Carries TotDist PrgDist PrgC 1/3 CPA Mis Dis Rec PrgR Matches
Odense (6 Seasons)1 League87.0
Toulouse (3 Seasons)2 Leagues78.8576221813682805163412657621377756.25036.5364819273889919015335116463646499
Haugesund (3 Seasons)1 League65.2
Austin (1 Season)1 League5.4311139115765103116350.0350.016210004188121518615
Danish Superliga (6 Seasons)87.0
Eliteserien (3 Seasons)65.2
Ligue 1 (2 Seasons)42.229741507311469797702974754154.72432.0197110712487489831858271809223
Ligue 2 (1 Season)36.62788686371336837562788623658.12641.9167785614025101701758191837276
MLS (1 Season)5.4311139115765103116350.0350.016210004188121518615

Playing Time: Domestic Leagues

Playing Time: Domestic Leagues Table
Playing Time Starts Subs Team Success Team Success (xG)
Season Age Squad Country Comp LgRank MP Min Mn/MP Min% 90s Starts Mn/Start Compl Subs Mn/Sub unSub PPM onG onGA +/- +/-90 On-Off onxG onxGA xG+/- xG+/-90 On-Off Matches
2013-201418Odensedk DEN1. Danish Superliga8th219100.60.202
2014-201519Odensedk DEN1. Danish Superliga9th271,6776256.518.617121031.332021-1-0.05+0.43Matches
2015-201620Odensedk DEN1. Danish Superliga7th191,3467145.315.0166301.421720-3-0.20-0.26Matches
2016-201721Odensedk DEN1. Danish Superliga8th302,4548285.227.32919101.152932-3-0.11+0.31Matches
2017-201822Odensedk DEN1. Danish Superliga10th221,7437960.519.42016231.412422+2+0.10-0.21Matches
2018-201923Odensedk DEN1. Danish Superliga5th125894918.26.55823726111.8368-2-0.31-0.37Matches
201923Haugesundno NOR1. Eliteserien7th292,5648895.028.5298828001.344134+7+0.25+0.25Matches
202024Haugesundno NOR1. Eliteserien9th282,4018688.926.7288625001.293645-9-0.34+0.57Matches
202125Haugesundno NOR1. Eliteserien11th109009033.310.0109010001.80157+8+0.80+1.15Matches
2021-202226Toulousefr FRA2. Ligue 21st383,2918796.236.6388729002.087833+45+1.23-1.5667.929.7+38.1+1.04-0.80Matches
2022-202327Toulousefr FRA1. Ligue 113th272,2578466.025.126861812921.373635+1+0.04+0.5836.135.1+1.0+0.04+0.47Matches
2023-202428Toulousefr FRA1. Ligue 111th241,5446450.517.21975852421.211921-2-0.120.0020.422.0-1.6-0.09+0.28Matches
202428Austinus USA1. MLS18th74897016.05.4676213400.865500.00+0.328.56.9+1.6+0.29+0.96Matches
12 Seasons4 Clubs5 Leagues27521,2747754.6236.4243851763226211.44326283+43+0.18+0.34132.993.8+39.2+0.47+0.94
Country Comp LgRank MP Min Mn/MP Min% 90s Starts Mn/Start Compl Subs Mn/Sub unSub PPM onG onGA +/- +/-90 On-Off onxG onxGA xG+/- xG+/-90 On-Off Matches
Odense (6 Seasons)1 League1127,8287043.787.08782562526171.3796103-7-0.08-0.06
Toulouse (3 Seasons)2 Leagues897,0928071.678.883845562541.6313389+44+0.56+0.72124.486.8+37.6+0.48+0.77
Haugesund (3 Seasons)1 League675,8658872.465.2678863001.399286+6+0.09+0.49
Austin (1 Season)1 League74897016.05.4676213400.865500.00+0.328.56.9+1.6+0.29+0.96
Danish Superliga (6 Seasons)1127,8287043.787.08782562526171.3796103-7-0.08-0.06
Eliteserien (3 Seasons)675,8658872.465.2678863001.399286+6+0.09+0.49
Ligue 1 (2 Seasons)513,8017558.742.245812662541.295556-1-0.02+0.2856.657.1-0.5-0.01+0.38
Ligue 2 (1 Season)383,2918796.236.6388729002.087833+45+1.23-1.5667.929.7+38.1+1.04-0.80
MLS (1 Season)74897016.05.4676213400.865500.00+0.328.56.9+1.6+0.29+0.96

Miscellaneous Stats: Domestic Leagues

Miscellaneous Stats: Domestic Leagues Table
Performance Aerial Duels
Season Age Squad Country Comp LgRank 90s CrdY CrdR 2CrdY Fls Fld Off Crs Int TklW PKwon PKcon OG Recov Won Lost Won% Matches
2013-201418Odensedk DEN1. Danish Superliga8th0.200
2014-201519Odensedk DEN1. Danish Superliga9th18.640Matches
2015-201620Odensedk DEN1. Danish Superliga7th15.01011Matches
2016-201721Odensedk DEN1. Danish Superliga8th27.32002400000000Matches
2017-201822Odensedk DEN1. Danish Superliga10th19.43001700000000Matches
2018-201923Odensedk DEN1. Danish Superliga5th6.52000Matches
201923Haugesundno NOR1. Eliteserien7th28.55003530211534420Matches
202024Haugesundno NOR1. Eliteserien9th26.73003349112641470Matches
202125Haugesundno NOR1. Eliteserien11th10.0000121233815160Matches
2021-202226Toulousefr FRA2. Ligue 21st36.651060474914040020218333052.4Matches
2022-202327Toulousefr FRA1. Ligue 113th25.15112832642363800016523971.9Matches
2023-202428Toulousefr FRA1. Ligue 111th17.22001720130191200091221756.4Matches
202428Austinus USA1. MLS18th5.4100922679000263350.0Matches
12 Seasons4 Clubs5 Leagues236.4332124619219448192204020500815957.9
Country Comp LgRank 90s CrdY CrdR 2CrdY Fls Fld Off Crs Int TklW PKwon PKcon OG Recov Won Lost Won% Matches
Odense (6 Seasons)1 League87.012005200000000
Toulouse (3 Seasons)2 Leagues78.8122110599111639590020474785658.2
Haugesund (3 Seasons)1 League65.280080916279901050
Austin (1 Season)1 League5.4100922679000263350.0
Danish Superliga (6 Seasons)87.012005200000000
Eliteserien (3 Seasons)65.280080916279901050
Ligue 1 (2 Seasons)42.271145527725550000256452663.4
Ligue 2 (1 Season)36.651060474914040020218333052.4
MLS (1 Season)5.4100922679000263350.0

Player Club Summary

About FBref.com

FBref.com launched (June 13, 2018) with domestic league coverage for England, France, Germany, Italy, Spain, and United States. Since then we have been steadily expanding our coverage to include domestic leagues from over 40 countries as well as domestic cup, super cup and youth leagues from top European countries. We have also added coverage for major international cups such as the UEFA Champions League and Copa Libertadores.

FBref is the most complete sources for women's football data on the internet. This includes the entire history of the FIFA Women's World Cup as well as recent domestic league seasons from nine countries, including advanced stats like xG for most of those nine.

In collaboration with Opta, we are including advanced analytical data such as xG, xA, progressive passing, duels and more for over twenty competitions. For more information on the expected goals model and which competitions have advanced data, see our xG explainer.

Note that player records are likely not complete for their careers. Players may come from or move to leagues we don't currently cover. This issue will go down over time, as we add new leagues and seasons. We will never in the future have less data than we do today.

You can sign up to receive an e-mail when new countries and features launch.

For more information, see our Launch Blog Post, the overall leagues/competition page with details on leagues and seasons we include, or our About Page. Let us know if you find an issue or have a suggestion.

FBref is one of seven Sports-Reference.com sites.