> ## Documentation Index
> Fetch the complete documentation index at: https://help.clinikehr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# The executive dashboard

> Read your whole practice on one screen — appointments, money and client growth — and open the report behind any figure.

export const AuditNote = ({action = 'This action'}) => <div className="ck-callout ck-callout--info" role="note">
    <p className="ck-callout__body">
      {action} is written to your workspace's audit log with your name, the
      record touched and the time — a HIPAA requirement, and one you can review
      yourself under <strong>Audit Log</strong>. See{' '}
      <a href="/platform/security/audit-log">Audit log</a>.
    </p>
  </div>;

export const StillStuck = ({topic}) => <div className="ck-callout ck-callout--note" role="note">
    <p className="ck-callout__body">
      <strong>Still stuck{topic ? ` with ${topic}` : ''}?</strong>{' '}
      Check <a href="/platform/help/troubleshooting">Troubleshooting</a> first —
      it covers the failures we see most often. If that does not resolve it,{' '}
      <a href="/platform/help/contact-support">contact support</a> and include
      your workspace name and the time the problem happened, so we can find the
      matching entry in your audit log.
    </p>
  </div>;

export const Path = ({steps = []}) => <span className="ck-path">
    {steps.map((s, i) => <span key={i} className="ck-path__step">
        {i > 0 ? <span className="ck-path__sep" aria-hidden="true">
            ›
          </span> : null}
        {s}
      </span>)}
  </span>;

export const Availability = ({editions = ['all'], plans, roles, note}) => {
  const list = editions.includes('all') ? ['clinic', 'pharmacy', 'lims'] : editions;
  return <div className="ck-avail" role="note" aria-label="Feature availability">
      <span className="ck-avail__label">Available in</span>

      {list.map(e => <span key={e} className={`ck-pill ck-pill--${e}`}>
          {EDITION_LABELS[e] || e}
        </span>)}

      {plans ? <span className="ck-avail__label">Plan</span> : null}
      {plans ? <span className="ck-pill ck-pill--plan">{plans}</span> : null}

      {roles ? <span className="ck-avail__label">Who</span> : null}
      {roles ? <span className="ck-pill ck-pill--role">{roles}</span> : null}

      {note ? <span className="ck-avail__note">{note}</span> : null}
    </div>;
};

<Availability editions={['clinic']} plans="Solo and Team" roles="Owner, Manager, and staff granted access to figures" />

**Executive** is your practice at a glance — each figure opens the report behind it. Six headline tiles, then a card for every report your practice can open.

<Path steps={['Sidebar', 'Executive']} />

## The six tiles

| Tile                       | Opens                   |
| -------------------------- | ----------------------- |
| **Appointments today**     | The Appointments report |
| **Appointments this week** | The Appointments report |
| **Collected this month**   | The Revenue report      |
| **Outstanding**            | The Revenue report      |
| **Patients**               | The Patients report     |
| **New this month**         | The Patients report     |

The last two count your client list: how many you have in total, and how many joined this month.

Every tile is a link. Selecting one takes you to the report that explains it, so a figure you do not believe is never more than one select from its workings.

<Note>
  The count of people is labelled **Patients** here, and its report is called **Patients**, even though the rest of your workspace says **Clients**. It is the same list either way.
</Note>

Money is shown in your practice's own currency, taken from your billing settings — see [Currency](/platform/settings/currency). The two counts of money answer different questions: **Collected this month** is what has actually arrived, **Outstanding** is what has been invoiced and not yet paid.

## Em dash, not zero

Tiles show an em dash while the page is loading and only ever show a number once the figure has arrived. A zero on this screen is a real zero, not a query that failed. Treat the two differently — the whole point of the distinction is that you can trust a figure the moment you can see it.

## The Reports list

Below the tiles, **Reports** lists every report available to your practice, each with a one-line description of what it covers. It is the same set as the Analytics page and it is filtered the same way — by your plan, the modules you use and your own permissions.

See [Reports and analytics](/practice/insights/analytics) for what each report covers.

## What this page is not

The executive dashboard is aggregates only. There is no client name, no clinical detail and nothing to act on here — it exists to tell you where to look, and then to hand you off to a report. For anything you need to *do*, go to the module: [Appointments](/practice/daily/appointments) for today's diary, [Billing](/clinic/revenue/billing) for money owed.

<AuditNote action="Opening the executive dashboard" />

## If something goes wrong

<AccordionGroup>
  <Accordion title="The executive overview could not be loaded.">
    A temporary read failure. Reload the page. If it persists, note the time — support can match it against your audit log.
  </Accordion>

  <Accordion title="A tile has been showing an em dash for a while">
    The figure has not arrived. Reload rather than assuming a zero; the dash exists precisely so an unknown is never mistaken for none.
  </Accordion>

  <Accordion title="A report I expected is not in the list">
    Reports follow your plan, the modules you use and your permissions. See [Reports and analytics](/practice/insights/analytics), which lists exactly what a practice gets.
  </Accordion>

  <Accordion title="Collected this month does not match my bank">
    It counts payments recorded in ClinikEHR, not settlements into your account. Open the Revenue report and compare its **Payments** scope against your provider's payouts.
  </Accordion>
</AccordionGroup>

<StillStuck />
