# Service quarters

Solstice quarters with bound FPV, share submission, and gate outcome.

- Table: `service_quarters`
- Parquet: https://data.filecoindataportal.xyz/service_quarters.parquet
- Source SQL: https://github.com/davidgasquez/filecoin-data-portal/blob/main/assets/main/service_quarters.sql
- Page: https://filecoindataportal.xyz/datasets/service_quarters
- Catalog: https://filecoindataportal.xyz/datasets.md
- Rows: ≈ 1 (snapshot estimate) · 16 columns
- Coverage: not date-indexed
- Raw sources: `raw.riba_eth_logs`, `raw.riba_eth_logs_decoded`, `raw.solstice_deployments`

## Query

```sql
select *
from 'https://data.filecoindataportal.xyz/service_quarters.parquet'
limit 10;
```

## Columns

| Name | Type | Description |
| --- | --- | --- |
| `quarter` | `BIGINT` | Solstice quarter number (1 = activation quarter). |
| `start_block` | `BIGINT` | First epoch of the quarter. |
| `end_block` | `BIGINT` | Last epoch of the quarter. |
| `posting_start_block` | `BIGINT` | First epoch of the posting window (the next quarter start). |
| `verification_start_block` | `BIGINT` | First epoch of the verification (correction) window. |
| `bound_block` | `BIGINT` | First epoch when posted volumes are bound. |
| `as_of_block` | `BIGINT` | Last epoch covered by contiguous decoded source logs (capped at UTC yesterday). |
| `is_bound` | `BOOLEAN` | Whether source coverage reaches the bound epoch. |
| `bound_volume_atto_usd` | `DECIMAL(38,0)` | SRA aggregated FPV (posts and corrections, removals never deducted), in atto-USD; NULL until bound. |
| `shares_submitted_at` | `TIMESTAMP WITH TIME ZONE` | Observed SharesSubmitted timestamp; all-zero submissions emit no event. |
| `share_recipients` | `BIGINT` | Recipients in the observed submitted share map. |
| `shares_total_atto_usd` | `DECIMAL(38,0)` | USD total over admitted recipients in the observed share map. |
| `gate_checked_at` | `TIMESTAMP WITH TIME ZONE` | Observed SWA gate check timestamp; quarter 1 is never gated. |
| `gate_passed` | `BOOLEAN` | Whether the bound FPV met the gate threshold; NULL if not checked. |
| `gate_steps` | `BIGINT` | Gate steps after the check. |
| `gate_threshold_atto_usd` | `DECIMAL(38,0)` | Threshold applied (base \* stepRatio^steps, FixedU18 floor math), in atto-USD; NULL if arithmetic exceeds HUGEINT. Parquet has no HUGEINT (exported as lossy DOUBLE); DECIMAL(38,0) keeps atto amounts exact. |

## Sample

1 rows exactly as stored. Values are code spans; strings with whitespace or backslashes use JSON literals. A bare null is missing, not zero.

| `quarter` | `start_block` | `end_block` | `posting_start_block` | `verification_start_block` | `bound_block` | `as_of_block` | `is_bound` | `bound_volume_atto_usd` | `shares_submitted_at` | `share_recipients` | `shares_total_atto_usd` | `gate_checked_at` | `gate_passed` | `gate_steps` | `gate_threshold_atto_usd` |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `1` | `6470280` | `6733253` | `6733254` | `6741894` | `6762054` | `6497519` | `false` | null | null | null | null | null | null | null | null |
