cost-vs-price-margin
white
#088 / 601
NAME
cost-vs-price-margin — White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.
SYNOPSIS
id cost-vs-price-margin
tier white
section §6. White — atomic tools (142 baseline, 149 post-matrix)
trigger operator-commanded
tools cortex_query, list_listings / list_orders
source carry-forward
DESCRIPTION
Margin in dollars and percent per listing. The honest 'am I making money on this' answer — Cortex knows your cost basis.
White read-cart in the 'Performance ratios (16)' group. Operator-commanded data surface in the Analysis tab.
MECHANISM
;;~ title "Cost vs price · margin" ;;~ author "lacuna" ;;~ version 1 ;;~ mode analysis ;;~ flavor white ;;~ id cost-vs-price-margin ;;~ touches () ;;~ summary "Gross margin per listing." ;; Gross margin per listing. ;; ;; Read-only cart, architect-shape. The verb call lives inside (act ...) ;; with a SYMBOL on-result. The driver intercepts, makes the real Etsy ;; request, threads the response into ctx via 'last-result, then jumps ;; to the named result handler. (cart 'cost-vs-price-margin '((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 'cost-vs-price-margin) '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 metric value)) (done))))))
EXAMPLES
Example forthcoming —
docs/automations/examples.json entry editable in place.TIER
white
atomic · free · operator-commanded
FITNESS
Ready
Fits any shop today — this one has no sample-size floor.
SEE ALSO
HISTORY
canonical source: curator/docs/AUTOMATIONS-CANONICAL.md · §6-white-atomic-tools-142-baseline-149-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)