CPR Compass Diagnostic

Check if your % are healthy. Profit NOW-aligned cushion.

Cash
Profit
Revenue
on target = don’t overthink the sales engine.
Target (%)
Scores
    Overall type = lowest score pillar.
    Profit NOW split (on Money In)
      Cash panel (Profit NOW-aligned)
        TAP mix vs target (monthly on Real Revenue)
          Transfers to make today
            Explain my result

            CPR Blueprint Diagnostic

            Check if your % are healthy. Profit NOW-aligned cushion.

            Cash
            Profit
            Revenue
            on target = don’t overthink the sales engine.
            Target (%)
            Scores
              Overall type = lowest score pillar.
              Profit NOW split (on Money In)
                Cash panel (Profit NOW-aligned)
                  TAP mix vs target (monthly on Real Revenue)
                    Transfers to make today
                      Explain my result

                      CPR Blueprint Diagnostic

                      Check if your % are healthy. Profit NOW-aligned cushion.

                      Cash
                      Profit
                      Revenue
                      Target (%)
                      Scores
                        Overall type = lowest score pillar.
                        Profit NOW split (on Money In)
                          Cash panel (Profit NOW-aligned)
                            TAP mix vs target (monthly on Real Revenue)
                              Transfers to make today
                                Explain my result

                                CPR Blueprint Diagnostic

                                Check if your percentages are healthy. No decimals, PF-aligned cushion.

                                Cash
                                Profit
                                Revenue
                                Scores
                                  Overall type = lowest score pillar.
                                  Profit First split (on Money In)
                                    Cash panel (PF-aligned)
                                      TAP mix vs target (monthly on Real Revenue)
                                        Transfers to make today

                                          Inputs used

                                          • Bank now = $20,000

                                          • Money in (next 7 days) = $1,000

                                          • Must pay soon = $20,000

                                          • Monthly OPEX (fixed) = $20,000

                                          • Monthly revenue = $80,000

                                          • Direct costs = $32,000

                                          • Owner pay = $20,000

                                          • Tax set-aside = $8,000

                                          • Fixed OPEX (this month) = $18,000

                                          • Avg sale = $400, Avg cost per sale = $220

                                          • Leads/month = 120, Win rate = 25%

                                          • TAPs: Profit 5%, Owner 30%, Tax 15%, OPEX 50%


                                          Profit First split (on Money In = $1,000)

                                          • Profit = 5% × 1,000 = $50

                                          • Owner Pay = 30% × 1,000 = $300

                                          • Tax = 15% × 1,000 = $150

                                          • OPEX = 50% × 1,000 = $500


                                          Cash (PF-aligned)

                                          1. Bank for bills = Bank now + OPEX share
                                            = 20,000 + 500 = $20,500

                                          2. Cushion = Bank for bills − Must pay soon
                                            = 20,500 − 20,000 = $500

                                          3. Daily burn = Monthly OPEX ÷ 30
                                            = 20,000 ÷ 30 = $667/day (rounded to whole dollars)

                                          4. Runway (days) = Bank for bills ÷ Daily burn
                                            = 20,500 ÷ 667 ≈ 31 days (integer display)

                                          5. Cash score (simple rules)
                                            Cushion > 0 and Runway ≥ 15 → 100


                                          Profit (monthly mix on Real Revenue)

                                          1. Real revenue = Revenue − Direct costs
                                            = 80,000 − 32,000 = $48,000

                                          2. Profit now ($) = Real revenue − Owner − Tax − Fixed OPEX
                                            = 48,000 − 20,000 − 8,000 − 18,000 = $2,000

                                          3. % Profit = 2,000 ÷ 48,000 = 4% (whole % display)
                                            Target = 5% → short by ~1 percentage point

                                          4. % OPEX = 18,000 ÷ 48,000 = 38% (cap = 50%) → not over cap

                                          5. Profit score (simple rules)

                                            • Start 100

                                            • −2 points per 1pp below target profit → −2

                                            • −1 point per 1pp OPEX over cap (none) → −0
                                              Result: 100 − 2 = 98


                                          Revenue checks

                                          1. Gross margin = 1 − (Cost ÷ Price)
                                            = 1 − (220 ÷ 400) = 45% ≥ 30% → OK

                                          2. Demand estimate = Leads × Win rate
                                            = 120 × 25% = 30 ≥ 1 → OK

                                          3. Revenue score = 50 + 25 (margin OK) + 25 (demand OK) = 100


                                          Overall type

                                          Lowest of the three scores determines focus:
                                          Cash 100, Profit 98, Revenue 100Profit Power issue.

                                          If you want me to export these numbers as a small “explain my result” box under the widget, I can drop in the HTML snippet for that too.

                                          Cash (PF-aligned)

                                          1. PF split on “Money in”

                                            • Profit = money_in_7d × TAP.profit

                                            • Owner Pay = money_in_7d × TAP.owner

                                            • Tax = money_in_7d × TAP.tax

                                            • OPEX = money_in_7d × TAP.opex

                                          2. Bank for bills
                                            bank_for_bills = bank_now + OPEX

                                          3. Cushion
                                            cushion = bank_for_bills − must_pay_soon

                                          4. Daily burn
                                            daily_burn = opex_month / 30

                                          5. Runway (days)
                                            runway_days = bank_for_bills / daily_burn (if opex_month is 0, runway = 0)

                                          Profit (monthly mix on Real Revenue)

                                          1. Real revenue
                                            real_revenue = rev_month − dir_costs_month

                                          2. Profit now ($)
                                            profit_now = max(0, real_revenue − ownerpay_month − tax_month − fixed_opex_month)

                                          3. Percentages (for display)

                                            • pct_owner = ownerpay_month / real_revenue

                                            • pct_tax = tax_month / real_revenue

                                            • pct_opex = fixed_opex_month / real_revenue

                                            • pct_profit= profit_now / real_revenue
                                              (Shown as whole % in the UI.)

                                          Scores (simple mode, whole numbers)

                                          1. Cash score

                                           
                                          if cushion < 020 else if runway_days < 1560 else100
                                          1. Profit score

                                           
                                          if real_revenue <= 020 else: s = 100 gap_pp = max(0, round((TAP.profit - pct_profit) * 100)) // percentage points short over_pp = max(0, round(((fixed_opex_month/real_revenue) - TAP.opex) * 100)) s -= min(100, gap_pp * 2) // lose 2 pts per pp below target profit s -= min(40, over_pp) // lose 1 pt per pp OPEX over cap (cap 40) profit_score = clamp(s, 0, 100)
                                          1. Revenue score

                                           
                                          gm_ok = (avg_sale > 0) && (1 - avg_cost_per_sale/avg_sale >= 0.30) demand_ok = (leads_or_jobs_month * (win_rate_pct/100)) >= 1 revenue_score = 50 + (gm_ok ? 25 : 0) + (demand_ok ? 25 : 0) // 50, 75 or 100
                                          1. Overall type

                                           
                                          overall = pillar with the lowest score: - Cash Control issue - Profit Power issue - Revenue Engine issue

                                          Transfers to make today

                                          1. From step (1): move the three amounts and keep OPEX in operating:

                                          • Move Profit → Profit account

                                          • Move Owner Pay → Owner Pay account

                                          • Move Tax → Tax account

                                          • Keep OPEX in Operating

                                          If you want me to change any thresholds (e.g., Cash “tight” from 15 days to 30, or margin floor from 30% to 35%), tell me and I’ll adjust the code lines for you.

                                           
                                          You said:
                                          can u give me normal textx
                                           
                                          ChatGPT said:

                                          Sure—here it is in plain, normal text (no code).

                                          What to type in

                                          • Bank now

                                          • Money in (next 7 days)

                                          • Must pay soon (bills you can’t miss)

                                          • Monthly OPEX (your fixed monthly operating costs)

                                          • Monthly revenue

                                          • Direct costs (materials, subs, direct labour)

                                          • Owner pay this month

                                          • Tax set-aside this month

                                          • Fixed OPEX this month

                                          • Average sale price, average cost per sale

                                          • Leads/jobs per month, win rate %

                                          What the tool calculates

                                          Profit First split (on “Money in”)

                                          • Profit = Money in × Profit %

                                          • Owner Pay = Money in × Owner %

                                          • Tax = Money in × Tax %

                                          • OPEX = Money in × OPEX %

                                          Cash (PF-aligned)

                                          • Bank for bills = Bank now + OPEX (from the split above)

                                          • Cushion = Bank for bills − Must pay soon

                                          • Daily burn = Monthly OPEX ÷ 30

                                          • Runway (days) = Bank for bills ÷ Daily burn
                                            (If Monthly OPEX is 0, runway is 0)

                                          Profit (monthly mix)

                                          • Real revenue = Monthly revenue − Direct costs

                                          • Profit now ($) = Real revenue − Owner pay − Tax − Fixed OPEX

                                          • % Owner = Owner pay ÷ Real revenue

                                          • % Tax = Tax ÷ Real revenue

                                          • % OPEX = Fixed OPEX ÷ Real revenue

                                          • % Profit = Profit now ÷ Real revenue

                                          Scores (simple)

                                          • Cash score

                                            • If Cushion < 0 → 20

                                            • Else if Runway < 15 days → 60

                                            • Else → 100

                                          • Profit score

                                            • If Real revenue ≤ 0 → 20

                                            • Else start at 100, then:

                                              • Subtract 2 points for each percentage point your % Profit is below the target Profit %

                                              • Subtract 1 point for each percentage point your % OPEX is above the OPEX cap (max 40 points off)

                                            • Clamp between 0 and 100

                                          • Revenue score

                                            • Start at 50

                                            • +25 if margin is OK (1 − Cost/Sale ≥ 30%)

                                            • +25 if expected wins ≥ 1 (Leads × Win rate ≥ 1)
                                              → So Revenue score is 50, 75, or 100

                                          Overall result

                                          • The lowest of the three scores decides your focus:

                                            • Cash Control issue

                                            • Profit Power issue

                                            • Revenue Engine issue

                                          Transfers to make today

                                          • Move the Profit amount to your Profit account

                                          • Move the Owner Pay amount to your Owner Pay account

                                          • Move the Tax amount to your Tax account

                                          • Keep the OPEX amount in Operating to pay bills

                                          If you want, tell me your target percentages (Profit / Owner / Tax / OPEX) and I’ll rewrite the lines above using your exact numbers.

                                           
                                          You said:
                                          for prfti how can real revenue b less than 0?
                                           
                                          ChatGPT said:
                                           
                                           

                                          Great catch. In normal accounting, “real revenue” = monthly revenue − direct costs (materials, subs, direct labor).

                                          It can go ≤ 0 when:

                                          • You sold at/under cost this month (e.g., revenue $10k, direct costs $12k → real revenue −$2k).

                                          • Timing mismatch: you bought materials or paid subs this month but won’t invoice/collect until later.

                                          • Refunds/chargebacks/credit notes wiped out most of this month’s sales.

                                          • One big job with large upfront costs and little or no billing yet.

                                          • Data entry issue: misclassified overhead as “direct cost,” or duplicated costs.

                                          In the widget I gave you, I clamp it so it never goes negative:

                                           
                                          // code logic real_revenue = Math.max(0, rev_month - dir_costs_month);

                                          If it would have been < 0, we treat it as 0 to avoid weird percentages, and the Profit score drops to 20 (the “needs attention” floor).

                                          What to do if this shows up:

                                          • Price & scope check: raise price or tighten scope so gross margin ≥ 30%.

                                          • Progress billing / deposits: bill earlier instead of carrying costs.

                                          • Cost control: negotiate supplier rates, reduce rework/waste.

                                          • Timing: push big material buys closer to billing dates when possible.

                                          • Fix misclassifications in the books (move overhead out of “direct”).

                                           
                                           

                                          CPR Blueprint Diagnostic

                                          Set your Target % once, get Profit NOW split and runway instantly (no decimals).

                                          Cash
                                          Profit
                                          Revenue
                                          Target Settings (%)
                                          Scores
                                            Overall type = lowest score pillar.
                                            Profit NOW split (on Money In)
                                              Cash panel (PF-aligned)
                                                Mix vs Target (monthly on Real Revenue)
                                                  Transfers to make today
                                                    Explain my result

                                                    CPR Blueprint Diagnostic

                                                    Set your Target % once, get Profit NOW split and runway instantly (no decimals).

                                                    Cash
                                                    Profit
                                                    Revenue
                                                    Target Settings (%)
                                                    Scores
                                                      Overall type = lowest score pillar.
                                                      Profit NOW split (on Money In)
                                                        Cash panel (PF-aligned)
                                                          Mix vs Target (monthly on Real Revenue)
                                                            Transfers to make today
                                                              Explain my result