RunoSO - Business OS for Solo Operators LogoRunoSO
FeaturesPricingTemplatesBlogAbout
Sign inStart free
RunoSO LogoRunoSO

Run your solo business. From one place.

Built in India 🇮🇳

Product

FeaturesPricingBlogChangelogRoadmap

Legal

Terms & ConditionsPrivacy PolicyRefund PolicyCookie PolicyData Deletion

Connect

Twitter/XLinkedInInstagramhello@runoso.in
Made by RunoSO
© 2026 RunoSO. All rights reserved.
Back to Blog

Featured Articles

Build in Public

Why I Ditched Notion & Sheets to Build RunoSO

7 min read
Technical Deep-Dive

How I Built a Zero-Knowledge Vault with AES-256

10 min read
Productivity

Best Freelance Tools in 2026 — Honest Stack Review

11 min read
View all posts
  1. Home
  2. Blog
  3. Handling Scope Creep: Change Orders That Get Paid
Productivity

Handling Scope Creep: Change Orders That Get Paid

By Gautam Parmar14 September 20268 min read
Handling Scope Creep: Change Orders That Get Paid — featured image

Note: This is the paid change-order playbook — distinct from 18-scope-creep-stop-free-work which covers boundaries. Here we monetize the yes.

Client Monday: Can we add a blog template? Same budget right? You say Sure, small tweak because no feels rude and scope lives as 5 pages text in Google Doc. You add Trello card Blog template, build 8 hours, invoice same ₹1.2L. Client Friday: And the shop filters? Quick? Another yes. By delivery you built 5 pages + blog + shop filters + 3rd revision — +18 hours, same budget numeric(12,2) src/lib/db/schema.ts:35. Margin ₹800/hr → ₹440/hr.

Scope creep isn't client greed. It's no change-order path that pays. When saying yes is easier than logging budget bump + tasks + invoice, you say yes free.

Why Free Creep Thrives in Notion / Excel / HubSpot + Trello

  • Notion — Scope table | Included | Excluded | pretty but inert. Extra Add blog triggers no tasks projectId src/lib/db/schema.ts:47, no budget numeric update, no invoices amount src/lib/db/schema.ts:69. You duplicate page Scope v2, client keeps reading v1 link.
  • Excel — Budget 120000 cell Advance 30000 with no transaction type:income src/lib/db/schema.ts:87 history. Change — Blog ₹15k added as new row, not linked to projectId. Next month Sheets SUM double counts advance.
  • HubSpot — Deal Amount 120000 linear; Trello Blog template card has no projectId FK cascade src/lib/db/schema.ts:47. Sales Closed Won 120k vs delivery budget 120k + 15k blog drift — finance blindness. HubSpot comment Approved blog doesn't create invoice recurringInterval none clone.
  • Trello — Blog template drag Doing→Done feels shipped, but invoices status draft→sent src/lib/db/schema.ts:58 never spawns. Checklist done ≠ paid.

Without FK graph clients 1—∞ projects 1—∞ tasks + clients 1—∞ invoices (clientId+projectId) src/lib/db/schema.ts:60, change lives as chat star, not revenue. You remember to build blog, forget to bill blog.

The Paid Change-Order Graph: Request → Task → Budget → Invoice → Portal

In RunoSO tenant_${id} src/lib/db/tenant.ts:47, every extra follows typed FK path so yes pays:

clients(status active src/lib/db/schema.ts:5)
  projects(clientId fk notNull src/lib/db/schema.ts:25, budget numeric, advance numeric, deadline, notes text, githubUrl)
    tasks(projectId fk, title, priority low|medium|high src/lib/db/schema.ts:43, status, dueDate)
  invoices(clientId fk, projectId fk nullable, amount numeric, items jsonb src/lib/db/schema.ts:74, status, discount, taxRate)
  portalTokens(tenantId+clientId unique src/lib/db/schema-public.ts:169) — approval share

