Log-linear pricing model, equipment TUI columns, and municipality formatting #3

Merged
maks merged 6 commits from feat/log-linear-pricing-and-tui-equipment-columns into master 2026-04-03 11:57:50 +02:00
Owner
No description provided.
- Extract FilterState.matches_range() to deduplicate the 6-check
  min/max filter blocks that were copy-pasted in _refresh_listings
  and _refresh_summary
- Simplify bangers filter from double-negative to readable form
- Replace 9× f-string interpolation of is_new in get_grouped_by_model
  with a WITH base CTE that defines the flag once
- Remove dead return True / if added: in _scrape_and_insert /
  _backfill_process_items (_scrape_and_insert always succeeded)
- any([...]) → any((...)) in FilterState.is_active()

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Log-linear pricing model, equipment TUI columns, and municipality formatting
All checks were successful
CI / Format Check (pull_request) Successful in 3s
CI / Lint (pull_request) Successful in 19s
CI / Tests (pull_request) Successful in 8s
4ecf6352c0
- Switch estimate_prices to a log-linear hedonic model (OLS on log price),
  ensuring estimates are always positive and depreciation is exponential
- Introduce effective_age (mileage-adjusted calendar age) as the single
  depreciation feature, replacing separate age + km terms
- Fetch all listings (not just active) for pricing regression to maximise
  training data
- Add equipment indicator columns to the TUI table (cruise control, adaptive
  cruise, Bluetooth, parking assist)
- Extract municipality from varied seller_location formats with _extract_municipality
- Fix test_returns_active_only → test_returns_all_listings to match new DB behaviour

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add Last Seen and Days Up columns to listings TUI table
All checks were successful
CI / Format Check (pull_request) Successful in 2s
CI / Lint (pull_request) Successful in 18s
CI / Tests (pull_request) Successful in 7s
1052b535f4
Shows when a listing was last seen active and how many days it stayed up,
making it easy to gauge how quickly adverts sell.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add click-to-sort on all DataTable columns
All checks were successful
CI / Format Check (pull_request) Successful in 3s
CI / Lint (pull_request) Successful in 18s
CI / Tests (pull_request) Successful in 6s
8eef8393e1
Both the listings and summary tables now sort on header click, toggling
asc/desc on repeated clicks. Sort arrow (▲/▼) shown on active column.
Listings default to first_seen_at desc; summary to make asc.

Also bumps pylint max-module-lines to 1200 in pyproject.toml to accommodate
the additional sort-key definitions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fix location sort to use displayed municipality name
All checks were successful
CI / Format Check (pull_request) Successful in 4s
CI / Lint (pull_request) Successful in 18s
CI / Tests (pull_request) Successful in 5s
5df0c059ec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add CLAUDE.md with architecture and development guide
All checks were successful
CI / Format Check (pull_request) Successful in 4s
CI / Lint (pull_request) Successful in 19s
CI / Tests (pull_request) Successful in 6s
0d3dfa0e74
Documents module responsibilities, data flow, key patterns, code quality
requirements, testing conventions, and a feature-addition checklist to
accelerate future development and onboarding.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
maks merged commit c00cce05d3 into master 2026-04-03 11:57:50 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
maks/avtonet-monitor!3
No description provided.