Wastehero
WasteHero · WasteOS

You set the rules. Every price follows.

Products & Pricing is the catalog and pricing engine inside WasteOS. Describe what you sell once — container services, recurring services, one-off jobs, add-ons — write your price rules the way your tariff sheet already reads, and every quote, ticket, agreement, and invoice line on the platform resolves from the same place.

wasteos · price check — watch a price resolve
Request
Candidate rules — blank means any, contradiction disqualifies
RuleCustomer typeZonePriceScore
EveryoneAnyAny45.000
North UrbanAnyNorth Urban52.001
North Urban · Business  winsBusinessNorth Urban61.502
Harbor DistrictAnyHarbor District48.00×
Resolved price DKK 61.50 per pickup Most specific wins — score 2
Real product. Screens on this page are faithful recreations of the live UI with a demonstration catalog — see the note at the end.
01A catalog you can read

Your catalog is what you sell. Not every combination of it.

Pricing tools in this industry love to explode: every waste type times every size times every frequency becomes its own “product”, and adding one glass container means scrolling a list of thousands. Products & Pricing keeps the catalog at the size of your actual offer — a product is the thing you would say on the phone: Glass 240L. Container delivery. An extra pickup.

Four product types keep the list honest, and each type carries its own form: a container service knows its physical facts; a one-off job doesn’t ask for any of them.

  • The type decides the form. A container product always knows its six physical facts — waste type, container size, pickup schedule, weight, volume, billing rhythm — so no half-described container ever reaches a route.
  • Portal decisions live on the product. Visible in the customer portal, price shown or hidden, self-service ordering on or off — switches on the product, not a separate system.
  • A working table, not a viewer. Sort, segment by type, filter by fraction, container or pickup schedule — and import or export the whole catalog as a file.
ProductsPrice ListsPrice CheckZonesSetup
AllContainersRecurringOne-offAdd-ons Search Reset all ⇪ Export ⇫ Import + Product
Product nameProduct typeWaste fractionContainer typeBase feeStatus
Glass 240LContainer CollectionGlass240 lDKK 60 per monthActiveView
Glass 1100LContainer CollectionGlass1100 lDKK 190 per monthActiveView
Textile 240LContainer CollectionTextile240 lDKK 70 per monthActiveView
Batteries 120LContainer CollectionBatteries120 lDKK 120 per monthActiveView
Wood 9 m³Container CollectionWood9 m³DKK 900 per monthActiveView
Bulky Waste CollectionOne-off ServicesNo dataNo dataDKK 350.44ActiveView
Container DeliveryAdditional ServicesNo dataNo dataDKK 350ActiveView
Container CleaningAdditional ServicesNo dataNo dataDKK 200ActiveView
Extra PickupAdditional ServicesNo dataNo dataDKK 150ActiveView
The whole offer on one screen. Nine products — not nine thousand combinations — with type, fraction, container and status readable at a glance.
Self-Service Ordering Show Price in Portal
Container Collection
CATEGORY FIELDS
120 l
Batteries
Liters
A product knows its physical truth. The Container type locks the fields that matter, and the portal switches sit right on the product.
02Add a product in minutes

One question per step. No dead ends.

“What are you selling?” Four cards, in plain words. From there the wizard adapts: pick the waste type and it offers only the matching container types; weight and volume derive from the container itself. Anything missing along the way — a waste type, a container type, a pickup schedule — is created inline. You are never sent to another module to come back later.

The price step separates the two billing streams a container really has: a base fee billed per period, and a price per pickup that lands as a rule in your price list — where it can later vary by zone or customer type without touching the product. Add-ons skip the list entirely: they price on the product and charge alongside whatever they accompany.

The last step runs a live price check against the real engine before anything is created — in the product’s own words: “Verified with the same engine that prices real orders.”

The bar this flow is held to: an empty company to a priced, verified container product in under three minutes — without leaving the wizard and without a manual.
1What are you selling? 2Details 3Price 4Review
Pick what you are selling — this decides which details the product needs. You can always change details later.
Container service
A bin or container with collection — waste type, size and pickup schedule.
Recurring service
A charge billed on a schedule — like a subscription or rental fee.
One-off service
A single charge — like a delivery or replacement fee.
+Add-on service
An extra charged alongside another product — like an additional emptying.
Step one is a sentence. The four cards are the four product types — picking one shapes every step after it.
Price
60.00 DKK per month
45.00 per pickup
Standard price list — created automatically
iThis price will apply to all customers and zones. More specific prices (per zone, customer type…) can be added in the price list at any time.
The price step, honestly split. Base fee per period on the product; pickup price as a rule in the price list, applying to everyone until you sharpen it.
03Who pays what

One rule prices everyone. Until you say otherwise.

A price list is a set of rules: this product, for this slice of the world, costs this much. Leave a condition open and it reads “any” — so a single wildcard rule prices a product for everybody, and you add sharper rows only when reality demands them: a zone, a customer type, who holds the service responsibility.