The 60-second change-order flow (use every time quick appears):

  1. Log request in projects.notes. After call, paste: 2026-08-30 Change Request #1: Blog template (archive+single+CMS) — requested via Slack by Priya. Impact: +8h, +₹15k, +5d. Not in chat star — in project.notes src/lib/db/schema.ts:32 linked clientId. This is audit trail HubSpot timeline can't link to tasks.
  2. Price via yes-and template. Reply on their channel: Yes we can. Option A: Add blog to current scope — +₹15k, +5 days, deadline moves Sep 12→Sep 17, tasks Blog archive, Blog single. Option B: Backlog for phase 2 — stays ₹1.2L, Sep 12. Which? Give choice, don't argue. Price = budget bump 120000→135000 numeric src/lib/db/schema.ts:35 — not Sheets ₹1.2L+15k text`.
  3. Create tasks only after approval. POST /api/projects/[id]/tasks src/lib/db/schema.ts:45 — two tasks Blog archive priority:medium dueDate. Now totalTasks/doneTasks src/app/api/projects/route.ts:28 reflects expanded scope; TodayFocusCard surfaces work where billable, not forgotten Trello backlog.
  4. Bump budget + transaction. Update projects.budget 135000 if you price flat; or keep budget 120000 and treat change as separate invoices amount 15000 — either drives FinanceOverviewClient Recharts live. Sheets needs SUMIFS you skip.
  5. Spawn invoice. POST /api/invoices src/app/api/invoices/route.ts:84 — clientId=Acme, projectId=Acme Growth Revamp, items jsonb [{desc: Blog template AR+Single, amount:15000}], amount 15000, invoiceNumber GOS/25-26/014 auto FY sequential, status:draft→sent sendInvoiceEmail src/lib/emails/send.ts:347 with portal link. Now extra has invoiceId linked, not memory.
  6. Show via portal. portalTokens portal/[token] shows new tasks pending + new invoice sent. Client sees change cost before you start building — approval friction replaces free yes.

No approval → no tasks. That rule alone saves 15 hrs/month.

Scope Guardrails That Make Yes Safe

Revision cap as tasks count. Proposal 2 revisions = 2 tasks Revision 1, Revision 2. 3rd revision request → repeat flow: +₹X, +Y days. You once gave pop a bit more free; now it's Revision 3 task that bills.

Change triggers table in project.description: keep live:

IncludedExcluded→ Change Order
5 pages Home…Blog indexBlog templateAdd blog → +₹15k, +5d, 2 tasks
2 revisions3rd revisionExtra revision → +₹4k each
Desktop + mobileApp screensNew platform → new quote

This table is not doc decoration — it's filter for every quick. If request hits Excluded, flow triggers. Notion table inert; project.description linked to budget is guardrail.

Mistakes That Keep Creep Free

Mistake 1: Saying yes in chat before logging.

Sure, small in WhatsApp feeling wins, projects.notes empty loses. Reverse: log first, reply with options second. 45-second discipline prevents 8-hour charity.

Mistake 2: Building before invoicing.

Drag Blog template to Doing before invoices status:sent. Now invoice feels afterthought, client Why pay after built? Spawn invoice draft before first task status todo→in-progress src/lib/db/schema.ts:42.

Mistake 3: Bundling change into main budget silently.

Merging +₹15k into budget 135000 without items jsonb line hides value. Keep separate invoices per change projectId → portal shows Change #1 Blog ₹15k paid — proof you get paid well.

Notion + Sheets + Trello vs Paid Graph

Extra request Add blogNotion + Sheets + TrelloRunoSO tenant_${id} FK graph
RecognitionIncluded vs Excluded text you skimTable in project.description → trigger visible
Approvalyes chat starprojects.notes logged + options reply → tasks only after OK
Work queueNew Trello card string Blog no projectIdtasks projectId fk onDelete:cascade priority/dueDate → Today + totalTasks/doneTasks
MoneyBump Sheets cell 120k→135k manuallyprojects.budget numeric or new invoices amount 15000 items jsonb FY number + sendInvoiceEmail
Client proofForward v2 PDFportalTokens portal/[id] shows new tasks + invoice sent before build
Finance truthSUM fragilitysidebar/stats pendingInvoices receivables src/app/api/sidebar/stats/route.ts:55 live

