Ellenbrook Suburb Profile

Is Ellenbrook a good suburb? Discover why Ellenbrook, WA, 6069 is the country’s most awarded planned development – and your ideal community.
  • $700k

    Median House Price

  • $695

    Median Weekly Rental Price

  • 24.7k

    Population

  • 8.9k

    Total Dwellings

    Ellenbrook, in Western Australia’s world-renowned Swan Valley region, is a community unlike any other. Over 30 years of thoughtful planning and development have seen this area transform from a quarry to a flourishing suburb. Comprised of eight villages and the vibrant Ellenbrook Town Centre, with convenient connections to Perth CBD, this master-planned community offers affordable living in a place you’ll love.

    Today, Ellenbrook is Australia’s most-awarded planned development; a connected, convenient, and comfortable place to call home.

    Key Statistics

    • Ellenbrook post code: 6069
    • Local Government: City of Swan
    • Land area: 13.1 km²
    • Freestanding houses: 89.3%
    • Medium density housing: 9.0%
    • High density housing: 1.6%

    Demographic highlights

      Ellenbrook Greater Perth
    Median Age 32 37
    Median weekly household income $1,846 $1,865
    Households with mortgage 58.2% 41.9%
    Households renting 24.6% 26.6%
    Family households 78.1% 71.5%
    Couples with children 51.4% 45.7%
    Persons born overseas 36.9% 40.5%
    Diploma or University qualification 22.5% 16.9%
    Trade qualification (Certificate III or IV) 22.5% 16.9%
    Unemployment rate 6.0% 5.3%

    Demographic Data Source - ABS Census 2021

    Byford Investment and expansion

    Byford’s population has nearly doubled in a decade, from around 15,000 people in 2016* to an estimated 24,500 in 2025**. It’s estimated that the population will double again to over 48,000 people by 2046**. To meet the transport needs of this rapidly expanding area, the State and Federal governments are investing heavily in infrastructure.

    As part of the $885 million Metronet program, the Armadale rail line is being extended to Byford. The station is scheduled to open in 2025. Roads are also getting a major upgrade, with $775 million being invested to extend the Tonkin Highway. Byford is already well connected, being an easy 15-minute drive from the Freeway which spans Perth from north to south. With an investment of over $1.5 billion in transportation links, it’s only going to get even better.

    *ABS Census All Persons QuickStats 
    **forecast.id as of August 2025

    Frequently Asked Questions

    Looking to buy land in Ellenbrook?

    Ellenbrook is an established and connected community in Perth’s rapidly developing north-east region. This highly-awarded development is designed to offer families, young couples, and individuals a safe and welcoming place to call home. Discover Ellenbrook’s final land releases. 

    System.Web.HttpException (0x80004005): Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'. ---> System.NullReferenceException: Object reference not set to an instance of an object.
       at Umbraco.Core.PublishedContentExtensions.Children(IPublishedContent content, String culture) in D:\a\1\s\src\Umbraco.Core\PublishedContentExtensions.cs:line 130
       at Umbraco.Web.PublishedContentExtensions.ChildrenOfType(IPublishedContent content, String contentTypeAlias, String culture) in D:\a\1\s\src\Umbraco.Web\PublishedContentExtensions.cs:line 1104
       at ASP._Page_Views_Grid_lotCarousel_Index_cshtml.Execute() in C:\inetpub\wwwroot\lwp-umbraco8-p2\Views\Grid\lotCarousel\Index.cshtml:line 12
       at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
       at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
       at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
       at Umbraco.Web.Mvc.ProfilingView.Render(ViewContext viewContext, TextWriter writer) in D:\a\1\s\src\Umbraco.Web\Mvc\ProfilingView.cs:line 25
       at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
       at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_1.<BeginInvokeAction>b__1(IAsyncResult asyncResult)
       at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
       at System.Web.Mvc.Controller.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState)
       at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
       at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
       at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
       at System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag)
       at System.Web.Mvc.MvcHandler.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState)
       at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
       at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
       at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.<>c__DisplayClass5_0.<Wrap>b__0()
       at System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap[TResult](Func`1 func)
       at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride)
       at System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage, VirtualPath path, VirtualPath filePath, String physPath, Exception error, String queryStringOverride)
       at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage)
       at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm)
       at System.Web.Mvc.Html.ChildActionExtensions.ActionHelper(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues, TextWriter textWriter)
       at System.Web.Mvc.Html.ChildActionExtensions.Action(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues)
       at ASP._Page_app_plugins_doctypegrideditor_render_doctypegrideditor_cshtml.<>c__DisplayClass3_0.<Execute>b__0() in C:\inetpub\wwwroot\lwp-umbraco8-p2\app_plugins\doctypegrideditor\render\doctypegrideditor.cshtml:line 53
       at Umbraco.Core.Cache.FastDictionaryAppCacheBase.<>c__DisplayClass21_0.<GetSafeLazy>b__0() in D:\a\1\s\src\Umbraco.Core\Cache\FastDictionaryAppCacheBase.cs:line 285
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at Umbraco.Core.Cache.WebCachingAppCache.GetInternal(String key, Func`1 factory, Nullable`1 timeout, Boolean isSliding, CacheItemPriority priority, CacheItemRemovedCallback removedCallback, String[] dependentFiles) in D:\a\1\s\src\Umbraco.Core\Cache\WebCachingAppCache.cs:line 190
       at Umbraco.Core.Cache.WebCachingAppCache.Get(String key, Func`1 factory, Nullable`1 timeout, Boolean isSliding, CacheItemPriority priority, CacheItemRemovedCallback removedCallback, String[] dependentFiles) in D:\a\1\s\src\Umbraco.Core\Cache\WebCachingAppCache.cs:line 41
       at Umbraco.Core.Cache.WebCachingAppCache.Get(String key, Func`1 factory) in D:\a\1\s\src\Umbraco.Core\Cache\WebCachingAppCache.cs:line 35
       at Umbraco.Core.Cache.DeepCloneAppCache.Get(String key, Func`1 factory) in D:\a\1\s\src\Umbraco.Core\Cache\DeepCloneAppCache.cs:line 47
       at ASP._Page_app_plugins_doctypegrideditor_render_doctypegrideditor_cshtml.Execute() in C:\inetpub\wwwroot\lwp-umbraco8-p2\app_plugins\doctypegrideditor\render\doctypegrideditor.cshtml:line 49
       at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
       at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
       at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
       at Umbraco.Web.Mvc.ProfilingView.Render(ViewContext viewContext, TextWriter writer) in D:\a\1\s\src\Umbraco.Web\Mvc\ProfilingView.cs:line 25
       at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
       at ASP._Page_Views_Partials_grid_editors_base_cshtml.Execute() in C:\inetpub\wwwroot\lwp-umbraco8-p2\Views\Partials\grid\editors\base.cshtml:line 20

    Subscribe

    Please enter your details to be kept up to date with all the latest news and updates from Satterley.

    Thank you for subscribing.