Silo-02, Requirements Doc - Yam Treasury Management and Maintenance Framework

Project Summary :memo:

What is the goal and purpose of the project?

Create a framework for consistent evaluation and rebalancing of Yam’s treasury to ensure long term support of Yam’s DAO and its mission. Framework will have a step by step guide that will allow anyone with basic computer and excel skills to create a proposal to rebalance the treasury.

What problem does the project solve?

Yam’s treasury supports multiple critical functions for Yam DAO. It pays for all expenses including contributor compensation and is also an investment vehicle for the DAO. YAM currently does not have any revenue/income generating products therefor is currently solely relying on the performance of the Treasury to maintain all critical functions. Creating a framework that can accommodate the needs of the DAO and also rebalance the assets to maintain a proper risk profile will help ensure long term success of Yam DAO.

In specific terms:

  1. Treasury is currently out of balance, stable coins account for 49% of the treasury when based on the current allocation it suppose to be at 30%.
  2. Current strategy uses beta and correlation to determine risk, these numbers have not been checked since 2021.
  3. There has been a significant changes to Yam’s organizational structure and expenses but the current strategy does not account for this.
  4. Current rebalancing strategy created by YIP-80 requires that Krugman to “crunch the numbers”. Unfortunately he is no longer able to do this for Yam, so no one does it now.

Design and Project Scope :building_construction:

Project Scope

What are the different elements that need to be built or designed to complete this project?

  1. Understanding current and future potential needs of the DAO from the treasury perspective.
  2. Evaluate current investment strategy of a moderately portfolio targeting < 0.75 Beta and < 0.5 Correlation and most recent rebalancing: YIP-80 YAM Treasury Rebalancing
    a. Things have changed now that we are no longer in the middle of a bull market, in addition there have been significant changes to Yam DAO and its expenses. Taking these considerations into account to evaluate for long term success of Yam DAO is now more prudent than ever.
    b. Also there are significant limitations for a DAO managed Treasury that personal investment portfolios do not have. Due to my previous work with Yam, I’ve worked thru many of these issues and will be able to give a better comprehensive portfolio. For example, Yam currently only has access to Uniswap V2 to make simple swaps. Without a new contract to access other liquidity pools, some of the tail assets in the treasury need to be managed differently.
  3. Make recommendations based on results from #1.
    a. Should we change strategy targets? Maybe move to a % allocation model since crypto in general is highly correlated and there are not any good counter balances to crypto within the guidelines of a DAO Treasury.
    b. What and why are the recommendations appropriate for Yam DAO and the long term future.
  4. Create a framework for rebalancing and maintenance of the treasury.
    a. Successful treasury management requires maintenance of the assets.
    b. Framework will be a step by step guide with necessary tools to signal for the need to rebalance the treasury and then provide the way to do it.
    c. Framework will need to be adjusted if there are significant changes to the types of assets or expenses of the DAO but general guidelines will be provided.
  5. Steward recommendations thru Yam governance, adjust if needed and assist in applying changes to Yam Treasury.

Further Clarity:

  1. The scope of this project is purely to define and create a treasury maintenance system that will allow assets to be used to support Yam DAO.
  2. This treasury maintenance system will be as simple as possible so that it won’t require a specific person in order to use. Reliance on a specific person has limited the use of previous treasury management sytems.

Alternatives Considered

Are there other potential ways to solve this problem? Why choose this one?

This project will explore potential alternatives to solve the problem. Given the limitations of an On-chain governed treasury, alternatives are limited.

Project Requirements

