Superapp / Product requirements / crm

Pipewise — product requirements

Version 4.07 features34 requirements12 Must Open appJSONMarkdown

Pipewise is a sales pipeline CRM. Teams track deals on a six-stage board with weighted totals, work a deal through its detail page, manage accounts and contacts (including duplicate detection and merge), price deals in four currencies and compare closed plus weighted pipeline with quota on a forecast view. The demo clock is pinned to 19 Oct 2026.

Problem. Sales managers need to trust the numbers on screen: what a stage is worth, which deals are late, what each currency converts to and whether the quarter will reach quota.

Users

Goals

Out of scope

Contents

Sign-in and session

Email and password sign-in; sign-out closes the session.

FR-AUT-01
Must
Sign-in rejects missing and wrong credentials with distinct messages and opens the board for valid ones.
  • Both fields empty: "Enter your email and password" and the login form stays
  • Wrong password: "Invalid credentials" and no board is shown
  • A valid rep account opens the board and the account menu shows the rep name
FR-AUT-02
Should
Sign out returns to the sign-in form and protected pages stay closed afterwards.
  • Opening the forecast page signed out shows the sign-in form
  • Browser Back after sign-out shows no deal data
FR-AUT-03
Could
The sign-in screen shows the brand panel (headline "See every deal before it slips.") beside a form with a Show/Hide password toggle.
  • Clicking Show reveals the password and the button reads "Hide"
  • No text is clipped or overlapping

Pipeline board

Six stage columns with counts, totals and weighted totals; deals move by drag or keyboard.

FR-BRD-01
Must
The board shows six columns in order with their deal counts and an open-pipeline summary line.
  • Seeded counts: Prospect 5, Qualified 6, Proposal 7, Negotiation 6, Closed won 4, Closed lost 2
  • Summary reads "24 open deals · $2,708,184 total · $1,162,131 weighted"
FR-BRD-02
Must
Each column shows a Total (sum of deal amounts in USD) and a Weighted total (sum of amount x stage probability). Probabilities are Prospect 10%, Qualified 30%, Proposal 50%, Negotiation 75%, Closed won 100%, Closed lost 0%.
  • Prospect $400,806 / $40,081; Qualified $803,620 / $241,086; Proposal $987,418 / $493,709; Negotiation $516,340 / $387,255
  • Closed won $182,760 / $182,760; Closed lost $58,380 / $0
  • For open stages below 100% the weighted total is lower than the total
FR-BRD-03
Must
Dragging a card onto another column moves the deal and recalculates both columns.
  • Toast "<deal> moved to <stage>"
  • Moving "Wholesale portal" from Prospect to Qualified gives Prospect 4 deals ($359,806 / $35,981) and Qualified 7 deals ($844,620 / $253,386)
  • The move is still there after a reload in the same tab
FR-BRD-04
Should
A focused card moves one stage right or left with Shift+ArrowRight / Shift+ArrowLeft.
  • The card's accessible name ends with "Shift plus arrow keys move between stages."
  • Toast "<deal> moved to <stage>" and the target column count increases by one
FR-BRD-05
Should
Moving a deal to Closed lost requires a reason.
  • Dialog "Mark deal as lost" with a "Lost reason" select
  • Confirming without a reason shows "Choose a reason for losing this deal" and the dialog stays open
  • Escape or Cancel closes the dialog and leaves the deal where it was
  • With a reason chosen the card appears in Closed lost
FR-BRD-06
Could
The top search and the Owner select narrow the cards and the stage counts.
  • Search "Brightloom" leaves two cards
  • Owner "Ravi Menon" gives Prospect 1, Qualified 0, Proposal 2, Negotiation 1, Closed won 2, Closed lost 0
FR-BRD-07
Must
A card whose close date is before the demo date (19 Oct 2026) shows the date in red with an "<n>d overdue" pill, where n is the number of days late. A deal closing on the demo date is "Due today" and is not overdue.
  • Close 12 Oct shows "7d overdue"; 16 Oct "3d overdue"; 5 Oct "14d overdue"
  • Close 19 Oct shows the chip "Due today", a non-red date and no overdue pill
