Dashboard
Your studio's gear and coverage at a glance.
The Dashboard is your home screen. It summarizes your inventory, its value, your insurance coverage, and upcoming service in one view.
Page layout
The Dashboard opens with a greeting, then is organized into sections, top to bottom:
- Greeting — "Hi, [your name]". While your documentation is still incomplete, a subline underneath it reads "Here's your studio on day one. It fills in as you go." See Greeting.
- Tally board — your headline studio figures: gear value and item count, plus — when maintenance tracking is enabled for your studio — a service overdue count. Always leads the page, directly under the greeting. When your studio has built up enough recorded value history, an additional row below the stat cards shows the Value movers module. See Tally board.
- Readiness Ring hero — a two-card row: the Readiness Ring (how much of your inventory is documented) beside the Documentation Gap card (your gap figure — or value at risk — plus how much gear value is tracked). Sits directly below the tally board. Shown only while documentation is incomplete. See Readiness ring and dashboard hero.
- "What needs you" inbox — a ranked, dismissible list of tasks specific to your studio. See Attention inbox.
- Critical assets — a snapshot of your highest-value gear. This is the last section on the page.
Critical assets layout
The Critical Assets grid always shows four columns, no matter how wide or narrow the browser window is — there's no breakpoint that steps it down to two columns or one on a smaller screen.
A responsive version of this grid for phone and tablet widths is expected from a separate mobile web project, not from this page.
Greeting
The Dashboard opens with "Hi, [your name]". A very long name is shortened with an ellipsis so it never pushes the rest of the header around.
Day-one subline
While your studio's documentation is still incomplete, a line appears under the greeting:
"Here's your studio on day one. It fills in as you go."
The subline is shown only while heroVisible is true — the same condition
that keeps the Readiness Ring on screen. Once
every item in your inventory carries a usable value, the subline disappears
along with the Ring — a returning studio with everything documented isn't told
it's day one.
The subline never appears on a Founding Studio account. That cohort gets its own welcome message directly below the greeting instead — see First-Run Activation.
Loading skeleton
While the dashboard data is loading, the page shows a layout skeleton — a placeholder that mirrors the shape of the content that is about to appear. The skeleton uses the same containers, grid tracks, card fills, and typography classes as the loaded page, so the content drops in without shifting the layout.
The skeleton replaces the old centered spinner that previously appeared during loading.
Delayed paint — no flash on a fast load
The skeleton doesn't appear the instant loading starts. It waits 150ms before drawing any placeholder content. If your dashboard finishes loading within that window — a fast connection, cached data — you go straight from nothing to the real page, with no skeleton flicker in between.
During that 150ms wait, the page still carries an accessible "loading" status
for screen readers (the same role="status", aria-busy="true", and
aria-label="Loading dashboard" described below), but nothing is drawn on
screen for sighted users until the delay passes.
Accessible status
The skeleton marks itself as a live region so assistive technology knows the
page is loading. It carries role="status", aria-busy="true", and
aria-label="Loading dashboard".
The decorative skeleton sections (Ring card, tally, critical assets) are marked
aria-hidden="true" so screen readers ignore the placeholder content and only
announce the status region.
Shape memory
The skeleton remembers the shape the dashboard last loaded with, so it matches the layout on your next visit rather than always showing the same default. The shape is stored in your browser and is per-device.
Two layouts are possible:
| Layout | When it appears |
|---|---|
| Ring | Documentation is still in progress — the Readiness Ring and Documentation Gap card are shown below the tally, and the gap figure reads Pending. This is the default on a first visit. |
| Tally | Every item is documented — the Ring row has stepped aside and only the tally board remains at the top, with the status line, report action, and disclaimer. |
The shape also tracks two finer details that affect row height:
- Records freshness line — whether the Total Gear tile shows a "Records current as of …" line. This line only appears after the studio has generated its first full export. The skeleton omits it until the dashboard has shown it at least once.
- Gap tile notes — how many lines sit beneath the gap figure (0, 1, or 2), depending on whether the gap is Pending, whether the studio is uninsured, and whether an active policy carries a deductible.
Fallback behavior
On a first visit, or when the stored shape cannot be read (storage blocked, malformed JSON, unrecognized values), the skeleton falls back to the Ring layout — the shape a new studio sees on its first real load.
A partial or malformed stored shape is never used as a partial guess. The skeleton always uses either a fully valid stored shape or the default.
What the skeleton does not include
Two sections that appear on the loaded page are deliberately absent from the skeleton:
- "What needs you" inbox — this section fetches its own data after the page mounts and renders nothing until that fetch completes. Including a placeholder for it would cause two layout shifts instead of one.
- Service and Allocation — these sections are data-gated and sit below the fold.
Tally board
The tally board shows your studio's headline figures at all times. It sits directly below the greeting and always leads the page. The Readiness Ring row, when it's visible, sits below the tally board rather than above it.
The tally figures
Two figures always appear:
| Card | What it shows |
|---|---|
| GEAR VALUE | The depreciation-adjusted current value of all active items combined. |
| TOTAL GEAR | The number of active items, plus the records-freshness line when available. See Records freshness line. |
A third figure, SERVICE OVERDUE, appears only when maintenance tracking is enabled for your studio — see Service overdue tile below. When maintenance tracking isn't enabled, the tally shows only the two figures above, laid out in two equal-width columns instead of three.
The tally no longer shows a documentation-gap figure. That figure now lives only on the Documentation Gap card in the hero row below the tally — it is not mirrored here, even once your inventory is fully documented and the hero row disappears.
Large figures shrink to fit
A figure with seven digits or more — for example $1,445,938 — displays in a smaller type size than a shorter figure, so it never wraps onto a second line inside its column. Figures up to six digits (for example $999,999) use the larger size. This only affects type size, not the underlying number — separators and currency symbols don't count toward the digit total, so this behaves the same regardless of your locale's number formatting.
Service overdue tile
When maintenance tracking is enabled for your studio, the tally's third card is SERVICE OVERDUE. It shows how many of your items are overdue for service, based on their maintenance schedules.
- The headline figure is the count of items whose earliest active schedule is past due. An item with more than one schedule is counted once, by its earliest schedule.
- Beneath the figure, a line reads "N DUE THIS MONTH" — the count of items due within the next 30 days that are not already overdue.
- An item whose only active schedule falls more than 30 days out has a schedule, but it isn't counted in either figure.
This reads from the same maintenance_schedules data that powers the
Inventory page's own maintenance summary and
service status filter, but the tally's figure
is its own simplified count — unlike the Inventory summary, it doesn't expose
a separate due-this-week split.
Value movers module
Below the headline stat cards, the tally board can show one more row: a Movers module summarizing what your gear is worth and what's changed recently. It renders inside the same grid as the stat cards, spanning the full width. On a new or thin studio, nothing renders in its place — no card, no placeholder.
When it appears
Three things all have to be true. If any is missing, nothing renders:
- At least 30 days of recorded value history for your studio.
- A comparison day roughly 30 days back — OneTake found a baseline day to measure today's values against. A studio can have 30+ days of history and still have no comparison day — for example, after a gap in how often values were recorded.
- At least one item in your inventory.
If the underlying data can't be read — a failed history-day count, or a failed totals read — the module simply doesn't appear. The rest of the Dashboard still loads normally; a data problem here never blocks the page.
Before running any of the heavier calculations, OneTake first makes one cheap check — a count of how many distinct days of history your studio has. A studio below the 30-day threshold never triggers the heavier reads (the change figure, the movers list, or the trend line) at all.
What it shows
- Heading — "Movers this month", with a "Since [date]" line underneath naming the comparison day. The date drops the year when the comparison day falls in the current year — for example, "Since Sep 17" — and shows the year only when the comparison day is from an earlier year (for example, "Since Dec 31, 2025").
- Headline change — the combined change in value across only the gear valued on both the comparison day and today — for example, "up +$200 (+5.3%)". The direction word ("up" or "down") is shown only when the change doesn't round to $0; a change that rounds to $0 reads as a plain "$0 (0%)" with no direction word attached. This figure is omitted entirely (never shown as $0) when there's no like-for-like comparison to make. When the comparison base was zero, only the dollar amount is shown, with no percentage.
- A trend line — a day-by-day chart of your studio's recorded total value, shown once at least two days of history are recorded. The chart is decorative to assistive technology. A Show details button beneath the chart opens the chart's text alternative — see Value history side sheet below.
- Up and Down lists — the items that moved the most in each direction. Each row shows the item's photo (or a placeholder when it has none), its name, an Up or Down badge naming the direction, the item's value before and after, the signed dollar change, and the signed percent change. A direction with nothing to show is left out entirely rather than displayed as an empty list. Selecting an item opens more detail about its value change — see Mover detail drawer below.
- "No individual item has moved since then." — shown in place of the Up/Down lists when there is a real comparison but no item's value actually changed.
Value history side sheet
Selecting Show details beneath the trend line opens a side sheet titled "Value history". This is the chart's text alternative for assistive technology — the chart itself stays hidden from screen readers, and this sheet replaces the plain-text list that used to sit inside the card for that purpose.
The sheet lists every recorded day as its own row, newest day first. Each row shows:
- the day's date — dropping the year when it falls in the current year, and showing the year for a day from an earlier year
- that day's total recorded value
- the change from the day before: a signed dollar figure, "No change" when the figure rounds to $0, or "First day" for the earliest recorded day, which has nothing earlier to compare against
- how many items were valued that day
- a "Gear added" or "Gear removed" badge when the number of items valued changed from the day before, so a step in the total line isn't mistaken for a price move
The sheet carries the same caution shown with the trend line: "Daily total of recorded values. A step up can be gear added, not a price move."
Mover detail drawer
This drawer shows more detail about one item's value change than the Up/Down row does. It opens as a side sheet (the same shared drawer used for Value history).
The sheet's own title is the generic "Gear value insight" — not the item's name. The item's name appears instead as a heading inside the body, with a "What stands behind this change" subtitle underneath it.
Below that, one rounded card groups two things together:
- The change line — the item's value before and after (for example, "$900 → $1,200"), then the signed dollar change and signed percent change, worded as "over the last month." When the item's value rose, this line is shown in a highlighted color; a fall is shown in the ordinary text color.
- "Where this value comes from" — the market source behind the item's current value (for example, "eBay · 50 asking"), shown as a plain text line with a tooltip giving the fuller detail, rather than as a colored badge. When the value moved at the last weekly refresh, a line underneath states how much and in which direction. The heading for this part is visually hidden, but still announced to assistive technology as a named region.
Below the card, "Recent lookups" lists the item's past value lookups. Each entry names the provider (eBay or Reverb), the median price found for that lookup (or "no usable listings" when none were usable), the date of the lookup, the sample size, and the confidence level.
The module is deliberate about its language: it never calls a change a "gain" or a "return," and makes no promise that gear appreciates over time. A footnote on the module reads "Estimates from recorded value history. Not a forecast."
See How the Movers module's figures are calculated below for the underlying baseline, mover, and totals logic.
Readiness ring and dashboard hero
While your studio's documentation is incomplete, a two-card row sits directly below the tally board: the Readiness Ring card and, beside it, the Documentation Gap card. This row is sometimes called the dashboard's "hero."
Both cards read from the same underlying readiness calculation, so the Ring and the Documentation Gap card can never disagree with each other about your studio's documentation progress. The Documentation Gap card's own dollar figure is computed on top of that shared state from your gear-insuring policies' combined limit — see How the figure is calculated below.
Row layout
The Ring card takes the wider share of the row and the Documentation Gap card the narrower share: the Ring spans the first 8 of 12 grid columns, the Documentation Gap card the remaining 4 — at every browser width. There's no breakpoint that stacks the two cards full-width on a narrower screen, or that reflows the Ring card's own internal layout: like the Critical Assets grid, this row is a desktop-only layout for now, and a responsive version for phone and tablet widths is expected from a separate mobile web project, not from this page.
The row has a 300px minimum height — the height Figma draws both cards at — rather than a fixed height, so a card with longer copy can still grow the row taller instead of overflowing it.
Directly below the row sits the adequacy disclaimer as a single footnote, outside both cards.
Readiness Ring card
The Ring card always renders its progress ring at the same size — a 192px arc — no matter how far along your documentation is. Previously the ring scaled up as you made progress; now only the surrounding text changes between stages, not the ring's size.
The Ring's headline is now the gear value you've documented so far — for example, "You've documented $50,000 so far." The documentation gap figure itself, the literal word "Pending," and the "Value at risk" framing for an uninsured studio no longer appear on the Ring card at all — all of that now lives exclusively on the Documentation Gap card beside it.
The Ring card no longer carries the IV-12 adequacy disclaimer either — that text now lives as a single footnote below the whole row. See Adequacy disclaimer.
"Your policy covers up to…"
When OneTake knows the combined coverage limit of your active, gear-related policies, the Ring's supporting text includes a sentence quoting it — for example, "Your policy covers up to $21,000." — followed by a prompt to add the rest of your gear so OneTake can show your exact documentation gap. When no such limit is known, only the prompt appears, without the policy-limit sentence.
Only policies that actually insure your gear count toward that figure: Studio property, Equipment floater, and Touring rider policies. Liability, umbrella, vehicle/transit, and other non-gear policy types are never added in, even though they carry real limits of their own — summing them in would overstate what your gear is actually insured for.
The figure only includes policies that are active today: not archived, already started, and not yet expired. An expired, future-dated, or archived policy's limit is left out of the sum, even if its type would otherwise qualify.
When no active policy carries any limit at all, the policy-limit sentence is dropped entirely rather than showing a blank or zero figure.
Documentation Gap card
The Documentation Gap card sits beside the Ring card. Its heading always reads DOCUMENTATION GAP — the wording doesn't change based on your studio's insurance status, the way it once did.
A small info link sits inside the card's heading, linking out to a help article explaining that this figure is not an insurance-adequacy claim. Selecting it opens the article in a new tab.
How the figure is calculated
The card compares what you've documented against what your insurance can actually cover:
figure = (combined limit of your active, gear-insuring policies)
− (total estimated value of your documented gear)The figure is floored at $0 — documenting more gear value than your policy limit never shows as a negative number or a "surplus."
Which policies count toward the limit follows the same rule as the Ring's "Your policy covers up to…" sentence above: only Studio property, Equipment floater, and Touring rider policies that are active today are summed.
Unlike the card's previous behavior, it no longer waits for every item to carry a value before it shows a figure. As long as a policy limit is known, the figure appears right away and simply shrinks as you document more gear.
When the card reads Pending
The card shows Pending — never a figure, never $0 standing in for an unknown — in three situations, each with its own explanation line:
| Situation | Reason shown |
|---|---|
| No active gear-insuring policy carries a known limit | "Confirm your policy limit and we'll show your gap." |
| Your studio is uninsured, and at least one item still lacks a value | "N items still need a value." |
| Your studio has no gear recorded yet | "Add your gear and we'll compare it to your policy." |
A studio that hasn't yet answered the "do you insure your gear" question is treated the same as an insured studio for this calculation — if a gear policy with a known limit already exists, the card shows the computed figure rather than waiting on that answer.
Deductible footnote
When your studio has an active policy with a deductible, a footnote appears under a real gap figure — never while it reads Pending — explaining that the figure excludes policy deductibles, marked with a small asterisk on the dollar amount. This note appears whether the figure is a genuine dollar gap or the floored $0.
The Documentation Gap card no longer includes a "gear value tracked" summary block — the card now shows only the heading, the figure (or Pending), and the deductible footnote when it applies.
The Documentation Gap card hides whenever the Ring does — once every item in your inventory carries a usable value, both disappear together. See When the Ring steps aside.
When the Ring steps aside
The Readiness Ring row — the Ring card plus the Documentation Gap card beside it — sits directly below the tally board. Once every item has a usable value — meaning documentation is complete — there is no progress left to show. At that point:
- The Ring row is hidden entirely. Both the Ring card and the Documentation Gap card disappear — nothing fills their slot below the tally board.
- A line appears above the tally reading "All N items documented", so the change doesn't happen silently.
- The Generate report button, previously shown in the Ring's hero, moves into the tally header — unless the attention inbox is currently showing its "Your valuation report is out of date" item, in which case that item owns the export instead. See Re-export nudge below for how the two hand the action back and forth. Either way, the export action appears exactly once on the page — the page never duplicates it.
The Ring row stays visible — and no Generate report button appears in the tally header — while any item still lacks a value, even if the percentage rounds to 100%.
When the export moves to the inbox
When your studio's last full export is old enough and something has changed since then (see Re-export nudge), the attention inbox shows an item prompting a fresh export. While that item is on screen, the tally board's own Generate report button is hidden, and the export is offered from the inbox item instead — using the same export dialog, run in place.
The status line above the tally ("All N items documented") stays visible either way; only the button moves.
Once you successfully export a report from the inbox item, that item comes off the list and the tally board's Generate report button reappears. The row holding the button keeps a fixed minimum height so the page doesn't jump when the button appears or disappears.
On accounts where the attention inbox isn't shown at all, the tally board's Generate report button is never handed off — it remains the only place to export from the Dashboard.
Adequacy disclaimer
The IV-12 adequacy disclaimer — the line clarifying that OneTake tracks documentation, not insurance adequacy — travels with whatever is the page's headline gap figure:
- While the Ring row is visible, the disclaimer appears as a single footnote below the entire row, underneath both the Ring card and the Documentation Gap card. It is not part of either card — it belongs to the row as a whole.
- Once the Ring row steps aside and the tally's gap figure becomes the page's headline gap, the tally board carries the disclaimer instead.
Motion
A small amount of movement plays on the Dashboard each time it loads or its figures change: the tally board's headline numbers count up, and the Readiness Ring's arc grows from empty. Both are purely visual — the values underneath never change, and they're always available to assistive technology in their final form.
Tally figures count up
The tally board's headline figures — Gear value, Total gear, and (when shown) Service overdue — count up from zero to their real value over 600ms on an ease-out curve, both on first load and whenever the underlying figure changes.
The accessible label on each figure (what a screen reader announces) always states the final value, never a number mid-count, so the counting animation is never heard by assistive technology.
Readiness Ring grows on mount
The Readiness Ring's arc grows from empty to its documented percentage over 600ms, using the same ease-out curve, each time the Ring first appears. The Ring's accessible progress value (what assistive technology reads) states the real percentage from the very first render, regardless of where the visual arc is partway through the animation.
Reduced motion
If your system has "reduce motion" turned on, neither animation plays. The tally figures and the Ring's arc display their final state immediately — no counting, no growth.
Attention inbox
Below the tally board and the Readiness Ring hero sits a card of tasks specific to your studio — things OneTake thinks need your attention. The same component is shown in two configurations, depending on how far along your studio is:
| Config | Title | Subtitle |
|---|---|---|
| First-run | Finish setting up | "Then it goes quiet — we only nudge when it matters" |
| Steady-state | What needs you | (varies) |
Each row in the list shows a leading icon, the task's title, a short description, and a control to act on it, plus a × button to dismiss the row outright.
Only three rows show at once
The card shows at most three rows. Any further items stay in the underlying data but are not drawn, and are not reported to the rest of the Dashboard — so a hidden row can never claim an action (like the tally board's export button) that you'd then have no way to find.
A row's description is clamped to two lines; anything past that is cut off with an ellipsis rather than growing the row.
Finishing or dismissing a row
A row leaves the list in one of two ways:
- Completing its action (for example, confirming a detected policy) plays a short collapse animation — about 300ms — and the row is announced to screen readers before it's removed. If your system has "reduce motion" turned on, the row disappears immediately instead of animating.
- Dismissing it with the × button removes it from the list right away, with no animation. This is optimistic: OneTake saves the dismissal in the background, and if that save fails, the row reappears the next time the inbox reloads.
A visually hidden announcement accompanies each finished or dismissed row, for example "Confirm your policy details done. 1 step left." or "Service is due dismissed. All caught up." Nothing is announced when the inbox first loads.
When nothing is left
Once every row has been finished or dismissed, the entire card disappears — title, subtitle, and all. There is no longer an "All caught up" line left in its place; the inbox simply isn't there anymore until a new task appears. The inbox's shared configuration (one per phase) now carries only a title and a subtitle — there is no separate "empty state" text to show, since the card hides instead of switching to a collapsed resting state.
The announcement for the very last row is still spoken, even though the card itself has already gone, since the hidden live region that carries it lives outside the card.
How the Movers module's figures are calculated
The Value movers module on the tally board is powered by daily snapshots of your studio's gear value (see Depreciation & value), compared against a point roughly 30 days earlier by default.
How a comparison baseline is chosen
A "baseline" day is the nearest earlier snapshot to the requested window (30 days back, by default). The comparison is only made when a snapshot exists within 7 days of that target day — a baseline that is older than that is treated as no baseline at all, rather than being compared against a stale day.
A studio with no prior history at all (gear added since the last comparison point, or a studio still too new to have a 30-day-old snapshot) has no baseline, and therefore no movers and no like-for-like change — but its current total is still reported.
What counts as a "mover"
An item only appears as a mover when it has a valuation on both the baseline day and today, from the same value source on both days (for example, market-to-market). A value that switched sources between the two days — for instance, a purchase-price figure replaced by an accepted market lookup — is treated as a new valuation basis, not a market move, and is left out of the movers list and out of the paired change total.
Archived items, and items with no snapshot on the baseline day (gear bought since then), never appear as movers.
Totals and the trend series
Alongside the movers list, the same data answers two further questions: the studio's total gear value today (counting every valued, non-archived item, regardless of whether it has a baseline to compare against), and a day-by-day series of past totals that powers the module's trend line.
The like-for-like change figure shown as the module's headline (current total vs. baseline total) is calculated only over the same paired, same-source items the movers list draws from — so it always equals the sum of every individual mover's dollar change. Gear added since the baseline raises the current total but is not counted in this change figure.
Checking how much history exists, before the heavier reads
Before running the baseline, movers, and totals calculations above, OneTake makes one cheap read — a count of how many distinct days of history the studio has recorded. Only once that count clears the module's threshold do the three heavier reads (totals, movers, and the trend series) run at all; below the threshold, none of them are requested.
Access
Access to all three of these follows the same rule as everywhere else in OneTake: only members of a studio can read its data. A user with no membership gets nothing back, not an error.