---
# System prepended metadata

title: Streamr Revenue Sharing Work Plan
tags: [PM]

---

---
tags: PM
---

# Streamr Revenue Sharing Work Plan


## Current General Deadlines

| Date Deadline | Task | Assigned | Status |
| -------- | -------- | -------- |-------- |
| 9/28/2022 | Write 9/29 Meeting Agenda | Sean | |

## Current Spec Deadlines


| Date Deadline | Task | Assigned | Status |
| -------- | -------- | -------- |-------- |
| 9/27/2022 | Review V3 Forced Takeout Proposal | Barlin | |


## Current cadCAD Deadlines

| Date Deadline | Task | Assigned | Status |
| -------- | -------- | -------- |-------- |


## Prior General Deadlines

| Date Deadline | Task | Assigned | Status |
| -------- | -------- | -------- |-------- |
| 6/16/2022 | Draft Responses to Juuso Questions | Sean | Complete 6/15/2022 |
| 6/16/2022 | Write 6/16 Update Agenda | Sean | Complete 6/15/2022 |
| 7/6/2022 | Write 7/7 Update Agenda | Sean  | Complete 7/6/2022|
| 7/12/2022 | Send Documentation + Marketing Examples | Sean  | Complete 7/12/2022 |
| 7/12/2022 | Take All Comments and Consolidate from Meeting | Sean | Complete 7/12/2022 |
| 7/6/2022 | Add Comments on Selected Research Questions | Itamar | Complete 7/12 |
| 7/20/2022 | Write 7/21 Update Agenda | Sean  | Complete 7/20/2022|
| 8/3/2022 | Write 8/4 Update Agenda | Sean  | Complete 8/1/2022 |
| 8/16/2022 | Try making the storybook kind of thing for the hackmd sheet with all links| Sean  | Complete 8/16/2022 |
| 8/17/2022 | Write 8/18 Update| Sean  | Complete 8/16/2022 |
| 8/19/2022 | Write up meeting notes | Sean | Complete 8/22/2022 |
| 8/31/2022 | Write 9/1 Meeting Agenda | Sean | Complete 8/31/2022 |
| 9/7/2022 | Write 9/8/2022 Meeting Agenda | Sean | Complete 9/7/2022|
| 9/9/2022 | Write up 9/1/2022 Notes | Sean | Complete 9/14/2022 |
| 9/9/2022 | Write up 9/8/2022 Notes | Sean | Complete 9/14/2022 |
| 9/14/2022 | Write 9/15/2022 Meeting Agenda | Sean | Complete 9/14/2022 |

## Prior Spec Deadlines

