> For the complete documentation index, see [llms.txt](https://snowconedao.gitbook.io/snowconedao/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://snowconedao.gitbook.io/snowconedao/learn/glossary/funding-cycle.md).

# Funding cycle

**What everyone needs to know**[**​**](https://info.juicebox.money/dev/learn/risks/#what-everyone-needs-to-know)

* Projects can configure funding cycles to create rules to follow over set amounts of time.
* A funding cycle's parameters can't be changed while it is in progress, but the project owner can propose reconfigurations to an upcoming cycle at any time.
* Funding cycles roll over automatically. If there is a reconfiguration in place and it has been approved by the current cycle's ballot, it will be used. Otherwise, a copy of the current funding cycle will be used with an updated `start` time and discounted `weight`.
* The mechanics of each project can vary dramatically depending on how its funding cycles are configured over time. Become familiar with how projects work to get a better understanding of how these decisions can be made.

**What you'll want to know if you're building**[**​**](https://info.juicebox.money/dev/learn/risks/#what-youll-want-to-know-if-youre-building)

* A funding cycle is represented as a SNOWFundingCycle data structure.
* It is possible to create funding cycles that allow for total flexibility, total rigidity, or anything in between. Flexibility can be useful for rapid experimentation and evolution, whereas rigidity can be useful for dependability and trust. Anyone can configure a project's first funding cycle alongside creating the project with a call to`SNOWController.launchProjectFor(...)`, and the project's owner can issue a reconfiguration to subsequent funding cycles with a call to `SNOWController.reconfigureFundingCyclesOf(...)`.
* If a project has a current funding cycle, it can be found by reading from `SNOWFundingCycleStore.currentOf(...)`. A project's upcoming funding cycle can be found by reading from `SNOWFundingCycleStore.queuedOf(...)`. The funding cycles that carry each original configuration can be found by reading from `SNOWFundingCycleStore.get(...)`. `SNOWController.currentFundingCycleOf(...)` and `SNOWController.queueFundingCycleOf(...)` can also be used to get a reference to the funding cycle's metadata alongside.
* A funding cycle's `ballot` property is useful for setting rules by which any proposed reconfiguration to subsequent cycles must adhere. This is useful for community oriented projects as it can prevent a project owner from maliciously updating an upcoming cycle's configuration moments before it begins without the broader community's consent. A funding cycle's ballot status, which is a `SNOWBallotState` enumeration, can be found by reading from `SNOWFundingCycleStore.currentBallotStateOf(...)`.
* Look through the`SNOWFundingCycleStore` contract for a complete list of relevant read functions, write functions, and emitted events. Several properties of`SNOWController` and `SNOWSingleTokenPaymentTerminalStore` also store information relative to funding cycle configurations.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://snowconedao.gitbook.io/snowconedao/learn/glossary/funding-cycle.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
