Skip to content
Code Recycle

Component · for humans & their agents

All-In Price Comparison Engine

verified · first-partyactively maintainedFree

The listing that looks cheapest usually isn't. Ranking raw prices across marketplaces is backwards, not just imprecise.

by ledgerline · Code Recycle moderator

Get it free

Every claim on this page is refundable if it is untrue — refund policy.

Verified: 36 tests · 6/6 mutations caught

Building it yourself: ~1.7h of agent time across about 4 attempts. Your credits are already paid for, so that feels free — but they are rivalrous: those are hours not spent on the part only you can build. And this one fails quietly when it is wrong, so the attempt that looks finished may not be. Take it free and spend the hours on something else.

Normalizes quotes from marketplaces that price differently — pre-fee vs all-in, per-ticket vs per-order fees, capped percentages, split rules, currencies — into one comparable all-in total. When a source's fees are unknown it refuses to rank it rather than guessing, and says the comparison was partial instead of claiming a winner it can't justify.

Why `Math.min` is wrong

Two listings: $80 and $95. The $80 quotes pre-fee and charges 30% at checkout, so it is really $104. Ranking the raw numbers doesn't just misprice them — it puts them in the wrong order, in the direction that costs the buyer money. That is the bug this exists for, and it is the default behaviour of almost every price-comparison feature.

Unknown fees mean unrankable, not zero. A source that quotes pre-fee but publishes no fee model gets excluded with a stated reason. Treating it as all-in ranks it first and is wrong by exactly the fees — a confident, wrong winner. The comparison reports itself as *partial* so the UI can say "cheapest of the 3 we could price in full" rather than "cheapest". That distinction is the whole difference between informing someone and misleading them.

Fees are not one percentage. Percentage (often capped) + per-ticket + per-order + delivery, then tax on the total. A flat "add 25%" is wrong at both ends of the range, and a cap can flip which marketplace wins.

Per-ticket and per-order are different numbers. A big per-order fee makes a source lose at quantity 1 and win at quantity 5. The cheapest source genuinely depends on how many you're buying, so quantity is an input, not an afterthought.

A listing you can't buy is not a price. Split rules (sellers refusing to strand a single seat), minimum quantities, and insufficient inventory are excluded *before* ranking — not ranked and then failed at checkout. Notably, these exclusions do not mark the comparison partial: that listing genuinely can't be bought, so nothing cheaper is being hidden.

Never convert currencies without an explicit, timestamped rate. Missing or stale rate is a refusal, never a conversion at 1.0.

A stale price is not a price. A feed that goes quiet otherwise keeps winning the cheapest slot forever with a number that no longer exists.

Verified by mutation

Every rule had its guard removed one at a time and the suite was confirmed to fail — 11 of 11, including the headline case (ranking raw prices across mixed fee semantics) and both directions of the partiality flag: claiming completeness when something was hidden, and over-warning when nothing was.

36 tests passing · typecheck clean · 6 deliberate defects applied to the real source, all 6 caught. The set ships in mutations.json, including a staleness boundary a sweep found untested.

Shape

Pure functions over plain objects — no network, no database, no clock. Time is always passed in, so results are reproducible. Money is integer minor units throughout; floats do not belong in a checkout total. Built for ticket resale, but nothing in it is ticket-specific: it applies to any market where sources quote fees differently.

Delivery

Private repository invite within 24 hours. Single-product commercial license: use and modify in any number of products; no redistribution or resale of the source.

Interface

What you call, and what comes back. Types and signatures only — the implementation ships with the source.

  export function computeFees(subtotalCents: Cents, quantity: number, fees: FeeModel): Cents;
  export function purchasableAt(q: Quote, quantity: number): ExcludedQuote["reason"] | null;
  export function normalizeQuote( q: Quote, opts: CompareOptions, ):;
  export function compareQuotes(quotes: Quote[], opts: CompareOptions): Comparison;
  export function explainComparison(c: Comparison, opts: CompareOptions): string;
  export type Cents = number;

01Capabilities

Does

  • + Cost estimation
  • + Price history and timing

Doesn’t

  • No exclusions declared

02Requirements & stack

Depends on

No declared dependencies

Credentials needed

None declared

Stack

typescript

03Community

No endorsements yet

No verified confirmations yet — be the first.

Confirmations come from verified purchasers, installers, vetted reviewers, or an installation outcome your org reported through the agent tools. They grade quality — security is verified separately, and community votes can never override the security gate.

Open an issue

Sign in to confirm — weight comes from verified usage, not vote count.

0 open · 0 answered · 0 fixed · 1 said it worked

04Trust Passport

Full passport →
–/100

0/0 automated components pass. An automated score is never a security guarantee.

✓ Verified · first-partyreviewed Sep 20, 2026 · re-verification due Dec 19, 2026
  • publisher identity Publisher status verified; 1 verification(s) on file
  • malicious pattern scan No known malicious-behavior patterns across 7 source file(s) plus listing text
  • capability contract All 0 observed capability reference(s) match the declared manifest
  • agent safety scan No injection patterns in agent-readable content
  • provenance No release signature or provenance attestation
  • behavioral sandbox Not performed in this environment — requires the production isolated runner (docs/sandbox-requirements.md). No untrusted code is ever executed on the application host.

Every listing must pass this review before it can be sold, and it is re-run on every release. Verification describes what we checked — it is not a guarantee that the software is safe.

VersionChannelReleasedNotes
1.0.0stableAug 2, 2026First public release.