pricing: phase 2: estimate billing page by royendo · Pull Request #9249 · rilldata/rill · GitHub
Skip to content

pricing: phase 2: estimate billing page#9249

Draft
royendo wants to merge 36 commits into
mainfrom
pricing-2-org-billing-estimate-costs
Draft

pricing: phase 2: estimate billing page#9249
royendo wants to merge 36 commits into
mainfrom
pricing-2-org-billing-estimate-costs

Conversation

@royendo

@royendo royendo commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

Week of May 4 Updates: Ready for review

Orb Credit Remove the credit from the UI, just calculates estimates now

Once Deployment page and Org Billing page is ready; update UI to add link to this page

Screenshot 2026-04-28 at 19 47 44 Screenshot 2026-04-28 at 19 57 56

Checklist:

  • Covered by tests
  • Ran it and it works as intended
  • Reviewed the diff before requesting a review
  • Checked for unhandled edge cases
  • Linked the issues it closes
  • Checked if the docs need to be updated. If so, create a separate Linear DOCS issue
  • Intend to cherry-pick into the release branch
  • I'm proud of this work!

royendo and others added 24 commits March 20, 2026 10:57
…ling-page

# Conflicts:
#	web-admin/src/routes/[organization]/-/settings/usage/+page.svelte
Convert `export let` to `$props()`, `$:` reactive declarations to
`$derived`, mutable locals to `$state`, and `<slot />` to
`{@render children()}` across all files changed in this PR.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts:
#	web-admin/src/features/billing/plans/CancelledTeamPlan.svelte
#	web-admin/src/features/billing/plans/POCPlan.svelte
#	web-admin/src/features/billing/plans/TeamPlan.svelte
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts:
#	web-admin/src/features/billing/plans/Plan.svelte
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@royendo royendo requested a review from ericokuma April 15, 2026 21:16

Copy link
Copy Markdown
Contributor

@ericokuma ericokuma left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see above

@royendo royendo requested review from ericokuma April 21, 2026 22:43
@royendo

royendo commented Apr 22, 2026

Copy link
Copy Markdown
Contributor Author

set to draft while DI redesigns; we may not need this page in product if we have on marketing page; reroute there instead

@royendo royendo marked this pull request as draft April 22, 2026 14:05
@Di7design

Copy link
Copy Markdown
  • Split the left panel into two sections: Compute and Storage. Today the panel title Select compute unit doesn't cover Storage, and the $0.15/unit/hr hint sitting next to it could read as applying to storage. With a Compute subsection (showing $0.15/unit/hr once in its header) and a Storage subsection (showing $1/GB/mo above 1 GB free in its header), each rate has one obvious home. Drop the per-row rate descriptions: Minimum 2 units · $0.15/unit/hr on Production becomes Minimum 2 units, and Same rate as prod unit on Development drops entirely.
  • Formulas need units. 4 units × 24 hrs × 30 days × $0.154 units × 24 hrs/day × 30 days × $0.15/unit/hr.
  1. We should just rename the header to compute and storage (same as ClickHouse), there is no necessity to separate them into 2 sections.
  2. Adding full units in every formula makes it harder to scan and feels redundant since the context is already defined on the left. We could keep the formulas lighter for readability and show the detailed pricing on the top section to make it clear before user play around the numbers.

See updated design here. @ericokuma Would like you to review first before Roy change it.
Screenshot 2026-04-22 at 1 54 32 PM
Major changes:

  1. Move the reset button inside the number configuration section. (I don't like the long action name as reset to current configuration; make the button too long. It should be simple and intuitive enough that reset will reset to current usage.(Reset to 0 doesn’t make any sense anyway.)
  2. Remove tooltip for Production's active hours per day
  3. make hour selector the same row with each unit selector
  4. add always on checkbox for 24h running.

Additional Q for @royendo :

  1. Can we cap the hour input at 24? If a user type a number over 24, we should just clamp it to 24. Right now, I briefly see invalid values and the pricing updates in real time, which feels off.
  2. Any plan to allow user to config active hours not just by numbers, but by time windows? Like only run day time, or from 9-5 etc.
  3. Do we have a maximum storage size limit? I noticed that CH’s maximum data volume is 1TB. Should we set a similar limit for our storage? If the storage is unlimited, we can allow users to select a unit of measurement. Additionally, if we can, we can automatically convert the unit to TB when the user inputs 1000GB and the number becomes 1.

ericokuma commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

Thanks Di! What happens when a user clicks on Always on? Does the hours per day switch to 24 and grays out? What happens if they uncheck always on?

@Di7design

Copy link
Copy Markdown

If always on checked, the stepper should switch number to 24, but not disabled, if user input other numbers, uncheck the checkbox. (We can have a muted state for the stepper when always on checked.

Thanks Di! What happens when a user clicks on Always on? Does the hours per day switch to 24 and grays out? What happens if they uncheck always on?

Copy link
Copy Markdown
Contributor

Would it be better to use a slider instead then? So it's faster to slide around and we don't need to worry about the always on checkbox?

Copy link
Copy Markdown
Contributor

Ah i see that clickhouse uses an always on checkbox. When you click on it, it moves their slider to 24 and grays out the slider but you can move the slider still and it will get out of disabled state. If you uncheck the always on checkbox, it goes back to the original number it was on prior to enabling always on

Copy link
Copy Markdown
Contributor

all the other changes looks good to me!

@Di7design

Copy link
Copy Markdown

Would it be better to use a slider instead then? So it's faster to slide around and we don't need to worry about the always on checkbox?

Good call-out, I did try sliders and moved away from them for a few reasons:

  1. The unit selectors above are already steppers. Mixing steppers + sliders for the same "pick a small number" pattern makes the form feel less consistent.
  2. Sliders are great for continuous or exploratory values, but for a small discrete range (1–24 integers) people usually know the exact number they want. Steppers (or typing) get you there faster than a draggy slider.
  3. Two sliders stacked visually dominate the left column and pull focus away from the estimate + CTA on the right.
    The "Always on" checkbox already covers the 24-hour edge case, so the stepper only needs to serve the common 1–23 range.
  4. The whole form is only 5 number inputs, it should stay a simple, consistent pattern that lets people type or step to the value fast. Adding sliders breaks the stepper pattern we're already using for units, and for a small integer range (1–24) a slider is actually slower and less precise than +/− or typing.(CH's form has different input formats for each variable, which I think is very bad form design and hard to read.)

Happy to revisit if we see people struggle in usability testing, but I'd want to keep the form pattern-consistent first.

Copy link
Copy Markdown
Contributor

okay makes sense!

royendo and others added 3 commits April 22, 2026 21:14
Revert unrelated changes to main. The nav/layout/billing-page refactors
and other feature work will land via PR #9088; this PR should only ship
the /estimate page.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@royendo royendo marked this pull request as ready for review April 23, 2026 02:15
Comment thread admin/server/organizations.go

Copy link
Copy Markdown
Contributor

Weird @royendo, i'm trying to test this but not seeing the feature

@royendo

royendo commented Apr 27, 2026

Copy link
Copy Markdown
Contributor Author

@royendo royendo requested a review from a team April 28, 2026 23:48
@royendo royendo dismissed begelundmuller’s stale review April 28, 2026 23:48

remove leaked backend changes

@royendo royendo marked this pull request as draft May 1, 2026 15:56
@nishantmonu51 nishantmonu51 added Type:Feature New feature request Team:Platform Platform Working Group Size:L Large change: 500-1,999 lines labels Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Size:L Large change: 500-1,999 lines Team:Platform Platform Working Group Type:Feature New feature request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants