Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated Pricing Implementation #2662

Open
znarf opened this issue Nov 28, 2019 · 17 comments
Open

Updated Pricing Implementation #2662

znarf opened this issue Nov 28, 2019 · 17 comments
Assignees
Labels

Comments

@znarf
Copy link
Member

@znarf znarf commented Nov 28, 2019

Rationale

Open Collective is strategically focusing on a platform for Hosts (including Self Hosted Collectives). Hosts are the customers of Open Collective. As part of this effort, an updated pricing plan is being discussed and implemented.

Today, some Hosts are currently using the platform for free because because they're not using the donation feature and more relying on "Add Funds" and "Manual Transfers". Having customers using the platform for free is not sustainable and the idea is to start making Hosts pay a monthly fee based:

  • on the amount of data managed on the platform through "Add Funds" and "Manual Transfers"
  • the total number of collectives hosted

As part of this effort, we'll want to implement some restrictions on the platform. Hosts will need to subscribe to a plan:

  • to host multiple collectives
  • to access to the "Host Dashboard"
  • to add more than 1000$ to the platform using "Add Funds"
  • to activate "Manual Transfers"

Note: Some upcoming new features will only be available to paying customers. All existing Hosts will be able to enjoy the same features they're using today for free for at least one year.

Implementation

  • Start clearly differentiating Hosts in the model (API, Frontend?)
  • Add a column to the model containing the plan Hosts are currently using (API)
  • Update plan in the DB when customers subscribe to the Tier (API)
  • Check restriction before hosting new collectives (API, Frontend)
  • Check restriction when "Adding funds" (API, Frontend)
  • Check restriction when activating "Manual Transfers" (API, Frontend)
@kewitz

This comment has been minimized.

Copy link

@kewitz kewitz commented Jan 6, 2020

TODOs:

  • Add blockers/validations to DeactivateAsHostCollective.
  • Hook to assign a plan when subscribing to an OpenCollective tier plan.
  • Write cron job to downgrade plans based on current subscriptions before charging.
  • "Host Settings" section in the Collective settings displaying the current plan and limits
  • Add usage info to the Collective Plan resolver.
  • Display current usage (add funds, collectives) in the "Host Settings" section
  • If no plan, add Buttons linking to the different Tiers to activate plan.
  • Retrieve plans dynamically to avoid hardcoding staging/production URLs/ids.
  • Deactivate "Host Dashboard" access if the flag is false in the plan
  • Enforce restrictions on "Archive" and "Delete" accounts when an active Host
  • "Host Settings" should be immediately visible after "Activating as Host" (currently needs refresh)
  • Ability to skip ContributeAs step in the contribution flow and force one in the parameters
@znarf

This comment has been minimized.

Copy link
Member Author

@znarf znarf commented Jan 11, 2020

New Todos:

  • Make sure "Downgrade" and "Upgrade" are used for the Button when that make sense
  • Prevent downgrading based on the current usage
@kewitz

This comment has been minimized.

Copy link

@kewitz kewitz commented Jan 13, 2020

@znarf I implemented Downgrade and Upgrade based on the tier price.
The prevention of downgrade based on usage will require us to include plan limits in the tier meta-data.

@znarf

This comment has been minimized.

Copy link
Member Author

@znarf znarf commented Jan 13, 2020

@kewitz let’s do it ?

@kewitz

This comment has been minimized.

Copy link

@kewitz kewitz commented Jan 13, 2020

On it.

@kewitz kewitz self-assigned this Jan 13, 2020
@kewitz

This comment has been minimized.

Copy link

@kewitz kewitz commented Jan 14, 2020

Pending from QA:

  • Validate current plan limits when assigning collectives to own host.
  • Disable "Receiving Money" on Payment Methods when plan.manualPayments is false.
  • Render HostSettings only after fetching existing plans.
  • Add data.manualPayments to existing tiers in the DB.
@znarf

This comment has been minimized.

Copy link
Member Author

@znarf znarf commented Jan 15, 2020