Inert tables vs paying FKs. Choose paying.

5-Minute Change-Order Template (Paste into project.notes)

Change #{{n}}: {{title}}
Requested: {{date}} by {{name}} via {{channel}}
Impact: +₹{{fee}}, +{{days}}d (deadline {{old}}→{{new}}), {{tasks}}
Approval: Option A add now / Option B phase 2 — client chose {{A/B}} {{sig/date}}
Invoice: {{invoiceNumber}} {{amount}} {{status}}

Fill for every quick. By change #3 you'll quote extras without flinch — system said no free, you just followed.


RunoSO makes every yes pay — change requests linked to tasks, budget numeric, invoices FY sequential, and portal approval in one dossier.

→ Stop Free Work — Try RunoSO Free


By Gautam Parmar src/app/(marketing)/about/page.tsx:44 — solo founder, Next.js 16 Tailwind v4 Neon Drizzle Razorpay Resend, building in public on X.


Keep Reading

  • Proposal guardrail at kickoff: freelance proposal to project handover.
  • Ops hub: freelance operations hub single dashboard.
  • Never lose access mid-change: where freelancers should never store passwords.

FAQ

How is this different from 18-scope-creep-stop-free-work? That post builds boundaries (included/excluded table, revision cap, scripts). This builds the paid path after boundary hit — projects.notes audit + tasks.projectId spawn + projects.budget numeric bump + invoices items jsonb FY invoice + portalTokens src/lib/db/schema-public.ts:169 visibility that turns yes into revenue without awkward chase.

Do I need client signature for change? Log approval in project.notes Client chose A on Slack 12:04 — Priya + portal new invoice sent before building. That's typed audit; revokedAt src/lib/db/schema-public.ts:175 ensures visibility. Signature ideal, but logged option choice beats sure memory.

What if client pushes same budget? Offer Option B backlog phase 2 stays ₹1.2L vs Option A +₹15k now. Choice forces trade, not argument. Without FK invoice spawn, same budget wins; with invoice amount 15000 ready to send, paid yes wins.

Try RunoSO for Free

Manage clients, invoices, vault, content, and finances — all from one beautiful dashboard.

Start free
Meet RunoSO
SaaS
Unified Workspace
Finance & Invoicing
Credentials Vault
Content Pipeline

Unified Workspace

The ultimate command center for solo operators. Replace Notion, Sheets, and password managers.

  • Unified client database
  • Real-time key metrics
  • Intuitive navigation
Start free todayLearn more about RunoSO

Featured Articles

Build in Public

Why I Ditched Notion & Sheets to Build RunoSO

7 min read
Technical Deep-Dive

How I Built a Zero-Knowledge Vault with AES-256

10 min read
Productivity

Best Freelance Tools in 2026 — Honest Stack Review

11 min read
View all posts
Meet RunoSO
SaaS
Unified Workspace
Finance & Invoicing
Credentials Vault
Content Pipeline

Unified Workspace

The ultimate command center for solo operators. Replace Notion, Sheets, and password managers.

  • Unified client database
  • Real-time key metrics
  • Intuitive navigation
Start free todayLearn more about RunoSO

Related Posts

Productivity

Worksuite vs RunoSO: Freelancer Management System India 2026

Worksuite vs RunoSO for India — enterprise FMS for 190+ countries vs solo freelance system with GST, UPI & vault linked. Compare pricing & vault India.

Productivity

Flinggle vs RunoSO: Freelance Management System India 2026

Flinggle vs RunoSO for India — compare GST, UPI, vault & pricing. Flinggle leads + proposals, RunoSO is GST + vault + assets linked India-native system.