lgtm
This commit is contained in:
parent
2efa4d9f47
commit
5e73287eaf
99 changed files with 6392 additions and 1462 deletions
|
|
@ -16,6 +16,26 @@ LATEST_COMPLETE_YEAR = CURRENT_YEAR - 1
|
|||
_today = date.today()
|
||||
CURRENT_FRAC_YEAR = _today.year + (_today.month - 1) / 12
|
||||
|
||||
# The two columns price estimation contributes to properties.parquet, kept here
|
||||
# so both the producer (estimate) and the joiner (join_price_estimates) agree.
|
||||
ESTIMATE_COLUMNS = ["Estimated current price", "Est. price per sqm"]
|
||||
|
||||
# Natural join key from estimates back onto properties: postcode plus the
|
||||
# coalesced register/EPC address. This is unique and non-null on the deduped
|
||||
# dwelling universe (see property_base._dedupe_collapsed_properties), so it maps
|
||||
# estimates 1:1 onto properties regardless of row order — estimates are computed
|
||||
# from a separate price_inputs.parquet, so a positional key would not line up.
|
||||
JOIN_ADDRESS = "_join_address"
|
||||
JOIN_KEYS = ["Postcode", JOIN_ADDRESS]
|
||||
|
||||
|
||||
def join_address_expr() -> pl.Expr:
|
||||
"""The coalesced address half of the natural key, aliased to JOIN_ADDRESS."""
|
||||
return pl.coalesce("Address per Property Register", "Address per EPC").alias(
|
||||
JOIN_ADDRESS
|
||||
)
|
||||
|
||||
|
||||
# Cap on log(index_ratio) to prevent wild estimates from thin sectors
|
||||
MAX_LOG_ADJUSTMENT = 3.0 # ~20x max price change
|
||||
TERRACE_TYPES = [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue