=== Private Practice Financial Calculators ===
Contributors: keystonepractice
Tags: calculator, shortcode, therapy, private practice, embed
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Embed 22 private-practice money calculators on your site with a shortcode. No account. Every figure is computed in the visitor's own browser.

== Description ==

= Working calculators, not another article about the math =

If you write for private-practice owners, you have hit this: the useful answer is arithmetic, and arithmetic in prose is unreadable. This plugin gives you the instrument instead. Paste a shortcode, and a working calculator appears in your post — the reader puts in their own numbers and gets their own answer.

Twenty-two of them, covering the money questions practice owners actually get stuck on:

**Compensation** — what a clinician is really worth once you load them fully, salary versus split for a new hire, designing a comp plan, what you can pay yourself, and what a comp offer would actually leave you.

**Profitability** — whether a given clinician makes money, each clinician's share of overhead, what you are billing but not collecting, what cancellations cost, and what accrued PTO is costing you.

**Decisions** — whether to raise rates, whether you can afford a hire, whether an insurance panel is worth staying on, what losing a therapist costs, and what the practice is worth.

**Taxes and survival** — quarterly set-aside, the S-corp break-even, filing separately, cash runway, and the number the practice has to clear to survive.

= No account. Nothing to configure. =

There is no sign-up, no API key, no connection step, and no paid tier. Install, activate, paste a shortcode. The settings screen exists to hand you the list of shortcodes and one optional default height — you can ignore it entirely.

= Your visitors' numbers stay with your visitors =

Every calculation runs inside the reader's own browser. The figures they type — their rates, their payroll, their overhead — are computed on their device and are not transmitted to us, to you, or to anyone else. There is no submit button, because there is nothing to submit.

The plugin sets no cookies, adds no tracking script to your site, and makes no request from your server. The calculator itself is served by us, so loading it reaches our server the way an embedded video reaches its host; we count that load anonymously, without cookies, and none of what your reader typed is part of it. That is the whole of it, and it is written out in plain terms on the settings screen too.

= What this plugin does and does not do =

* It adds **no tracking script** to your site.
* It sets **no cookies**.
* It makes **no request from your web server** — not on activation, not on a schedule, not ever.
* It loads **no remote JavaScript or PHP** into your pages. The only thing it outputs is a standard `<iframe>` element.
* It adds **no link to keystonepractice.co on your public pages** unless you explicitly ask for one with `link="yes"`.
* It shows **no admin notices, no upsells, and no review nags**. It adds one entry under Settings.

= A note on the third-party service =

The calculators are hosted by Keystone Practice, so a visitor's browser does load the calculator from `keystonepractice.co` — exactly the way an embedded video or map loads from its host. That is the service this plugin embeds, and it is worth being precise about what the load involves:

* Keystone records an **anonymous, cookieless page view of the calculator itself** — no cookies, no personal identifiers, no visitor profile, and none of the figures entered.
* The embed address carries a `src=wp-plugin` parameter. That tells Keystone the calculator was loaded through this plugin rather than from its own website. It does not identify your site's pages, your posts, or your visitors.
* Your visitor's browser sends the embedding site's address as a normal HTTP referrer, the same as it does for any embedded content on any site.
* The calculator displays a small "Powered by Keystone Practice" link **inside the frame**, on Keystone's own page. Placing the shortcode is what puts that frame on your site; the plugin never inserts a credit link into your own markup.