That is how a real tariff already works — a base rate and its exceptions — and it is why the catalog stays short: differences in price never have to become new products.

  • Draft, scheduled, active. Give a list an effective date and it activates itself on the day — with an audit row that says so.
  • Rules with memory. Every price knows when it last changed and what it was before — and bulk adjustment reprices a whole selection in one move.
  • The same wizard, pre-aimed. “Add product to this list” opens the same guided flow with the list pre-selected.
Standard price list Active Bulk adjust Add price + New product
ProductCustomer typeZoneService responsibilityPriceLast changed
Glass 240LAnyAnyAnyDKK 45.00Jul 2, 2026
AnyNorth UrbanAnyDKK 52.00Jul 2, 2026
BusinessNorth UrbanAnyDKK 61.50Jul 14, 2026
Textile 240LAnyAnyAnyDKK 38.00Jul 2, 2026
Bulky Waste CollectionIndividualAnyAnyDKK 425.00Jul 15, 2026
A tariff as it is actually written. One wildcard rule for everyone, then the exceptions — a zone, a customer type — each just one more row under the same product.
04One engine decides

Most specific wins. Every time. Explainably.

When any part of WasteOS needs a price, the engine gathers the candidate rules for that product from the active price lists and scores them against the facts of the case — zone, customer type, service responsibility. A blank condition matches anything; a contradicting one disqualifies the row outright; the most specific surviving match wins. Ties break to the lower price, then the earlier rule — the same question always gets the same answer.

On top of the winning base, the engine layers the rest of your tariff, each as its own line: materials — part and material costs priced per unit and quantity; add-ons set to attach automatically; the service level’s surcharge, per-product overridable; and the date’s surcharge window — holiday, weekend, or seasonal, fixed or percentage.

When two surcharge windows match the same date, the larger applies and the smaller is reported as a warning — surcharges never silently stack. Small rule; whole class of billing disputes gone.
Resolving: Glass 240L
Facts of the case: zone North Urban · customer type Business · responsibility any
RuleCustomer typeZonePriceScore
EveryoneAnyAny45.000
North UrbanAnyNorth Urban52.001
North Urban · Business  winsBusinessNorth Urban61.502
Harbor DistrictAnyHarbor District48.00×
Base price — winning ruleDKK 61.50
Container lock — material DKK 25.00 × 1 pcs+ DKK 25.00
Summer Peak Surcharge period+ DKK 100.00
Resolved priceDKK 186.50
How a price is decided. Blank means any, contradiction disqualifies, most specific wins — then materials and surcharges are layered on, each an itemized line.
05Verify before you promise

Ask the price before a customer does.

Price Check runs the real engine, interactively — no order created, nothing persisted. Pick a product, a customer type, a zone, and read the answer as line items, not a mystery total. It is the same computation every other part of the platform makes, so what you verify here is what a customer would be charged.

It is also how surprises surface early: the example here is a genuine resolved preview from a development run — a 123.50 base rule plus a seasonal surcharge nobody typed into the check, exactly as the engine would price it in July.

  • Built into the wizard too. The review step runs the same check the moment a product is created — every product is born verified.
  • The winning rule shows its work. The breakdown carries the match score of the base rule and the reason behind every surcharge, line by line.
Inputs
Residual waste 240L
List base price: DKK 123.50
Individual
1
Any
Run simulation
Simulation result
Final simulated price
DKK 223.50
Base price score 0DKK 123.50
Summer Peak Surcharge period+ DKK 100.00
TOTALDKK 223.50
A real resolved preview. The seasonal surcharge surfaced itself — the check answers with everything the engine knows, not just what you remembered.
06Geography prices differently

The same product, priced across town.

Zones make geography a column in your tariff instead of a reason to clone products. Draw urban, suburban, rural, or fully custom areas on the map, and reference them from price rules — Glass 240L stays one product whether it is emptied downtown or twenty kilometres out.

  • Types organize; the zone prices. A rule matches the specific zone — urban or rural is classification, never a hidden pricing input.
  • Overlap checked as you draw, against the zones you already have.
  • Wildcards still apply. A rule with no zone prices every zone; the zoned rule wins only where it genuinely matches.
ZoneType
North UrbanUrban
Harbor DistrictCustom
Countryside WestRural
Ring SuburbsSuburban
North Urban Harbor District Countryside West Ring Suburbs
Zones, then rules. Areas are defined once and referenced from price rows — pricing follows the map without multiplying the catalog.
07From catalog to agreement

The price on an agreement is never stale.

When a container is ordered, the ticket arrives with the engine’s price already on it — a suggestion, not a verdict. The back office can accept or edit it, and an edit is recorded as exactly what it is: an override, with the engine’s original kept alongside.

From then on, the agreement doesn’t hoard a copy of the price — it resolves it from your active price lists when asked. Change the tariff and every agreement answers with the new truth the moment it applies. No snapshot rot, no reconciliation project.

  • Suggested, then decided. The engine proposes; a human confirms or overrides — and the record shows which happened.
  • Billing asks for a date. The agreement answers as of that date — price history included, so a backdated run bills what was true then.
  • One agreements table. New catalog agreements and legacy ones live side by side during migration — no second screen to check.
