Lacuna/Labs
property-completeness-audit
pink
#204 / 601

NAME

property-completeness-audit — Active-listings property fill rate (Etsy taxonomy attrs); surface anything under 80%.

SYNOPSIS

id property-completeness-audit tier pink section §7. Pink — Sakura local (65 baseline, 131 post-matrix) trigger cron:daily tools etsy/listings source new

DESCRIPTION

Walk your data, check one predicate, surface the rows that fail. Pure SQL-shaped logic — no LLM, no API call. Runs on cron and shows up in the Analysis tab as a table.

Active-listings property fill rate (Etsy taxonomy attrs); surface anything under 80%.

MECHANISM

PREfetchGUARDtier: pinkACTperformRESULTrenderON-ERRretry / esc
;;~ title    "Property completeness audit"
;;~ author   "lacuna"
;;~ version  1
;;~ mode     automation
;;~ flavor   pink
;;~ id       property-completeness-audit
;;~ trigger  cron:daily
;;~ touches  ()
;;~ summary  "Daily: every active listing's required property fields (taxonomy attrs), surface the gaps."

;; Pulls active listings and scores their taxonomy-attribute fill rate
;; (required attrs declared / required attrs total). Anything under
;; 80% lands in the surface as an attention card. Numeric work; no LLM.

(cart 'property-completeness-audit
  '((author    . "lacuna")
    (version   . 1)
    (read-only . #t)))

(define (start ctx)
  (let ((connected (ctx-get 'shop-connected ctx)))
    (cond
      ((not connected) (escalate 'shop-not-connected null))
      (else            (next 'fetch ctx)))))

(define (fetch ctx)
  (act 'etsy/listings (list 'active 'with-taxonomy-attrs) 'render))

(define (render ctx)
  (let ((rows (ctx-result ctx)))
    (cond
      ((null? rows)              (escalate 'no-data null))
      ((eq? rows 'rate-limited)  (after 30 'fetch ctx))
      (else                      (begin
                                   (table rows '(listing-id title attrs-filled attrs-total))
                                   (done))))))

source: curator-web/src/scheme/carts/etsy/property-completeness-audit.sks · 36 lines

EXAMPLES

Example forthcoming — docs/automations/examples.json entry editable in place.

TIER

pink
Sakura local 8B · free · on-device

FITNESS

Ready

Fits any shop today — this one has no sample-size floor.

SEE ALSO

HISTORY

canonical source: curator/docs/AUTOMATIONS-CANONICAL.md · §7-pink-sakura-local-65-baseline-131-post-matrix
last regenerated: 2026-06-05 20:31 UTC (mechanical — edits land in the MD or sidecars, not here)

KNOWN BUGS

(none recorded — flag in AUTOMATIONS-CANONICAL.md or open an issue against the cart file)