FR-BRD-08
Could
Cards show the native amount, the converted USD value muted beside it, the overdue state and the owner initials, in a flat style with aligned digits.
  • A EUR card reads "€38,500" with "≈ $41,580"
  • No shadows at rest; numbers use tabular digits

Deal detail and editing

Create, read, edit, delete and annotate a deal.

FR-DEL-01
Should
The deal detail page shows amount, stage with probability, weighted value, close date status, contacts, next step and an activity timeline (newest first).
  • D-1001 "Warehouse analytics rollout": Amount $84,000, Negotiation (75% probability), Weighted value $63,000, Close date 6 Nov 2026 "On schedule"
  • Contacts Hannah Weiss (VP Operations) and Ines Carvalho (Buyer); next step "Send revised MSA to legal"
FR-DEL-02
Must
Logging an activity adds it to the top of the timeline, and the next step can be edited; both persist after reload.
  • Empty activity text shows "Write a short summary of the activity" and adds nothing
  • Toast "Activity logged"; new entry is first in the timeline with its type
  • Toast "Next step saved"; the card shows the new text after a reload
FR-DEL-03
Should
The New deal form validates each field and reports its own message.
  • "Deal name is required", "Deal name must be at least 3 characters"
  • "Amount is required", "Amount must be greater than 0", "Amount must be a positive number" for non-numeric input, "Amount can't exceed 100,000,000"
  • "Close date is required", "Close date must be a valid date (YYYY-MM-DD)"
  • "Choose an account" when no account is selected
  • Escape closes the dialog without creating a deal
FR-DEL-04
Must
Creating a valid deal places it in Prospect, converts the amount to USD at the published rate and owns it by the account owner.
  • Toast "Deal created" and the new deal's detail page opens
  • EUR 20,000 shows "≈ $21,600 at 1.08", Stage Prospect (10% probability), Weighted value $2,160
  • Prospect then shows 6 deals, Total $422,406, Weighted $42,241
  • Amount 1 is accepted with Weighted value $0
FR-DEL-05
Should
Editing the close date updates the overdue state and records the change in the timeline.
  • Setting 2026-10-10 shows "10 Oct 2026" in red with "9d overdue"
  • Setting 2026-10-19 shows "On schedule" with no overdue pill
  • Timeline top entry "Close date changed from 2026-10-30 to 2026-11-30"
FR-DEL-06
Should
Deleting a deal asks for confirmation; confirming removes it everywhere.
  • Dialog "Delete this deal?" warns that activity history will be removed; Cancel keeps the deal
  • Confirming shows "Deal deleted" and the board shows 23 open deals
  • Reopening the deal shows "Deal not found" with a "Back to pipeline" button
FR-DEL-07
Could
Changing the stage on the detail page moves the deal and updates probability and weighted value.
  • "Ad ops dashboard" Qualified (30%, $7,200) moved to Proposal shows toast "Moved to Proposal", 50% and $12,000

Currencies

Deals are priced in USD, EUR, GBP or JPY and converted to USD at published rates.

FR-FXC-01
Must
Every foreign-currency amount converts to USD as amount x the published rate: USD 1, EUR 1.08, GBP 1.27, JPY 0.0067. The rate printed beside a converted value is the rate used.
  • EUR 38,500 gives "≈ $41,580 at 1.08"
  • GBP 22,400 gives "≈ $28,448 at 1.27"
  • JPY 8,600,000 gives "≈ $57,620 at 0.0067"
FR-FXC-02
Should
The Forecast page lists the exchange rates table with the four published rates.
  • USD 1, EUR 1.08, GBP 1.27, JPY 0.0067

Accounts

Sortable, searchable, paged list of 30 accounts with a detail page.

FR-ACC-01
Must
Accounts page ten at a time; each page starts exactly after the previous one ends, with no repeated or skipped rows.
  • "30 accounts", "Showing 1–10 of 30", "Page 1 of 3"; Previous disabled on page 1, Next disabled on page 3
  • Page 1 runs Ashgrove Energy to Granite Peak Outdoors; page 2 starts with Halden Freight; page 3 ends with Vantor Analytics