Describe what characteristics the project MUST, SHOULD, and COULD have.

  • When complete these people MUST be able to do X
    –Any user MUST be able to initiate process to update treasury using framework.
    –Any user MUST be able to use guidelines to submit to governance a proposal to rebalance the treasury to maintain investment strategy.
    –Any user MUST be able to use guidelines to submit to governance a proposal to change treasury investment strategy.

  • When complete, the project MUST allow Y.
    – The project MUST be able to accept relevant data and produce a result that can be submitted to governance.
    – The project MUST provide the necessary tools to be used by anyone.
    – The project MUST come to consensus on what assets to hold in the treasury and how to handle assets that might not fit directly into the model.
    – The project MUST come to consensus on what to do where the treasury is needed to finance Yam DAO projects/silos.

  • When complete, the project WILL NOT allow Y.
    – The project WILL NOT provide the solidity code to submit the on-chain governance.
    – The project WILL NOT be able to determine changes in the type of assets in the treasury during the regular rebalancing or investment strategy changes.

  • The project COULD allow users to do XY.
    – The project could contain a framework that is not specific to Yam’s Treasury and can be applied to other treasuries potentially useful to reinvigorate Yam’s DAO house as a service.

Participants and User Flow :man_astronaut:

Participants/Users of the Project

List the participants who are expected to use and interact with the project in its expected completed form. Describe what their role is and what skills they need to perform this role.

User Group 1

  • Role: Any user

  • Necessary Skills: Basic excel skills. **Subject to change

  • How they interact with the project: User will start the process of evaluating if treasury needs to be adjusted by following guide. Guide will be step by step and only require excel skills. Guide should lead user all the way up to the process of submitting a governance proposal to update treasury.

User Flow

What is the full user flow for this project. Is this all part of the scope?

Every month a user will initiate a check of the treasury using the guide.
The guide will lead the user step by step thru the process of checking if the treasury is out of balance according to the allocation and risk profile.
If treasury is out of balance, the guide will lead the user thru an excel spreadsheet to calculate the changes to bring the treasury back into balance.
The guide will then instruct the user on how to submit rebalancing plan and or a plan to change investment strategy.
If governance decides to change investment strategy, the guide can lead user thru excel spreadsheet to create new allocation numbers.

Risks :exclamation:

Dependencies

Are there other projects or contracts that the project will interact with? How will they do so? What are the security risks from these interactions?

The framework is self contained and can be operated by a single user. The user will have to interact with Yam governance and Yam on-chain governance developer. Yam governance is in the hands of the token holder, if any changes are not approved then rebalancing stops until the next time the treasury is checked using framework. Any smart contract work that is needed by this framework will be included in Yam’s monthly on-chain transaction as a simple swap of assets.

Security Assumptions

What security assumptions need to be made for this project to be successful?

For the project to work, the user must follow the guide and make recommendations based on calculated numbers and not personal opinions.

Financial Risks

Are there financial risks to either the DAO or to users of the project?

This project’s purpose is to minimize financial risk of the treasury by primarily using rebalancing. All assets in the treasury are at risk assets even the stablecoins are subject to smart contract risk.

Comparable Projects :eyes:

Are there similar examples to the proposal that token holders can use to compare or understand the scope?

Asset rebalancing is a tried and true method to maintain risk levels according to investing strategy. There are different crypto native products that will rebalance the portfolio depending on its specifications. They could be a good addition to the assets contained in the treasury and will be evaluating them along with this framework. Some comparable projects: indexcoop.com / enzyme.finance / tokensets.com

Project Time-Frame :timer_clock:

Please provide a rough estimate of the time expected to fulfill different parts of the scope, as well as full completion of the project. This does not need to detail all parts, but should provide a general overview of how long the project may take. More detailed information should live in grant applications

Multiple parts of this proposal will be published publicly with request for feedback. I anticipate the need to work 25 hours a week due to the time it takes for public feedback and Yam governance timing.

  • 2 Weeks – Requirements Doc
    a. Publish / Feedback / Snapshot Approval
  • 4 Weeks - Evaluate current investment strategy of a moderately portfolio targeting < 0.75 Beta and < 0.5 Correlation. Incorporate ideas around protocol owned liquidity and long term governance adjustments. Make recommendations.
    a. Publish / Feedback
  • 8 Weeks - Create a framework for rebalancing and maintenance of the treasury.
    a. Publish / Feedback
  • 4 Weeks - Steward recommendations thru Yam governance, adjust if needed and assist in applying changes to Yam Treasury.
    a. Publish / Feedback / Snapshot Approval / On-Chain Approval

Additional Information :question:

Please add any additional information here that doesn’t have a place to go above and you think is important to fully specify this project.