Add container — ticket
Rosenvej 14, Aarhus · Individual customer
Glass 240L
DKK 45.00 Engine price
9.6 kg
Glass — district north
iEdit the price to override it — the engine’s original stays on the ticket, and the change is recorded as an override. Completion creates the container and its agreement.
The order path. Engine price on the ticket, overrides recorded as overrides, and an agreement that keeps resolving — not remembering — its price.
08Set up once, governed always

Opinionated defaults. Auditable everything.

A new company opens the module already standing: the four standard product types and the standard service levels are seeded automatically, and the Standard price list creates itself with your first product — never empty, because a price list without anything in it helps nobody.

Everything structural lives behind one Setup page — product types with their locked field schemas, service levels, materials, surcharge rules, units, and History, the audit trail every entity writes to. In the product’s own words: “Products and prices work without any of this — add these when you need them.”

Seeded defaults never price anything on their own. A seeded service level carries no surcharge — nothing you didn’t type can silently change a customer’s price.
ProductsPrice ListsPrice CheckZonesSetup
Product Types
The building blocks of products: container, recurring, one-off and add-on types, and which fields each requires.
4 types
Service Levels
Optional speed tiers (express, same-day…) with surcharges on top of the base price.
4 levels
Materials
Reusable material and part cost lines (locks, liners…) you can attach to products.
2 materials
%Surcharge Rules
Date-based surcharges for holidays, weekends or seasons — applied automatically.
3 rules
#Units
The units prices are charged per (piece, kilogram, hour…). Standard reference data.
6 units
History
Every change to products and prices — who changed what, and when.
Audit trail
Setup as a place, not seven tabs. Structure lives here; the daily surfaces — products, price lists, price check — keep the tab bar.
09Fee schedules and price books

One model. Both sides of the tariff.

Municipal fee schedules and commercial price books are the same shape underneath: a base rate, its exceptions, and the discipline to show where every number came from. Products & Pricing speaks both dialects on the same engine.

For municipalities and public companies

  • Publish the fee schedule as data — product, zone, customer type — resolved the same way for every household
  • Self-service ordering in the portal against the same engine: the resolved price, never a hand-typed one
  • Every fee change on the record — drafts, scheduled activations, and per-entity history
  • Seasonal and holiday surcharges declared once, applied only while their window is live

For haulers and private operators

  • Price books per market: wildcard base rates with zone, customer-type and responsibility exceptions
  • Deliberate overrides for the deal that needs one — recorded as overrides, not silently edited rows
  • Materials itemized on every quote — locks, liners, transport lines priced per unit, not buried in the base
  • Base fee and per-pickup price kept apart, so operational pricing varies without touching subscriptions
10What you can do today

No export. No re-typing. No second system.

Pricing usually lives in a spreadsheet next to the operational system, and the two drift apart. Products & Pricing is a native part of WasteOS: the catalog you define here is what tickets order, what agreements bind to, what the portal shows, and what billing reads — one source of truth, resolved live.

Catalog

  • Four product types with locked, type-specific field schemas
  • Guided wizard with inline-create — waste types, container types, pickup schedules
  • Weight and volume derived from the container type, never re-typed
  • Import, export, sort, segment and filter the whole catalog

Price

  • Price lists with a draft → scheduled → active lifecycle — dated activation is automatic and audited
  • Wildcard rules across zone, customer type and service responsibility
  • Surcharge windows — fixed or percentage — for holidays, weekends and seasons
  • Materials per unit and quantity; bulk price adjustments across a list

Verify

  • Price Check: the real engine, interactively, as line items
  • Live price check on the wizard’s last step — every product born verified
  • Match scores and surcharge reasons printed on the breakdown

Sell

  • Engine-priced tickets with explicit, recorded overrides
  • Agreements that resolve their price at read time — as of any billing date
  • Portal visibility, price display and self-service ordering as product switches
  • Add-ons that attach automatically and price as their own line

Govern

  • Auto-seeded defaults that never price anything by themselves
  • History on every entity — who changed what, and when
  • Legacy agreements alongside new ones — migration without a cliff
One engine, every surfaceThe wizard’s check, Price Check, tickets and agreement billing run the same resolution.
Most specific winsBlank means any; contradiction disqualifies; ties break to the lower price, then the earlier rule.
Prices resolve, never rotAgreements answer as of the date asked — price history included.
Every change on the recordProducts, prices, lists and types write an audit trail — even automatic activation signs its work.

Bring your gnarliest tariff sheet.

The one with the exceptions to the exceptions. Watch it become a catalog, a price list, and a price check that answers in seconds.

30 minutes · your own tariff if you want · no slideware · no obligation.
Prefer email? hello@wastehero.io

Book your 30-minute walkthrough
Opens your email with everything pre-filled — nothing is sent behind your back.