| Date Deadline | Task | Assigned | Status |
| -------- | -------- | -------- |-------- |
| 4/28/2022     | Implement diagram revisions from meeting  | Sean | Complete 4/27/2022 |
| 4/28/2022     | Completed draft mechanisms and policies  | Sean | Complete 4/27/2022 |
| 5/12/2022 | Complete V1 vocabulary/terms definitions | Sean | Complete 5/11/2022 |
| 5/19/2022 | Create a issue/work log and project management document for remaining spec issues | Sean | Complete 5/17/2022 |
| 5/19/2022 | Implement or log into work log all revisions from meeting | Sean | Complete 5/18/2022 |
| 5/19/2022 | Answer 5/18 Questions | Sean | Complete 5/18/2022 |
| 6/2/2022 | Build out example scenarios | Sean | Completed 5/30/2022|
| 6/16/2022 | Finish Math Spec State | Sean | Completed 6/14/2022|
| 6/16/2022 | Finish Mechanism Definitions | Sean | Complete 6/15/2022 |
| 6/24/2022 | Add Example Scenarios Through 10  | Sean |  Complete 6/22/2022|
| 7/1/2022 | 2022 Q3/Q4 Work Plan | Sean | Complete 6/30/2022 |
| 7/8/2022 | Re-write Example Scenarios w/ Withdraw Queue | Sean | Complete 7/8/2022 |
| 7/12/2022 | Re-write Spec w/ Withdraw Queue | Sean | Complete 7/12/2022 |
| 7/20/2022 | Add withdraw stake policy | Sean | Complete 7/20/2022 |
| 7/20/2022 | Write Broker Staking on Own Pool Mechanism Proposal/Plan (See Below) | Sean | Complete 7/20/2022 |
| 7/29/2022 | Update Example Scenarios to have Starting State | Sean | Complete 7/26/2022 |
| 7/29/2022 | Review Juuso Comments on Example Scenarios | Sean | Complete 7/26/2022 |
|8/12/2022|Iterate on Forced Takeout Solutions|Sean| Complete 8/11/2022|
|8/16/2022|Review + Provide Thoughts on Forced Takeout Solutions|Barlin| Complete 8/13/2022|
| 8/24/2022 | V2 Broker Self Staking Proposal | Sean | Complete 8/29/2022 |
| 8/24/2022 | V2 Forced Withdraw Proposal | Sean | Complete 8/29/2022 |
| 8/26/2022 | Summarize Relevant Features from The Graph | Barlin | Complete 8/30/2022 |
| 8/29/2022 | Quick Review/Sanity Checks on Proposals | Barlin | Complete 8/30/2022 |
| 8/31/2022 | Finalize V2 Broker Self Staking Proposal | Sean | Complete 8/31/2022 |
| 8/31/2022 | Finalize V2 V2 Forced Withdraw Proposal | Sean | Complete 8/31/2022 |
| 9/2/2022 | Broker Self-Stake Example Scenario |Sean| Complete 9/2/2022|
| 9/7/2022 | Broker Self-Stake Proposal V3 |Sean| Complete Complete 9/7/2022|
|  9/14/2022 | Forced Takeout Example Scenario | Sean | Complete 9/14/2022 |
| 9/22/2022 | V3 Forced Takeout Proposal | Sean | Done 9/26/2022|
| 9/28/2022 | Revise Forced Takeout Example Scenarios | Sean | Complete 9/26/2022|

## Prior cadCAD Deadlines