:heart: :rocket: :sweet_potato:

Copyright and related rights waived via CC0.

I will be hosting a AMA on Discord on 2022-07-07T17:00:00Z to discuss any questions about this requirements doc. Feel free to comment here as well as join the discussion on Discord.

Thanks for the doc. Looks complete in its details. I have one overall question from the User Flow section. It says…

“Every month a user will initiate a check of the treasury using the guide.”

Is the ‘user’ defined as anyone? Or is it a defined role that some user is compensated to do? Depending on which one it is, please explain a little more how that functions.

The goal would be that anyone can do it. It could include compensation but doesn’t have to. Ideally it would be done by the govops team as a part of regular maintenance. Under most circumstances the treasury likely won’t need any rebalancing, maybe 1-2 a year depending on the volatility of the market.

Feddas

This is all good stuff. With that said, I have a number of suggestions that I think will be helpful, which you can take or leave.

The main comment I have is that the Treasury Management work that you are proposing is really the creation of a strategy document and process to implement and maintain that strategy. This is kind of similar to the Re-Org work in that it is hard to get into defining specifications to implement without having that strategy worked out. So I think you should focus more on defining the strategy and less on the process to re-balance. This would then also jive with the fact that the implementation work is mostly undefined in your document.

You can delete all this info from this post. This is metadata that could be used for the governance repo but isn’t needed here.


The framework seems to be focused on determining whether a rebalance should occur but does not answer how a rebalance should occur. It will be important to make that clear since even if a recommendation to rebalance is made, if the infrastructure to actually perform the trades doesn’t exist then the framework isn’t nearly as helpful. Currently, the DAO only has a smart contract written to swap assets via Uniswap v2 style amms, or via OTC, which has been the reason why we haven’t swapped some of the assets already (ie. INDEX). You mention it in the requirements section but I think it should go here.


This is the most important part of this proposal in my mind. Without consensus on the answer to this question, almost any strategy is viable. Only after answering it can we then decide if the current portfolio strategy (that isn’t being used) is working and/or what other strategies could better help us reach our goals.


For the requirements, this is good, although you don’t need to use the exact formats that I had there.

These are good, but I think it makes sense to be a bit more specific. What needs to be done to make this true? My first thought is something like: “All DAO Treasury Data and the guidelines for rebalancing MUST be publicly available so that anyone with the skills listed for “any user” can initiate the process.”

And then somewhere in this spec we should have a discussion of what we think that entails. How is that data served? Where is it located? How is it kept updated?

These feel vague too. What relevant data? How does it accept it? Into the spreadsheet that anyone can download? Is this essentially an equation?

I don’t think this is requirements information, but instead scope information. An example of a MUST NOT requirement is something like “The rebalancing mechanism MUST NOT allow a rebalance to happen without governance approval.” Scope defines what the project will do, and these requirements then set down rules that define how it will do so.

And on an unrelated note, a framework to balance the treasury without the code to submit the rebalanced to governance is kind of useless and I believe needs to be added to the scope in some way. Maybe there is a first part that talks about the Whys and methodologies to rebalance, and a second that deals with implementation.

I don’t understand the second bullet point you list here.


As Designer mentioned, who is this user? Why will they initiate this check? Are they compensated? Does it need to be every month, or just when certain criteria are met? This again feels to me like a scope question and not a flow question. Per my first comment about starting with understanding the goals and strategy of the treasury before implementing the process for rebalancing, it may make sense to think about “user flow” as a broader topic where the Treasury, DAO, and person doing the analysis are all “users.”

The main dependency is “code to rebalance treasury,” which is not included in this proposal and is a pretty huge dependency and should be included in the scope. Most of the transactions to rebalance the treasury so far have been more than just “simple swaps of assets.” They require additional contracts to prep and make the swaps occur correctly after the timelock delay. If we aren’t thinking about these implementation issues then we risk creating a rebalancing plan that doesn’t work for us, or just plain doesn’t work.


Are you proposing that this may be an auto-rebalancing product? As far as I can tell, nothing mentioned in the earlier parts of the document is really anything like an enzyme or tokensets fund, so I am curious how these are comparable. Just because they may hold a fixed percentage of different assets and rebalance?


