> For the complete documentation index, see [llms.txt](https://docs.egl.vote/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.egl.vote/documentation/tally-votes.md).

# Tally Votes

At the end of each epoch, the votes cast in that epoch need to tallied to determine the new `desiredEgl` value. This can be called directly by any wallet, or will get called automatically on any `vote(...)` or `reVote(...)` call if the epoch has ended.

See [Voting Threshold](/protocol-overview/voting/voting-threshold.md) for details regarding participation requirements

See [Calculating desiredEgl](/protocol-overview/voting/calculating-desiredegl.md) for details regarding how the `desiredEgl` is calculated

### 1.`tallyVotes()`

#### Function Signature

```javascript
function tallyVotes() public whenNotPaused
```

#### Validations

| Validation **Rule**                                        | Description                                                          |
| ---------------------------------------------------------- | -------------------------------------------------------------------- |
| `block.timestamp > currentEpochStartDate.add(epochLength)` | Epoch must have ended before the votes for that epoch can be tallied |

#### Events Emitted

* `VoteThresholdMet` (Conditional)
* `VoteThresholdFailed` (Conditional)
* `CreatorRewardsClaimed` (Conditional)
* `VotesTallied`

#### Web3 Example

```javascript
await eglVotingInstance.tallyVotes({ from: "0x2be650ba..."})
```
