diff --git a/README.md b/README.md index b1057a2..1c27b5c 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,47 @@

- ProfitCtl mark + ProfitCtl calculator mark

-# ProfitCtl +

ProfitCtl

- Unit economics as code for AI-native teams.
- Compare pricing, infrastructure, and AI spend before it ships. + Know your AI costs. Protect your margin.
+ Cost modeling for teams building AI products.

+ A new feature changes more than the product. ProfitCtl helps you model the spend,
+ compare your options, and decide what to ship.

+ MIT licensed. Runs locally. No sign-up. +

+ +

+ Website · Install · - Run an example · Documentation · Benchmark scenarios · Contribute

-![ProfitCtl compares the committed hybrid fixtures: the steady-state scenario leads on operating margin and cost per user while the pilot scenario has higher revenue.](./docs/assets/profitctl-decision-board.svg) +![ProfitCtl: Know your AI costs. Protect your margin. Model a change. Compare your options. Decide before you ship.](./website/public/images/profitctl-social-calculator.jpg) + +## From an assumption to a decision you can defend -## What ProfitCtl does +1. **Start with what changes.** Describe usage, pricing, model calls, and infrastructure. Keep each cost tied to its source and assumptions. +2. **Put the options side by side.** Compare a feature, model, deployment, or pricing plan. See the effect on revenue, recurring margin, and cost per user. +3. **Set the limits before you ship.** Test margin and cost targets, including growth and tail risk. Keep the decision evidence in your review. -- **Compare decisions before commitment.** Evaluate pricing, infrastructure, model, API, and contract choices side by side. -- **Model recurring-margin risk.** Simulate growth and stress, then test explicit profitability covenants. -- **Make cost assumptions inspectable.** Track fixed and variable costs, payment fees, calibration inputs, and source provenance. +## Inspect the assumptions behind the answer + +A cost estimate is useful when you can explain it. ProfitCtl keeps sources, confidence, and profitability targets alongside the result. + +- **Use your own costs.** Save pricing, fixed and variable costs, usage, and targets in a YAML scenario. +- **Check growth and risk.** Use simulations and growth scenarios to test margin and cost limits. - **Give agents grounded inputs.** Use `assess` and the bundled cost-aware skill when a codebase needs a starter cost model. -## Quick start +## Bring one real decision -Run the committed hybrid comparison locally: +Start with a saved comparison. Then replace the assumptions with your own costs and usage. This source-based example requires Git and Go: ```bash git clone https://github.com/IntelIP/ProfitCtl.git @@ -38,7 +51,7 @@ go run . compare examples/hybrid_steady_profit.yml examples/hybrid_profit.yml You will see revenue, recurring revenue, fees, booked and operating margins, cost per user, covenant results, and the leaders for each metric. For the signed release binary and Bun package, see the [Install Guide](./docs/INSTALL.md). Pin the evaluator prerelease `v0.4.0-rc.1`; GitHub's latest-release endpoint selects stable releases. -## Use it where decisions happen +## Use it where your team makes decisions | Surface | Start here | | --- | --- | @@ -47,6 +60,8 @@ You will see revenue, recurring revenue, fees, booked and operating margins, cos | CI checks | [Cost model standards](./docs/cost-model-standards.md) | | Scenario examples | [Benchmark scenarios](./benchmark_scenarios/README.md) | +The open-source local CLI, Codex skill, and CI output are available today. Hosted workspaces, saved team history, and approvals are planned. Website examples use fictional scenarios and sample costs; real decisions need your own rates, usage, and evidence. + ## Production economics planning Inspect service evidence, identify missing measurements, and compare explicitly modeled downstream effects with the new local `system` commands. Start with the [Condere walkthrough](./examples/system/README.md) and [system design](./docs/design/system-economics-v1.md). Synthetic examples are not production cost forecasts. @@ -64,4 +79,4 @@ Inspect service evidence, identify missing measurements, and compare explicitly ## Trust and participation -ProfitCtl is MIT licensed. See [LICENSE](./LICENSE), [NOTICE](./NOTICE), [Trademark Guidelines](./TRADEMARKS.md), [Security](./SECURITY.md), and [Contributing](./CONTRIBUTING.md). +Developed by IntelIP and Hudson Aikins. ProfitCtl is MIT licensed. See [LICENSE](./LICENSE), [NOTICE](./NOTICE), [Trademark Guidelines](./TRADEMARKS.md), [Security](./SECURITY.md), and [Contributing](./CONTRIBUTING.md). diff --git a/website/src/layouts/ProductLayout.astro b/website/src/layouts/ProductLayout.astro index 35057c3..a4c01dd 100644 --- a/website/src/layouts/ProductLayout.astro +++ b/website/src/layouts/ProductLayout.astro @@ -84,8 +84,6 @@ const schema = pageType === "docs" ? {
@@ -147,14 +145,11 @@ const schema = pageType === "docs" ? { .site-shell { width: min(1120px, calc(100% - 48px)); margin-inline: auto; } section[id], article[id] { scroll-margin-top: 120px; } .site-header { position: sticky; top: 0; z-index: 20; background: light-dark(#f5f5eef0, #080e0cf0); backdrop-filter: blur(16px); border-bottom: 1px solid var(--line); } - .site-header-inner { min-height: 76px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 28px; } + .site-header-inner { min-height: 76px; display: flex; align-items: center; } .brand { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; width: fit-content; text-decoration: none; font-weight: 650; font-size: 20px; letter-spacing: -.03em; } .brand img { flex: none; } - .site-nav { display: flex; align-items: center; gap: 26px; } - .site-nav a, .site-footer nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; text-decoration: none; color: var(--muted); } - .site-nav a:hover, .site-footer nav a:hover { color: var(--ink); } - .header-action { justify-self: end; display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 42px; padding: 0 17px; border-radius: 999px; background: var(--ink); color: var(--on-ink); font-size: 13px; text-decoration: none; transition: transform .2s; } - .header-action:hover { transform: translateY(-2px); } + .site-footer nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; text-decoration: none; color: var(--muted); } + .site-footer nav a:hover { color: var(--ink); } .site-footer { margin-top: 88px; padding: 36px 0; border-top: 1px solid var(--line); } .footer-inner { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: start; } .footer-inner p { margin-top: 12px; color: var(--muted); font-size: 12px; line-height: 1.5; } @@ -165,9 +160,7 @@ const schema = pageType === "docs" ? { .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; } @media (max-width: 640px) { .site-shell { width: calc(100% - 32px); } - .site-header-inner { padding-block: 10px; grid-template-columns: 1fr auto; gap: 5px 12px; } - .site-nav { grid-row: 2; grid-column: 1 / -1; gap: 24px; } - .site-nav a { min-height: 30px; } + .site-header-inner { padding-block: 10px; } .footer-inner { grid-template-columns: 1fr; } .site-footer { margin-top: 56px; } }