Service: [Keystone Practice](https://keystonepractice.co)
Terms of use: [keystonepractice.co/terms](https://keystonepractice.co/terms)
Privacy policy: [keystonepractice.co/privacy](https://keystonepractice.co/privacy)

If you would rather visitors not load anything from a third-party host, this plugin is not for you — an embed is by definition a request to the host that serves it.

= The same calculators we publish ourselves =

These are the same instruments we publish on our own site — not a stripped-down version made to sell you the real one.

**Support: email support@keystonepractice.co.** That reaches a person, and it is faster than the forum here.

= The calculators =

Each has its own shortcode. All 22 are also reachable through the generic shortcode.

* `[keystone_clinician_net]` — What is this clinician really worth?
* `[keystone_overhead_share]` — What's each clinician's share of overhead?
* `[keystone_is_this_clinician_profitable]` — Is this clinician profitable?
* `[keystone_pay_a_new_hire]` — Salary or split? Pay a new therapist.
* `[keystone_pay_yourself]` — How much can you pay yourself?
* `[keystone_martyr_tax]` — What is your work actually worth?
* `[keystone_quarterly_tax_estimator]` — How much to set aside for taxes?
* `[keystone_survival_number]` — What's your survival number?
* `[keystone_file_separately]` — Should you file taxes separately?
* `[keystone_afford_a_hire]` — Can you afford this hire?
* `[keystone_raise_your_rates]` — Should you raise your rates?
* `[keystone_collections_leak]` — What are you billing but not collecting?
* `[keystone_cost_of_cancellations]` — What are cancellations costing you?
* `[keystone_cash_runway]` — How long will your cash last?
* `[keystone_cost_of_losing_a_therapist]` — What does losing a therapist cost you?
* `[keystone_s_corp_calculator]` — Should you be an S-corp?
* `[keystone_comp_plan_designer]` — Design a comp plan
* `[keystone_pto_cost]` — What is accrued PTO costing you?
* `[keystone_panel_health_check]` — Is this insurance panel worth it?
* `[keystone_practice_valuation]` — What is your practice worth?
* `[keystone_offer_autopsy]` — Autopsy this offer
* `[keystone_offer_decoder]` — What you'd keep on a comp offer

= Shortcode attributes =

Every shortcode above, and the generic one, accepts:

* `height` — frame height in pixels. Default 720, or whatever you set under Settings. Range 200–3000.
* `width` — `100%` (default), or a pixel value like `640`.
* `title` — the frame's accessible title. Defaults to the calculator's own title.
* `border` — `yes` (default) or `no` for the hairline border and rounded corners.
* `lazy` — `yes` (default) loads the calculator only as the reader scrolls to it; `no` loads it immediately.
* `link` — `no` (default). `yes` adds a plain "open in a new tab" link beneath the frame.
* `class` — extra CSS class names for your own styling.

The generic shortcode takes one more:

`[keystone_calculator tool="s-corp-calculator" height="700"]`

== Installation ==

1. Install the plugin through **Plugins → Add New**, or upload the plugin folder to `/wp-content/plugins/`.
2. Activate it through the **Plugins** screen.
3. Open **Settings → Private Practice Financial Calculators** for the full shortcode list and one optional default. There is nothing you are required to configure.
4. Paste a shortcode into any post, page, or Shortcode block.

== Frequently Asked Questions ==

= Do I need a Keystone Practice account? =

No. There is no account, no API key, no connection step, and no paid tier for this plugin. Install it and the shortcodes work.

= Is any of my visitors' data sent anywhere? =

The figures a visitor types are computed in their own browser and are not transmitted. Loading the calculator does contact keystonepractice.co, because that is where the calculator is served from, and Keystone counts that load anonymously and without cookies. Nothing a visitor enters is part of that.

= Does this plugin set cookies or track anyone? =

No. The plugin sets no cookies and adds no tracking script to your site. Some calculators may remember what a visitor typed using their own browser's local storage, on Keystone's side of the frame, so a reader does not lose their work — that stays on the visitor's device and is not a cookie and not shared with your site.

= Where do I get support? =

**Email support@keystonepractice.co.** That is the fastest route and it reaches a person. The WordPress.org support forum for this plugin is monitored, but less frequently than email — if your question is time-sensitive, please use email.

= The calculator is cut off, or has a scrollbar inside it. =

Set a taller frame: `[keystone_pay_yourself height="900"]`. A narrow column makes a calculator taller, so a sidebar or a two-column layout usually needs more height than the 720px default. You can change the default for the whole site under Settings → Private Practice Financial Calculators.

= Can the frame resize itself to fit the calculator? =

Not currently. The height is whatever you set. Browsers do not let an embedding page measure the height of a document from another domain, and the embedded calculator does not yet report its own height, so automatic resizing is not available. Setting `height` per shortcode is the reliable approach.

= My site uses a strict Content-Security-Policy and nothing appears. =

Allow the frame source: `frame-src https://keystonepractice.co`. This plugin uses no inline styles or inline scripts, so you do not need `'unsafe-inline'` for it.

= Does it work in the block editor / with page builders? =

Yes. Use a Shortcode block, or the shortcode module of whichever builder you use. Shortcodes also work in text widgets.

= Will it slow my pages down? =

The stylesheet is loaded only on pages where a calculator actually appears, and it is under 1 KB. Calculators are lazy-loaded by default, so a calculator further down a page is not fetched until the reader scrolls near it. Deactivating the plugin removes everything.

= Can I use it on a multisite network? =

Yes. Settings are per-site, and uninstalling clears them from every site on the network.

= What happens if I uninstall it? =

The single option row it creates is deleted. It creates no database tables, no post meta, and no scheduled events, so nothing is left behind.

== Screenshots ==

1. A calculator embedded in a post, sized to the content column.
2. The settings screen: the full shortcode reference, generated from the live list of calculators.
3. The one optional setting — a site-wide default frame height.

== Changelog ==

= 1.0.0 =
* First release. 22 calculator shortcodes plus a generic `[keystone_calculator]`, a settings screen with the shortcode reference, lazy loading by default, and per-shortcode height, width, border, title, and class control.

== Upgrade Notice ==

= 1.0.0 =
First release.
