Creating ApprovalMax Laptop Quotes
Creating ApprovalMax Laptop Quotes
Creating a skill file is not permission to create a live quote. Only act on an actual quote request.
TEXTpython scripts/calculate_markup.py --condition new --cost-ex-vat 800 --quantity 2 # -> unit cost, unit markup, unit selling price, extended selling price (all ex-VAT)
- Get/confirm the exact offer via
finding-business-laptops(re-verify price/stock on the live product page — never reuse an old quote's figures). - Compute customer unit price with the standing markup (or an explicit override).
- Open the ApprovalMax Quote form per
references/approvalmax-form.md; populate customer, line items, accounting fields. - Put supplier/cost/markup detail in Note for approvers, never in customer-facing fields.
- Resolve the £950+ insured-shipping line if applicable.
- Save as draft by default. Submit for approval only if asked. Report quote ID, state, and totals (mark provisional if anything unresolved).
Progress:
- Identify selected offer (recommendation vs. user-specified) — do not infer quantity/customer/price from a shopping budget
- Re-verify offer on live product page: price, currency, VAT basis, delivery basis, stock for requested quantity, date checked
- Confirm customer identity, quantity, pricing rule (standing markup or override), and any setup/reference/date/expiry instructions
- Calculate selling price with
scripts/calculate_markup.pyor the explicit override rule; keep cost and price bases distinct - Determine insured-shipping applicability (>£950) and resolve tariff/basis ambiguity, or flag as open
- Open ApprovalMax, confirm organization + Quote form type, inspect fresh UI state
- Populate customer, date, reference, title/summary, expiry (quote date + 14 days if using default terms)
- Populate line item(s): description, qty, unit price, account, tax rate, billing type
- Add shipping-with-insurance line if required
- Write approver notes block per product (supplier, link, condition, checked date, cost, delivery, pricing calc)
- Verify all fields and totals before saving
- Save draft (default) or Submit for approval (only if requested); verify resulting state
- Report quote ID/customer, qty, subtotal, tax, total, saved/submitted state, unresolved issues
Ask one concise round of questions for essential gaps (customer identity, quantity, pricing override, expiry/reference) while continuing independent offer verification in parallel.
| Condition | Markup | Formula |
|---|---|---|
| REFURBISHED | £150 flat | cost ex-VAT + £150 |
| NEW | max(12%, £120) | cost ex-VAT + max(12% × cost, £120) |
- Markups are per laptop, applied once per unit then extended by quantity — never apply the fixed amount once for a multi-unit order.
- Never apply markup to a VAT-inclusive cost.
- Other currencies need an agreed rule — don't reuse GBP numbers.
- Explicit user-specified selling price or override always wins over the derived standing-rule price.
- Don't assume refurbished/margin-scheme VAT is recoverable; don't divide an unclear-VAT price by 1.2 to invent a net cost — ask.
- Other override formulas: percentage markup = cost × (1+p/100); gross margin p% = cost ÷ (1-p/100), p<100; fixed markup = cost + amount; gross-to-net = gross ÷ (1+rate/100) only with confirmed VAT rate.
- Round entered unit prices to currency precision; derive quantity extensions from the rounded unit price; reconcile UI subtotal/tax/total.
- Delivery/fees are recorded separately unless user instructs otherwise; apply per-order delivery once, not per unit.
Example 1: Input: Quote 2× NEW laptop, supplier cost £800 ex-VAT each, customer "Northwind Ltd", standing markup. Output: Unit markup £120 (12% < £120 floor comparison: 12%×800=£96, so £120 applies) → unit sell £920 ex-VAT → extended £1,840 ex-VAT. Quote drafted for Northwind Ltd, qty 2, unit price £920, line total £1,840 + VAT, saved as draft, approver notes include supplier/link/cost/calc.
Example 2: Input: Quote 1× REFURBISHED laptop, cost £600 ex-VAT, no override. Output: Markup £150 → unit sell £750 ex-VAT. Below £950 insured-shipping threshold → no insured shipping line. Draft saved.
Example 3: Input: Quote 1× NEW laptop, cost £1,200 ex-VAT, sells at £1,344 — shipment value (selling price basis to be confirmed) exceeds £950. Output: Flag insured-shipping requirement; ask user for tariff/basis (cost vs. selling, net vs. gross, per-item vs. shipment) before treating quote as complete. Prepare all other fields in parallel; do not submit until resolved.
- Re-verify price/stock/URL on the actual product page every time — never reuse a prior quote's figures.
- Keep purchase cost and customer price in clearly separate places; always state VAT basis for each.
- Supplier/markup/link/evidence details belong only in Note for approvers, never Summary or Terms.
- Use exact existing customer contact match; don't create new contacts without instruction.
- Let ApprovalMax assign the quote number; don't invent one.
- Preserve existing quote content when updating; a populated example form is not permission to overwrite.
- After an uncertain save/submit, inspect the actual state before retrying — don't create a duplicate quote.
- Save as draft by default; submit for approval only on explicit request; never approve or send to customer under this skill.
- If gaps remain, save an incomplete draft (not submitted) with missing items listed in approver notes and final response.
- Treating a shortlist/recommendation as an automatic quote line without confirming which offer the user wants.
- Inferring quantity, customer, or selling price from a shopping budget.
- Adding both the 12% and £120 markup, or applying markup to VAT-inclusive cost.
- Applying the refurbished £150 flat markup once for a multi-unit order instead of per unit.
- Inventing a VAT-exclusive cost by dividing an unclear-VAT refurbished price by 1.2.
- Treating ordinary retailer delivery as the required insured-shipping line, or inventing a flat shipping charge.
- Double-charging shipping or charging insured shipping per unit when it's actually per shipment.
- Leaving accounting/tax/billing-type fields on default/ambiguous values without resolving them.
- Submitting an incomplete draft, or submitting without being asked.
- Claiming a save/submission succeeded from a click alone without verifying resulting state.
- Using a previous quote's URL or saved element indexes as a template for a new quote.