By what criteria is the current strategy going to be evaluated? Without that being clear how can you evaluate?

Can you clarify what about this takes 2 months (200 hrs)? Seems like a huge amount of time to do this, especially if it includes no code work.

Also seems like a lot. 100 hours of work?


Can you take this out? It will be included in the grant proposal. This is the requirements/specification document and should not be specifying a rate.


I would be more supportive of this proposal if it included more information and time spent on determining what the DAO’s treasury goals should be at a high level. What is the purpose of the treasury and how should that then be strengthened by the rebalancing and treasury management efforts? This needs to tie in and reinforce the work that we are doing to redefine the organizational structure.

Anything else risks doing a bunch of work that later becomes outdated.

This is #2 on the project scope, to first evaluate the current strategy and how to fit this with the current needs and limitations of the DAO.
Then #4 is to actually create a reproducible framework to be able to re-balance afterwards.

After implementation of the strategy, the framework is a guide to rebalance the treasury that:

  1. Determines whether or not it needs to be rebalanced
  2. How much of each assets need to be swapped in order to achieve rebalance.

Since there are obvious limitations to YAM’s on-chain treasury rebalancing, scope #2a will define and address those issues for the framework.

It makes the most sense to use Yam’s current infrastructure to answer these questions but at the moment these are not fully defined.

They are dependent on the results from consensus in step 1. Yes it would be a spread sheet.

The framework take into consideration what limitations govops has to write the code. If govops can only do simple swaps then that will be a limitation of the treasury rebalancing.

This silo will evaluate current investment strategy and update if needed according to consensus. Then it will create a rebalancing framework around that strategy. If in the future, you want to completely change the strategy and or assets inside the treasury so that the framework no longer can accommodate then this framework will no longer work. For example, right now we use beta and correlation to determine an allocation of assets. If in the future governance decides that to buy 50% $YAM tokens and 50% ETH tokens, the framework will no longer apply.

The whole point of this silo is to work within the limitations of Yam. Hence Scope 2b. No point in creating something that OpGov cannot execute because we all know I am not a dev and could not write the code.

Depending on what consensus is around the strategy, it could include products from enzyme or tokensets. I am not counting on it, but the section in the requirements doc asks for comparable alternatives which is what I have provided here. This silo is very specific to Yam in the sense of the limitations and expenses.

By the criteria that the strategy is defined by: portfolio targeting < 0.75 Beta and < 0.5 Correlation. Running the numbers and seeing if the allocation model that was proposed by Krugman still fits with the new data.

The answers above should give a better picture of the full scope of this project. There are also many unknown variables that pertain to the current Yam infrastructure that hasn’t been finalized, the amount of time feedback could take. Questions are quick to ask but answers take time to figure out.

This time will include the necessary time that is needed to interface with Yam GovOps council in order to get a working model for future rebalancing including the trial and error that might happen.

Most of this is included in scope #1.
Rebalancing and treasury management is to minimize risk but maximize returns, it’s not difficult, it’s only difficult here because of the limitations that Yam has to work with.

This silo it will define create and maintain a risk management strategy for the treasury that will support the planned organization structure, but it won’t be able to define it.

Feddas

Here is #2 on the project scope

Maybe I am mis-interpreting, but this reads to me like the evaluation is of the financial strategy and not of the treasury itself. Your bullet point a says “we need to evaluate for the long term success of YAM…” which I agree with, but I am unclear how this proposal seeks to evaluate what the goals and strategies for this long term success entail.

This viewpoint comes from my conversations with Krugman, in which it became clear that the rebalancing tools that he was using are just that: tools. They are a way to make decisions from numerous options, but are often tweaked to reach the outcome that is desired. As much art as science. That is fine as that is how the tools work, but as with any tool, it is key to know what you are trying to build before just hammering away.

Questions such as:

  • what assets should the treasury hold?
  • What should the treasury do if it earns assets from different projects?
  • How does it decide to sell or hold acquired assets?