New round of feedback after review with @piamancini:

  • Add free plan in the pricing table
  • Re-introduce "single host plan"
  • Add "Network Plan" / Contact Us as 6th plan (optional, but it will look better if we have 2 lines)
  • Move plans on a layout of 2 rows, three columns on regular screen (maybe stop using HTML table)
    • Use css-grid for plans.
  • Border or Background for current plan instead of grey (selected, not disabled)
    • Blue round border.
  • Remove "Host Dashboard" from pricing as it's available for everyone. We can keep the flags for the future.
  • Edit Organization/User: separate host features in the menu, on the bottom after a line break
  • Host Settings: add tool-tips in "usage" section to explain what are "Added Funds" and "Manual Payments"
    • StyledTooltip: Example in the footer.
  • "Use my own host" should be able to apply to an host without Stripe connected
    • "Use personal account as host": Assign your personal account as host and update isHostAccount.
    • "Use organization as host": Assign your organization account as host and update organization isHostAccount.
  • When over limit, "Add Funds" should be greyed out in Host Dashboard with a message explaining why
  • "Apply" button should be visible for Host reaching limit (it's hidden now). It should be disabled with a message explaining why.
  • Disable addedFunds and manualPayments by default for legacy plans. Add it on a case by case basis.
@kewitz

This comment has been minimized.

Copy link

@kewitz kewitz commented Jan 15, 2020

@znarf what should we do with the button on the Free plan?

@znarf

This comment has been minimized.

Copy link
Member Author

@znarf znarf commented Jan 15, 2020

@kewitz not much choice, no button for now I think

@znarf znarf closed this Jan 15, 2020
@znarf znarf reopened this Jan 15, 2020
@piamancini

This comment has been minimized.

Copy link
Contributor

@piamancini piamancini commented Jan 16, 2020

Manual Payments Tooltip: Your contributors create a pending donation and receive email instructions with your bank details. You can reconcile the donation when you receive it

Updating docs to use until pricing page is done: https://docs.opencollective.com/help/about/pricing

@kewitz

This comment has been minimized.

Copy link

@kewitz kewitz commented Jan 16, 2020

Sice Network will be a "Contact Us" button, can I soft-delete the Network tier in production?
The plan limits and settings are kept in our constants file.

This comment has been minimized.

Copy link
Contributor

@piamancini piamancini commented Jan 16, 2020 — with Octobox

@kewitz what would the path to contact us be?

@kewitz

This comment has been minimized.

Copy link

@kewitz kewitz commented Jan 16, 2020

@piamancini mailto:support as of now, super MVP but my current problem is consistency.
I think we should either have Network as a tier that has a price and can be self-subscribed or it shouldn't be directly accessible from the collective page (hence soft-deleting it).

@znarf

This comment has been minimized.

Copy link
Member Author

@znarf znarf commented Jan 16, 2020

Please delete @kewitz

@piamancini

This comment has been minimized.

Copy link
Contributor

@piamancini piamancini commented Jan 16, 2020

agreed.

This comment has been minimized.

Copy link
Contributor

@piamancini piamancini commented Jan 16, 2020 — with Octobox

Had a good chat with a host just now (netsquared). Their feedback is that pricing looks good and fair. Only thing for them is that sometimes a collective leader leaves and they spend a long time recruiting a new one. (Their collectives are meetups in cities).

All that time, they feel like it's unfair to count the collective in the host collective count, they'd like a way to 'deactivate' collectives that are not being used and as soon as they are alive again, they are more that happy to pay for them.

@Betree

This comment has been minimized.

Copy link
Member

@Betree Betree commented Jan 16, 2020

@piamancini Maybe archiving is the solution? We could omit the archived collectives from the count. They can then re-activate the collectives when they want, only drawback is that they'll need to empty the collective balance before archiving.

znarf added a commit to opencollective/opencollective-api that referenced this issue Jan 20, 2020
See: opencollective/opencollective#2662

Co-authored-by: Leonardo Kewitz <leokewitz@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants
You can’t perform that action at this time.