{
  "version": 1,
  "fictional": true,
  "software": "Finaloop",
  "title": "Fictional first crossing reversed by later costs",
  "canonicalPage": "https://levelcfo.com/guides/software-integration/finaloop/",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "fields": [
    "cohort: fictional acquisition-month label",
    "age: observed calendar-month index, M0 is acquisition month",
    "buyers: fixed cohort count",
    "cumulative_profit: teaching USD before acquisition and fixed overhead",
    "acquisition_spend: teaching cohort acquisition USD, a cohort constant repeated on each age row; use only the M0 row when summing"
  ],
  "calculation": "CAC is 300 / 10 = 30 per acquired buyer. Observed profit per buyer is 22 at M0, 34 at M1 and 28 at M2. M1 crosses 30; M2 is below it. The cumulative path falls in this constructed example because later cost/refund revisions reduce profit. No bank data is included.",
  "files": [
    {
      "filename": "finaloop-cohort.csv",
      "sha256": "63fb4bd6cc4f11214253ed0e3a2fcfd3fe8feea053ed873c181d36a5d0d73309"
    }
  ],
  "checks": [
    {
      "id": "spend",
      "operation": "sum",
      "expected": 300,
      "file": "finaloop-cohort.csv",
      "field": "acquisition_spend",
      "filter": {
        "field": "age",
        "equals": "M0"
      }
    },
    {
      "id": "buyers",
      "operation": "sum",
      "expected": 10,
      "file": "finaloop-cohort.csv",
      "field": "buyers",
      "filter": {
        "field": "age",
        "equals": "M0"
      }
    },
    {
      "id": "cac",
      "operation": "ratio",
      "expected": 30,
      "operands": [
        "spend",
        "buyers"
      ]
    },
    {
      "id": "m1profit",
      "operation": "sum",
      "expected": 340,
      "file": "finaloop-cohort.csv",
      "field": "cumulative_profit",
      "filter": {
        "field": "age",
        "equals": "M1"
      }
    },
    {
      "id": "m1_per_buyer",
      "operation": "ratio",
      "expected": 34,
      "operands": [
        "m1profit",
        "buyers"
      ]
    },
    {
      "id": "m2profit",
      "operation": "sum",
      "expected": 280,
      "file": "finaloop-cohort.csv",
      "field": "cumulative_profit",
      "filter": {
        "field": "age",
        "equals": "M2"
      }
    },
    {
      "id": "m2_per_buyer",
      "operation": "ratio",
      "expected": 28,
      "operands": [
        "m2profit",
        "buyers"
      ]
    },
    {
      "id": "m2_after_acquisition",
      "operation": "difference",
      "expected": -20,
      "operands": [
        "m2profit",
        "spend"
      ]
    }
  ],
  "expectedResults": [
    {
      "label": "CAC per buyer",
      "value": 30,
      "unit": "USD",
      "meaning": "Acquisition spend divided by the fixed ten-buyer cohort.",
      "checkId": "cac"
    },
    {
      "label": "M1 profit per buyer",
      "value": 34,
      "unit": "USD",
      "meaning": "First illustrated crossing, before acquisition and fixed overhead.",
      "checkId": "m1_per_buyer"
    },
    {
      "label": "M2 profit per buyer",
      "value": 28,
      "unit": "USD",
      "meaning": "Later observed value below CAC.",
      "checkId": "m2_per_buyer"
    },
    {
      "label": "M2 cohort profit after acquisition",
      "value": -20,
      "unit": "USD",
      "meaning": "280 less 300, excluding fixed overhead and cash timing.",
      "checkId": "m2_after_acquisition"
    }
  ],
  "nextDecision": "Keep M3 unavailable until observed. Investigate the later cost changes and separately test bank cash; this is not a projection."
}