| Date Deadline | Task | Assigned | Status |
| -------- | -------- | -------- |-------- |
| 4/14/2022     | Completed V1 delegator leave  | Itamar | Complete 4/19/22 |
| 4/15/2022     | Code review of V1 delegator leave| Sean| Complete 4/19/22 |
| 4/19/2022     | Write pseudo-code/plan for Sean to review on adding more funds policy| Itamar| Complete 4/19/22|
| 4/20/2022     | Any code revisions on V1 delegator leave| Itamar| Complete 4/19/22|
| 4/21/2022     | V1 adding more funds policy| Itamar| Complete 4/29/22
| 4/22/2022     | V1 adding more funds policy code review| Sean| Complete 4/29/22|
| 4/25/2022     | Auto-increment ID (small task)| Itamar| Complete 4/29/22
| 4/26/2022     | Any code revisions on V1 adding more funds policy| Sean| Complete 4/29/22|
| 4/27/2022     | Add types files (small task)| Itamar| Complete 5/10/22|
| 5/9/2022     | Class Documentation | Itamar| Complete 5/10/22|
|      | Pull Request 28 Review | Sean | Complete 5/10/22|
| 5/13/2022     | Pull Request 28 Revisions V1 | Itamar| Complete 5/11/2022 | 
| 5/13/2022     | Pull Request 28 Revisions V1 Review | Sean | Complete 5/11/2022 |
| 5/12/2022     | Simplified Bonding Curve Pseudo-code/Plan | Itamar| Will Skip as of 5/16/2022 |
| 5/13/2022     | Pull Request 28 Revisions V2 | Itamar|  Complete 5/16/2022|
| 5/13/2022     | Pull Request 28 Revisions V2 Review | Sean | Complete 5/16/2022 |
| 5/16/2022     | Simplified Bonding Curve Implementation | Itamar| Completed 5/23/2022|
| 5/17/2022     | Simplified Bonding Curve Review | Sean| Completed 5/23/2022 |
| 5/23/2022     | Create Test Case Scenario for Bonding Curve| Sean| Completed 5/23/2022 |
| 5/20/2022     | Any changes to simplified bonding curve| Itamar | Complete 5/24/2022 |
| 6/3/2022 | 5 Hours Dev Improvements I | Itamar | Complete 6/3/2022|
| 6/3/2022 | Maximum Allocation Logic V1 | Itamar | Complete 6/3/2022|
| 6/6/2022 | Maximum Allocation Logic Review | Sean | Complete 6/6/2022|
| 6/8/2022 | Maximum Allocation Logic Revisions | Itamar | Complete 6/8/2022|
| 6/10/2022 | 5 Hours Dev Improvements II | Itamar | Agreed to not do this week on 6/6/2022 |
| 6/10/2022 | Replicate Example Scenarios | Itamar | 4.5/5 Done 6/10/2022 |
| 6/16/2022 | Review Example Scenarios | Sean | Complete 6/16/2022  |
| 6/21/2022 | Example Scenario Revisions + Finish Scenario 5 | Itamar | Complete 6/21/2022 |
| 6/21/2022 | Pool Value Yield Policy | Itamar | Complete 6/21/2022  |
| 6/21/2022 | Review Pool Value Yield Policy | Sean | Complete 6/21/2022 |
| 6/22/2022 | Scope out Bookkeeping PSUB | Itamar | Complete 6/22/2022 |
| 6/23/2022 | Implement Bookkeeping PSUB | Itamar | Complete 6/24/2022 |
| 6/23/2022 | Review Bookkeeping PSUB | Sean | Complete 6/24/2022 |
| 6/24/2022 | Any Revisions to Bookkeeping PSUB | Itamar | Complete 6/24/2022 |
| 6/24/2022 | Make Yield Policy Revisions from Pull Request | Itamar | Complete 6/24/2022 |
| 6/30/2022 | Implement Example Scenarios 6-10 | Itamar | Completed 6/29/2022  |
| 7/1/2022 | Review Example Scenarios 6-10 | Sean | Complete 7/1/2022 |
| 7/1/2022 | Any Example Scenario Revisions | Itamar | Complete 7/2/2022 |
| 7/7/2022 | Yield Implementation Clean up | Itamar | Complete 7/7/2022 |
| 7/7/2022 | Yield Implementation Review | Sean | Complete 7/7/2022 |
| 7/11/2022 | Scope Out Docker Implementation | Sean | Complete 7/11/2022 |
| 7/29/2022 | [Test State Function](https://github.com/BlockScience/streamr-revenue-sharing/issues/42) | Sean | Completed 7/26/2022 |
| 7/29/2022 | Change Model to use Withdraw Queue | Sean | Complete 7/26/2022 |
| 7/29/2022 | Update Example Scenarios | Sean | Complete 7/26/2022 |
| 8/3/2022 | Add in Stake Withdraw Policy | Sean | Complete 8/1/2022 |
| 8/3/2022 | Update Scenario 6 | Sean | Complete 8/1/2022 |

## LEGACY - Core Work Deliverables

| Meeting Date | cadCAD Deliverables | Spec Deliverables |
| -------- | -------- | -------- |
| 4/14/2022     | 1. Implemented changes from test code review. 2. Delegator leaving logic created.     | 1. Completed visualizations and type mappings     |
| 4/28/2022     | 1. Complete the small github tasks. 2. Add more funds (for delegators) policy     | 1. Completed draft mechanisms and policies     |
| 5/12/2022     | 1. Class documentation created 2. PSUB Documentation 3. cadCAD Usage Documentation| 1. Finish mechanisms and policies     |


## LEGACY - Small Github Tasks 

1. Auto-increment ID: https://github.com/BlockScience/streamr-revenue-sharing/issues/5
2. Add types files: https://github.com/BlockScience/streamr-revenue-sharing/issues/4


## LEGACY - Add Funds Mechanism

- The mechanism to be added will be one that allocates funds to delegators randomly to try and replicate the behavior of delegators having outside funds possibly coming in.
- **Key Question**: What assumptions should be made on how the delegators get these outside funds. One thought would be to think about some steady stream of income that they keep getting which adds to their funds. Another, and probably the better for mocking up of the system, would be one where we see random additions of funds sparsely. Something like a 1/20 chance that a delegator gets 10 of the currency.
- This mechanism is only going to be hitting the delegator funds OUTSIDE the vault. What that means is that the only state variable changed is broker funds and then the rest of the PSUBs will dictate what happens next, i.e. how they invest the new funds they have.
- This should only require adding on behavioral block which only effects delegators.


## LEGACY - Maximum Allocation Logic

- In the most recent working session it became obvious that one feature which was left unfinished by Sean (sorry) was maximum allocation logic
- A/C:
    - There should be a parameter config for the policy of maximum_allocation, and it should have the options of either None or Constant Max (given some parameter c there is a max that a pool will accept at a given time).
    - Functions need to be created for routing this within the class
    - Some unit/scenario tests might be good, Sean could possibly create some if need be
    - Make sure you run the cadCAD model with the two types (None/Constant Max) and check that it does not break
    - Either through tests, or through checking cadCAD results, confirm that the max allocation is actually functioning and restricting how much can be put in.


## LEGACY - Replicate Example Scenarios in cadCAD

- Upon completion of math spec, Sean will hand off the scenario tests for Itamar to create in the cadCAD model.
- Failing tests will **NOT** in this case mean the task is incomplete. I anticipate at least a few small cases of failing tests and these will span future work issues as it is an unknown/unknown.
- A/C:
    - All of the scenarios are acurately created as test
    - In the long form scenario case where there are tables of all the variables, confirm each transition that all variables match. It may seem unnecessary, but this will help capture random errors.
    - Each transition even if it is a short form description, should have copious amounts of assert statements to check any possible deviations

### Legacy - Bookkeeping PSUB

- Because we keep the references to classes instead of static variables, we need to have bookkeeping to track down the overall values in the system such as funds, returns, etc.
- First step is to actually scope this out (very rough sketch, just so Sean + Itamar can come to a consensus on it)
    - A/C 1: What values are we trying to track. Likely will be that we want to see funds over time, how returns are distributed, etc.
    - What format will we record this in? Are we going to nest dictionaries of data within the pandas dataframe? Are there better ways?
- Step 2 is to implement the bookkeeping PSUB to track all of these values.

### Legacy - Pool Value Yield Policy

- Currently there is just the policy for yield that allocates all the non broker share yield directly to delegator internal balances
- Another option is one which sends all yield to the pool
- A/C: 
1. Create the policy in the cadCAD model. This should end up being super simple but let me know if there are blockers/writing the policy takes > 15 minutes
2. Either test against (and pass) the test for the example scenarios which uses pool based yield or write a simple test to test out the pool yield


### Legacy - Dev Improvements

- This task is **time** based and open ended to make sure we spend time on dev improvements but also continue to build out core features.
- Please allocate no more than the specified hours total (not weekly) to this specific task, assume 5 hours if no hours are given
- If there is still much left to do we can talk about adding more time to the plan to prioritize dev improvements over core features
- Pick from any of the following issues:
    - Issue 26: https://github.com/BlockScience/streamr-revenue-sharing/issues/26
    - Issue 3: https://github.com/BlockScience/streamr-revenue-sharing/issues/3
    - Issue 31: https://github.com/BlockScience/streamr-revenue-sharing/issues/31
- A/C Criteria:
    - Each task has their own A/C in the issue
    - Because this is open ended, please give a short description of what was achieved or worked on, the expectation is that there will always be improvements that could be made
    - No expectation to be closing out issues, only that progress is being made, but closing out issues is of course nice