I know that you can answer these questions with a pure financial strategy, but realistically you can create a treasury with Beta x, volatility y, and correllation z in many ways and using many different assets. If we want less correlation in our current portfolio we could sell any of the non-stable assets to stables and that number would go down. How do we pick which one?

This is why I am pushing for a more comprehensive plan for the treasury that answers the question above outside of a purely financial strategy and then applies the financial strategy to it as a secondary driving layer. The overall, conceptual strategy for how the treasury operates is the engine. The financial re-balancing strategy is the brakes and airbags.

This post isn’t meant to say that this Silo is not worth it. On the contrary I think it is very worth it, but the focus is not where I believe it should be. Not in an equation where someone can crunch some numbers and get an answer, but in an analysis of the treasury, the state of the DAO, and a recommendation for how the treasury should be used. AND THEN set up the spreadsheet to allow easy analysis for rebalancing.

Financial planning is about answering questions using purely financial strategy. It is not intended to answer Yam DAO’s overall operating strategy. This silo will create a financial strategy that given the current expected expenses and investment strategy it will manage risk by rebalancing assets.

Your asking for something that is out of the scope of “treasury management.” The scope of this silo is to analyze current “state and past state of the DAO” make some reasonable extrapolations as far as it pertains to the treasury, then implement a strategy, build framework/guide around that strategy for long term maintenance that anyone that can plug in numbers in an excel sheet can use. The key is to nail down the “purely financial strategy” and maintain it.

Beyond purely financial strategy everything else is subjective and it depends on who you ask. If you want those answers they really have to be answered by the tokenholders vote. I will make suggestions on the questions above but it will be up to the token holder to come to a decision.

Yes, that is exactly my point. The thing we need is outside of the scope of this proposal.

Everything is subjective. The point of governance is to answer subjective questions. As much as you think treasury management isn’t subjective, it is. Because the financial strategy is built on a foundation of what the expected outcomes should be. And whoever picks what those outcomes should be defines the strategy.

At the end of this exercise, if this is a purely financial strategy, we will end up with a document that says “the treasury should have a beta, correlation, vol, std. dev of x,y,z, and w and should be rebalanced to keep these numbers within x% range.”

Why? Because I do financial planning and say so? Because this will give you a “healthy” treasury? Why did we pick these characteristics in the first place? We don’t need treasury management. We need treasury strategy.

But we need what’s in the scope of this proposal because right now the treasury is overweight in stablecoins and it would benefit from a rebalance.

As a previous financial planner, the goal is to create a framework to maintain the treasury based on investment strategy by using rebalancing. No it will not help Yam figure out if you should or should not invest 500k into xyz project. But it will rebalance the treasury after you take out the 500k to invest in project zyx.

It will warn you if your stablecoin runway is below x months.
It will recommend that you set aside 1 year worth of current contributor compensation
It will recommend that you set aside this compensation and expenses in usd in order to minimize the effect of volatility on allocated resources.
ect.

Feddas

Thanks for making the updates. I still have questions:


What do you see as Yam’s mission and what does “supporting it” mean in this context? If this is something that we don’t really know the answer to then part of this exercise should be better defining it.


What is the problem that this project will solve? That isn’t clear here. The only problem I see is that the DAO is not generating revenue/income. But I’m not clear how this proposal solves that problem (I don’t think it does).

So what is the problem then?

  • That Crypto is volatile and we want to minimize volatility in the treasury?
  • That our treasury is under-performing some benchmark? If so, what benchmark?
  • That there hasn’t been a rebalance in a while? If so why is that a problem?
  • That we may run out of runway?

Defining the problem is what will enable us to understand what solutions are best suited for the treasury? Stability? Growth? Investment? Security? Some kind of sweet spot of all 4?


I want to dumb down the project scope to make sure we are on the same page about it.

Step 1: Determine the needs of the of the DAO vis a vis the treasury
Step 2: Crunch numbers to see where the treasury metrics currently sit compared to the previous benchmarks. See what numbers come out if the treasury were to be rebalanced based on these numbers.
Step 3: Evaluate whether the answer received in step 2 is still in line with the answer in step 1.
Step 4: If the answer to step 3 is NO, determine whether there is a better strategy to implement and if so design it.
Step 5: Build a tool that lets an “average user” run the numbers and recommend a rebalance.