FR-ACC-02
Should
Column headers sort the whole list (not just the visible page), toggle direction on a second click and reset to page 1.
  • Default Account ascending (aria-sort "ascending")
  • Open pipeline descending: Meridian Cold Chain $410,000, Copperfield Mining $310,000, Cobalt Harbour Marine $240,000, Kingfisher Aviation Services $205,000
  • Open pipeline ascending starts with Fernleaf Organics, shown as "—"
  • Owner ascending starts with Cobalt Harbour Marine (Amara Nwosu)
FR-ACC-03
Could
Search filters accounts; no match shows an empty state.
  • "logistics" gives 3 accounts: Halden Freight, Harrow Logistics, Meridian Cold Chain
  • "zzzz" shows "No accounts match “zzzz”."
FR-ACC-04
Could
The account detail page shows open deal count, open pipeline, deals and contacts; an unknown id shows a not-found state.
  • Brightloom Textiles: Open deals 2, Open pipeline $96,000, two deals, contacts Hannah Weiss and Ines Carvalho
  • "Account not found" with a "Back to accounts" button

Contacts and duplicates

Possible duplicate pairs are detected and can be merged or dismissed.

FR-CON-01
Must
Duplicate detection flags pairs sharing an email, a phone number, or the same name at the same account, and labels the reason.
  • Subtitle "43 contacts · 3 possible duplicate pairs"
  • Marcus Doyle "Same email address"; Sofia Lindqvist "Same name at the same account"; Tomás Ribeiro "Same phone number"
FR-CON-02
Must
Merging keeps the chosen record and fills any missing field (such as phone or title) from the other record; no data is lost.
  • Dialog "Merge contacts" with a "Keep this record" choice; Cancel changes nothing
  • Merging Sofia Lindqvist (keeping the record with no phone or title) shows "Merged into Sofia Lindqvist"
  • The surviving contact is Head of Retail, +33 1 55 55 01 99; counts become "42 contacts · 2 possible duplicate pairs"
FR-CON-03
Could
"Not a duplicate" removes the pair from the list without deleting either contact.
  • Toast "Marked as not a duplicate"; pairs drop to 2; all contacts stay at 43

Forecast

Q4 closed won plus weighted pipeline versus quota.

FR-FCS-01
Must
Forecast = closed won + weighted pipeline; attainment is closed won / quota and forecast vs quota is forecast / quota, using the $1,000,000 team quota (monthly quota $333,333).
  • Closed won $182,760 (18.3% attainment); Weighted pipeline $924,931; Forecast $1,107,691; Forecast vs quota 110.8%
  • October closed $182,760, weighted $343,224; November weighted $339,105; December weighted $242,602
  • By rep forecasts: Ravi Menon $258,740 (107.8%), Elena Park $255,075 (115.9%), Tobias Grant $220,670 (110.3%), Amara Nwosu $233,582 (129.8%), Lucas Ferreira $139,624 (87.3%)
FR-FCS-02
Could
The chart shows October, November and December as stacked bars (closed won plus weighted) with a dashed quota line at $333,333.
  • October is the tallest bar
  • Axis labels are at least 12px and nothing is clipped

Non-functional requirements

NFR-01
Could
Unknown routes show "Page not found" ("The page you are looking for does not exist.") with a "Back to pipeline" button.
NFR-02
Could
At 390px width there is no horizontal page scroll, gutters are 16px, the sidebar becomes a drawer opened by "Open navigation", and board columns scroll inside their own area.
  • Drawer lists Pipeline, Accounts, Contacts, Forecast and closes after a choice
NFR-03
Could
At 768px width the deal detail reflows without overflow and the title, stage select, Edit and Delete remain visible.
NFR-04
Could
With a dark colour scheme all screens use dark surfaces with legible text, and the overdue red keeps sufficient contrast.
NFR-05
Should
Application state is kept per browser tab: changes survive a reload in the same tab, and a new tab starts from the seeded book.

Glossary and rules

Weighted totalSum of amount x stage probability for the deals in a column, in USD.
OverdueClose date strictly before the demo date of 19 Oct 2026.
ForecastClosed won plus weighted pipeline for the quarter.