# Epoch Mechanics

As discussed in the [epoch timeline](https://docs.knox.premia.finance/overview/vault-system#epoch-timeline) section, the epoch is a series of operations which occur on a 7-day schedule. These operations are handled by an authorized keeper account, and enable actions such as purchasing options, withdrawals, fee collection, etc. The epoch can be broken down into three operations, auction initialization, epoch initialization, auction processing.

![](https://842858072-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Felv7CLFpaSXBYCSmCbxh%2Fuploads%2Fgit-blob-9e841ced96ae22a25db1672a46e57c0b625cde71%2Fepoch-timeline-2.png?alt=media)

### Auction Initialization

On Thursday at approximately 8am UTC the keeper calls `initializeAuction`:

1. the option expiry timestamp, long and short token ids, and strike price are set, strike price is calculated using the [delta strike formula](https://docs.knox.premia.finance/overview/vault-system#delta-strike-selection)
2. the auction start and end times are set
3. `Vault` calls `initialize` on `Auction`

### Epoch Initialization

On Friday at approximately 8am UTC the keeper calls `initializeEpoch`. It is assumed if the vault previously underwrote an option, it will already have been expired and processed prior:

1. if the epoch id is greater than 0, `Vault` will remove reserved liquidity from the Premia pool
2. if the epoch id is greater than 0 and `Vault` earns a positive net income a [performance fee](https://docs.knox.premia.finance/overview/fee-structure#performance-fee) is calculated and transferred to the fee recipient account.
3. `Vault` calls `processDeposits` on `Queue`, transferring all of the collateral held in `Queue` to `Vault`. In exchange for the deposited collateral, `Vault` will mint and transfer vault shares to `Queue`.
4. the option max/min prices are calculated and set for the next auction
5. the epoch id is incremented

Once the epoch is initialization process completes there will be an 8 hour gap before the auction begins.

### Auction Processing

On Friday at approximately 4:30pm UTC or when the auction has been finialized the keeper will call `processAuction`:

1. `Vault` stores the total assets held in `Vault`, this value represents the amount of assets held before premiums are sent to `Vault`.
2. if the auction has not been finalized, `Vault` finializes it
3. `Auction` transfers the premiums earned during the auction to `Vault`
4. `Vault` underwrites the options sold during the auction via Premia's option pool, the long token is sent to `Auction` and the short tokens is sent to `Vault`
5. `Vault` sets the divestment timestamp to prevent the collateral from entering the "free liquidity queue" upon exercise or expiration
6. `Vault` processes the auction, after 24 hours the option buyers may withdraw their long tokens from `Auction`
7. `Vault` removes the withdrawal lock, users may withdraw or redeem from `Vault`