What would you change about the above?

If the above is mostly accurate, I wonder if it makes sense to make step 5, and any subsequent steps part of a separate scope, or at least as a “Part 2.” It seems to me that steps 1-4 are one meta-task of evaluating the treasury and rebalancing strategy. And then step 5, as well as any execution of rebalancing and governance requirements fall into a different category, which is less about understanding the system and more about building the tools to execute on the system.

I think doing the above would help us define project requirements for the different parts as well. Right now the project requirements are a bit of a mess because they have to deal with both the treasury re-balancing strategy and the act of rebalancing, which have different requirements.

Part 1:
Designing the treasury strategy and rebalancing criteria should have requirements about how the treasury is impacted. For example, what must be maintained (i.e. min. USDC runway, min contributor comp. funds, etc), what should be maintained (volatility, beta, std. dev, etc), and what needs to be considered for future changes. Users here are the Treasury and the DAO.

Part 2:
Then the design and implementation of the rebalancing procedure and tools (including the code!) would be a separate thing with its own requirements for use. These requirements would be designed with the treasury requirements in mind, but generally are requirements about how the “average user” will interact with the rebalancing procedure and how it will get executed.

The above will also help with this issue as it separates concerns into roughly “not code” and “code.” I am being pedantic about this because the whole goal of minimal YAM is to not just say “Devs will do the code part” and then expect someone else to do it. Saying “Gov-Ops will do the code stuff” is the same thing. So I want Part 1 to still be valuable even if there is no execution. And it is as it gives the roadmap for part 2. Once we know what kind of changes need to be made we can determine how they can be executed. And hopefully they are also being discussed in part 1 so that there aren’t any huge surprises.

What do you think?

This silo isn’t to define what Yam’s mission is supposed to be, it’s to evaluate the current investment strategy of the treasury, adjust if needed and setup a maintenance framework to reduce risk. The treasury “supports” the Yam DAO by paying for expenses, if the treasury runs out of money then Yam DAO will likely stop functioning properly, which is the problem that this will mitigate.

In specific terms:

  1. Treasury is currently out of balance, stable coins account for 49% of the treasury when based on the current allocation it suppose to be at 30%.
  2. Current strategy uses beta and correlation to determine risk, these numbers have not been checked since 2021.
  3. There has been a significant changes to Yam’s organizational structure and expenses but the current strategy does not account for this.
  4. Current rebalancing strategy created by YIP-80 requires that Krugman to “crunch the numbers”. Unfortunately he is no longer able to do this for Yam, so no one does it now.

My proposal will address these issues.

Overall this makes sense, but I am against splitting my proposal, it is either done and completed or not done at all. Breaking up this proposal gives it the opportunity to “half complete” work. Yes part 1 could be independently valuable, but if part 2 isn’t complete, ultimately it is useless. Many of Yam’s previous projects have fallen into this category. For example, your YIP-80 YAM Treasury Rebalancing was only used to rebalance the treasury once because it relies on Krugman to crunch the numbers in order to figure out the rebalance. The idea behind part 2 is that I will build the tools necessary so that anyone can “crunch the numbers”.

As for the code, the dev team has done rebalancing in the past, this will not be any more complicated than previous which we have documentation for. While I understand your frustration about significant dev work that might be required for a new product/project, this case is not the same. The goal of this silo is to create something that can be easily used and executed with minimal resources.

Thank you for all the feedback. I had a chance to discuss with Ross more on the scope and outcome of this project and why it is important that our treasury is maintained. A few things to clarify:

  1. The scope of this project is purely to define and create a treasury maintenance system that will allow assets to be used to support Yam DAO.
  2. This treasury maintenance system will be as simple as possible so that it won’t require a specific person in order to use. Reliance on a specific person has limited the use of previous treasury management sytems.

The snapshot to proceed to the next step has been put up here:
https://snapshot.org/#/yam.eth/proposal/0xc94810b111de9f5938111ebb7770e31f2c92ce0fe8fb8110823e8a9071784b7f

Can you please update the original post to include this information.

1 Like