← back to command center

Owner Statements /owner-statement-qa

yellow 1m ago · started 2026-04-29T03:41:23.714309+00:00

Headline Metrics

Statements
13
Clean
9
On hold
4
Total net
$21,158

Validation Findings (4)

SeverityCodeMessageContext
infoMONTH_RESOLVEDValidating 2026-03 (13 property statements found)month: 2026-03
csv_count: 13
warningSTATEMENT_ERRORS5 error-severity finding(s) across 13 statementscount: 5
infoSTATEMENT_WARNINGS65 warning-severity finding(s) — review the .md interactive flow
warningPAYOUT_HOLDS4 property statement(s) flagged HOLD (errors block payout)properties: ["132 Irish Cape Road", "150 Trailside Rd", "34 Sesame St.", "491 Wilhelm Rd"]

Trend

transfer table (13)

propertyowner neterrorswarningshold
12 Blackberry Drive-237.0010no
132 Irish Cape Road1,86917yes
150 Trailside Rd5,618110yes
1531 Glasco Turnpike-558.302no
156 Lauren Tice Rd.-250.000no
214 Goat Hill Road-842.604no
263 Boice Mill Rd1,520010no
34 Sesame St.582.422yes
342 Upper Cherrytown Rd2,53906no
365 Hommelville Road1,26003no
45 Charles Hommel Rd-245.508no
491 Wilhelm Rd4,11113yes
578 Terrace Mountain Rd.5,79200no

per property (13)

keyaddressconfig keymodelrateflagsneeds reviewcommission statedcommission calcpm fee stated
12 Blackberry Drive12 Blackberry Drive12 blackberrystandard0.25013 items0 items871.0871.0250.0
132 Irish Cape Road132 Irish Cape Road132 irish capestandard0.25010 items0 items830.2965.0175.0
150 Trailside Rd150 Trailside Rd150 trailsidewanderwood0.25015 items0 items1,4941,494250.0
1531 Glasco Turnpike1531 Glasco Turnpike1531 glascostandard0.2004 items1 items0.0000.000250.0
156 Lauren Tice Rd.156 Lauren Tice Rd.156 lauren ticelauren_tice0.2502 items1 items0.0000.000250.0
214 Goat Hill Road214 Goat Hill Road214 goat hillstandard0.2006 items1 items0.0000.000250.0
263 Boice Mill Rd263 Boice Mill Rd263 boice millmodel_a0.20013 items0 items322.6322.60.000
34 Sesame St.34 Sesame St.34 sesamestandard0.2507 items0 items344.1344.1150.0
342 Upper Cherrytown Rd342 Upper Cherrytown Rd342 upper cherrymodel_b0.1009 items0 items293.6293.60.000
365 Hommelville Road365 Hommelville Road365 hommelvillestandard0.2506 items0 items599.9599.9250.0
45 Charles Hommel Rd45 Charles Hommel Rd45 charles hommelstandard0.25011 items0 items140.9140.9200.0
491 Wilhelm Rd491 Wilhelm Rd491 wilhelmhybrid0.2506 items0 items858.8992.6250.0
578 Terrace Mountain Rd.578 Terrace Mountain Rd.578 terracestandard0.2003 items0 items1,4481,4480.000

needs review (3)

addresstypedetail
1531 Glasco Turnpikecommission_unverifiableCannot verify commission — no reservation data. Stated: $0.00. no reservation...
156 Lauren Tice Rd.commission_unverifiableCannot verify commission — no reservation data. Stated: $0.00. no reservation...
214 Goat Hill Roadcommission_unverifiableCannot verify commission — no reservation data. Stated: $0.00. no reservation...

Capture History

How to refresh

Engine: python3 ~/.claude/scripts/owner-statement-qa.py --report

Capture (writes to dashboard-data/latest/): ~/.claude/scripts/dashboard-capture.sh owner-statement-qa

Raw output

36,633 bytes of JSON
{
  "skill": "owner-statement-qa",
  "today": "2026-04-28",
  "month": "2026-03",
  "summary": {
    "total_properties": 13,
    "properties_clean": 9,
    "error_count": 5,
    "warning_count": 65,
    "total_owner_net": 21158.4,
    "on_hold_count": 4
  },
  "transfer_table": [
    {
      "property": "12 Blackberry Drive",
      "owner_net": -236.97,
      "errors": 0,
      "warnings": 10,
      "hold": false
    },
    {
      "property": "132 Irish Cape Road",
      "owner_net": 1869.23,
      "errors": 1,
      "warnings": 7,
      "hold": true
    },
    {
      "property": "150 Trailside Rd",
      "owner_net": 5618.15,
      "errors": 1,
      "warnings": 10,
      "hold": true
    },
    {
      "property": "1531 Glasco Turnpike",
      "owner_net": -558.31,
      "errors": 0,
      "warnings": 2,
      "hold": false
    },
    {
      "property": "156 Lauren Tice Rd.",
      "owner_net": -250.0,
      "errors": 0,
      "warnings": 0,
      "hold": false
    },
    {
      "property": "214 Goat Hill Road",
      "owner_net": -842.6,
      "errors": 0,
      "warnings": 4,
      "hold": false
    },
    {
      "property": "263 Boice Mill Rd",
      "owner_net": 1519.64,
      "errors": 0,
      "warnings": 10,
      "hold": false
    },
    {
      "property": "34 Sesame St.",
      "owner_net": 582.36,
      "errors": 2,
      "warnings": 2,
      "hold": true
    },
    {
      "property": "342 Upper Cherrytown Rd",
      "owner_net": 2539.23,
      "errors": 0,
      "warnings": 6,
      "hold": false
    },
    {
      "property": "365 Hommelville Road",
      "owner_net": 1259.62,
      "errors": 0,
      "warnings": 3,
      "hold": false
    },
    {
      "property": "45 Charles Hommel Rd",
      "owner_net": -245.52,
      "errors": 0,
      "warnings": 8,
      "hold": false
    },
    {
      "property": "491 Wilhelm Rd",
      "owner_net": 4111.09,
      "errors": 1,
      "warnings": 3,
      "hold": true
    },
    {
      "property": "578 Terrace Mountain Rd.",
      "owner_net": 5792.48,
      "errors": 0,
      "warnings": 0,
      "hold": false
    }
  ],
  "per_property": {
    "12 Blackberry Drive": {
      "address": "12 Blackberry Drive",
      "config_key": "12 blackberry",
      "model": "standard",
      "rate": 0.25,
      "flags": [
        {
          "severity": "info",
          "type": "commission_ok",
          "detail": "Commission $870.95 verified (csv). base = gross(4425.50) - channel(941.71) - cleaning(0)"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Laundry",
          "amount": 64.07,
          "detail": "Statement expense not found in Airtable: 'Laundry' $64.07"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Hot Tub Service",
          "amount": 75.0,
          "detail": "Statement expense not found in Airtable: 'Hot Tub Service' $75.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Supplies - Hot tub towels (4-pack), full-size sheets (2-pack), queen pillows (2), king pillows (4), washcloths (12-pack)",
          "amount": 175.0,
          "detail": "Statement expense not found in Airtable: 'Supplies - Hot tub towels (4-pack), full-size sheets (2-pack), queen pillows (2), king pillows (4), washcloths (12-pack)' $175.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Hot Tub Drain/Refill",
          "amount": 350.0,
          "detail": "Statement expense not found in Airtable: 'Hot Tub Drain/Refill' $350.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Laundry",
          "amount": 92.38,
          "detail": "Statement expense not found in Airtable: 'Laundry' $92.38"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Owner stays cleaning",
          "amount": 275.0,
          "detail": "Statement expense not found in Airtable: 'Owner stays cleaning' $275.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Laundry",
          "amount": 52.0,
          "detail": "Statement expense not found in Airtable: 'Laundry' $52.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Laundry",
          "amount": 62.19,
          "detail": "Statement expense not found in Airtable: 'Laundry' $62.19"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Laundry",
          "amount": 52.0,
          "detail": "Statement expense not found in Airtable: 'Laundry' $52.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "February deficient balance",
          "amount": 1402.17,
          "detail": "Statement expense not found in Airtable: 'February deficient balance' $1402.17"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [],
      "commission_stated": 870.95,
      "commission_calc": 870.95,
      "pm_fee_stated": 250.0,
      "total_expenses": 2599.81,
      "owner_net": -236.97,
      "reservation_count": 5,
      "expense_count": 10,
      "commission_method": "csv"
    },
    "132 Irish Cape Road": {
      "address": "132 Irish Cape Road",
      "config_key": "132 irish cape",
      "model": "standard",
      "rate": 0.25,
      "flags": [
        {
          "severity": "error",
          "type": "commission_mismatch",
          "stated": 830.22,
          "expected": 964.99,
          "diff": -134.77,
          "pct_off": 13.965947833656307,
          "detail": "Commission mismatch: stated $830.22, expected $964.99 (13.97% off). base = gross(4694.75) - channel(834.78) - cleaning(0)"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Hot tub service",
          "amount": 75.0,
          "detail": "Statement expense not found in Airtable: 'Hot tub service' $75.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Shock defoamer test strips",
          "amount": 76.45,
          "detail": "Statement expense not found in Airtable: 'Shock defoamer test strips' $76.45"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Hot tub service and cover install",
          "amount": 115.0,
          "detail": "Statement expense not found in Airtable: 'Hot tub service and cover install' $115.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Hot Tub",
          "amount": 85.0,
          "detail": "Statement expense not found in Airtable: 'Hot Tub' $85.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Toilet paper, paper towel, trash bags, sponges",
          "amount": 84.72,
          "detail": "Statement expense not found in Airtable: 'Toilet paper, paper towel, trash bags, sponges' $84.72"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Hot tub replacement clips",
          "amount": 10.25,
          "detail": "Statement expense not found in Airtable: 'Hot tub replacement clips' $10.25"
        },
        {
          "severity": "warning",
          "type": "vague_description",
          "description": "Hot Tub",
          "detail": "Vague \u2014 needs scope of work: 'Hot Tub'"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [],
      "commission_stated": 830.22,
      "commission_calc": 964.99,
      "pm_fee_stated": 175.0,
      "total_expenses": 446.42,
      "owner_net": 1869.23,
      "reservation_count": 7,
      "expense_count": 6,
      "commission_method": "csv"
    },
    "150 Trailside Rd": {
      "address": "150 Trailside Rd",
      "config_key": "150 trailside",
      "model": "wanderwood",
      "rate": 0.25,
      "flags": [
        {
          "severity": "info",
          "type": "commission_ok",
          "detail": "Commission $1494.39 verified (csv). Wanderwood: base = room_gross(7011.00) - channel_fees(1033.46); cleaning excluded"
        },
        {
          "severity": "info",
          "type": "model_note",
          "detail": "Wanderwood: verify cleaning fees NOT included in commission base"
        },
        {
          "severity": "error",
          "type": "pm_fee_mismatch",
          "stated": 250.0,
          "expected": 0.0,
          "detail": "PM Fee stated $250.00, expected $0"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Measure living room and deck",
          "amount": 75.0,
          "detail": "Statement expense not found in Airtable: 'Measure living room and deck' $75.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Garbage pickup, 10 bags",
          "amount": 50.0,
          "detail": "Statement expense not found in Airtable: 'Garbage pickup, 10 bags' $50.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Unclog Toilet",
          "amount": 100.0,
          "detail": "Statement expense not found in Airtable: 'Unclog Toilet' $100.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Wood for fireplace",
          "amount": 20.0,
          "detail": "Statement expense not found in Airtable: 'Wood for fireplace' $20.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Wood for fireplace",
          "amount": 20.0,
          "detail": "Statement expense not found in Airtable: 'Wood for fireplace' $20.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Garbage pickup, 6 bags",
          "amount": 30.0,
          "detail": "Statement expense not found in Airtable: 'Garbage pickup, 6 bags' $30.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Salted decks and stairs",
          "amount": 50.0,
          "detail": "Statement expense not found in Airtable: 'Salted decks and stairs' $50.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Garbage pickup, 8 bags",
          "amount": 40.0,
          "detail": "Statement expense not found in Airtable: 'Garbage pickup, 8 bags' $40.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Garbage pickup, 6 bags",
          "amount": 30.0,
          "detail": "Statement expense not found in Airtable: 'Garbage pickup, 6 bags' $30.00"
        },
        {
          "severity": "warning",
          "type": "vague_description",
          "description": "Unclog Toilet",
          "detail": "Vague \u2014 needs scope of work: 'Unclog Toilet'"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [],
      "commission_stated": 1494.39,
      "commission_calc": 1494.39,
      "pm_fee_stated": 250.0,
      "total_expenses": 415.0,
      "owner_net": 5618.15,
      "reservation_count": 3,
      "expense_count": 9,
      "commission_method": "csv"
    },
    "1531 Glasco Turnpike": {
      "address": "1531 Glasco Turnpike",
      "config_key": "1531 glasco",
      "model": "standard",
      "rate": 0.2,
      "flags": [
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Supplies - Paper towels, hand soap, kitchen sponges",
          "amount": 48.31,
          "detail": "Statement expense not found in Airtable: 'Supplies - Paper towels, hand soap, kitchen sponges' $48.31"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Owner stay clean",
          "amount": 260.0,
          "detail": "Statement expense not found in Airtable: 'Owner stay clean' $260.00"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [
        {
          "type": "commission_unverifiable",
          "detail": "Cannot verify commission \u2014 no reservation data. Stated: $0.00. no reservation data available \u2014 manual check required"
        }
      ],
      "commission_stated": 0.0,
      "commission_calc": 0.0,
      "pm_fee_stated": 250.0,
      "total_expenses": 308.31,
      "owner_net": -558.31,
      "reservation_count": 0,
      "expense_count": 2,
      "commission_method": "unknown"
    },
    "156 Lauren Tice Rd.": {
      "address": "156 Lauren Tice Rd.",
      "config_key": "156 lauren tice",
      "model": "lauren_tice",
      "rate": 0.25,
      "flags": [
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [
        {
          "type": "commission_unverifiable",
          "detail": "Cannot verify commission \u2014 no reservation data. Stated: $0.00. no reservation data available \u2014 manual check required"
        }
      ],
      "commission_stated": 0.0,
      "commission_calc": 0.0,
      "pm_fee_stated": 250.0,
      "total_expenses": 0.0,
      "owner_net": -250.0,
      "reservation_count": 0,
      "expense_count": 0,
      "commission_method": "unknown"
    },
    "214 Goat Hill Road": {
      "address": "214 Goat Hill Road",
      "config_key": "214 goat hill",
      "model": "standard",
      "rate": 0.2,
      "flags": [
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Trash Pick Up",
          "amount": 75.6,
          "detail": "Statement expense not found in Airtable: 'Trash Pick Up' $75.60"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Well Bacteria Test for Town Permit, Town Inspection",
          "amount": 189.0,
          "detail": "Statement expense not found in Airtable: 'Well Bacteria Test for Town Permit, Town Inspection' $189.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Saugerties Town Permit Fee",
          "amount": 175.0,
          "detail": "Statement expense not found in Airtable: 'Saugerties Town Permit Fee' $175.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Propane tank refill (Firepit & BBQ)",
          "amount": 153.0,
          "detail": "Statement expense not found in Airtable: 'Propane tank refill (Firepit & BBQ)' $153.00"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [
        {
          "type": "commission_unverifiable",
          "detail": "Cannot verify commission \u2014 no reservation data. Stated: $0.00. no reservation data available \u2014 manual check required"
        }
      ],
      "commission_stated": 0.0,
      "commission_calc": 0.0,
      "pm_fee_stated": 250.0,
      "total_expenses": 592.6,
      "owner_net": -842.6,
      "reservation_count": 0,
      "expense_count": 4,
      "commission_method": "unknown"
    },
    "263 Boice Mill Rd": {
      "address": "263 Boice Mill Rd",
      "config_key": "263 boice mill",
      "model": "model_a",
      "rate": 0.2,
      "flags": [
        {
          "severity": "info",
          "type": "commission_ok",
          "detail": "Commission $322.60 verified (csv). base = gross(2180.21) - channel_fees(567.22)"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Cleaning",
          "amount": 250.0,
          "detail": "Statement expense not found in Airtable: 'Cleaning' $250.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Cleaning",
          "amount": 250.0,
          "detail": "Statement expense not found in Airtable: 'Cleaning' $250.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Cleaning",
          "amount": 250.0,
          "detail": "Statement expense not found in Airtable: 'Cleaning' $250.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Cleaning",
          "amount": 250.0,
          "detail": "Statement expense not found in Airtable: 'Cleaning' $250.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Cleaning",
          "amount": 250.0,
          "detail": "Statement expense not found in Airtable: 'Cleaning' $250.00"
        },
        {
          "severity": "warning",
          "type": "vague_description",
          "description": "Cleaning",
          "detail": "Vague \u2014 needs scope of work: 'Cleaning'"
        },
        {
          "severity": "warning",
          "type": "vague_description",
          "description": "Cleaning",
          "detail": "Vague \u2014 needs scope of work: 'Cleaning'"
        },
        {
          "severity": "warning",
          "type": "vague_description",
          "description": "Cleaning",
          "detail": "Vague \u2014 needs scope of work: 'Cleaning'"
        },
        {
          "severity": "warning",
          "type": "vague_description",
          "description": "Cleaning",
          "detail": "Vague \u2014 needs scope of work: 'Cleaning'"
        },
        {
          "severity": "warning",
          "type": "vague_description",
          "description": "Cleaning",
          "detail": "Vague \u2014 needs scope of work: 'Cleaning'"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [],
      "commission_stated": 322.6,
      "commission_calc": 322.6,
      "pm_fee_stated": 0.0,
      "total_expenses": 1250.0,
      "owner_net": 1519.64,
      "reservation_count": 5,
      "expense_count": 5,
      "commission_method": "csv"
    },
    "34 Sesame St.": {
      "address": "34 Sesame St.",
      "config_key": "34 sesame",
      "model": "standard",
      "rate": 0.25,
      "flags": [
        {
          "severity": "info",
          "type": "commission_ok",
          "detail": "Commission $344.12 verified (csv). base = gross(1441.32) - channel(64.84) - cleaning(0)"
        },
        {
          "severity": "error",
          "type": "owner_stay_clean_mismatch",
          "stated": 150.0,
          "expected": 200.0,
          "detail": "Owner stay cleaning fee: stated $150.00, expected $200"
        },
        {
          "severity": "error",
          "type": "owner_stay_clean_mismatch",
          "stated": 150.0,
          "expected": 200.0,
          "detail": "Owner stay cleaning fee: stated $150.00, expected $200"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Owner stay clean",
          "amount": 150.0,
          "detail": "Statement expense not found in Airtable: 'Owner stay clean' $150.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Owner stay clean",
          "amount": 150.0,
          "detail": "Statement expense not found in Airtable: 'Owner stay clean' $150.00"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [],
      "commission_stated": 344.12,
      "commission_calc": 344.12,
      "pm_fee_stated": 150.0,
      "total_expenses": 300.0,
      "owner_net": 582.36,
      "reservation_count": 3,
      "expense_count": 2,
      "commission_method": "csv"
    },
    "342 Upper Cherrytown Rd": {
      "address": "342 Upper Cherrytown Rd",
      "config_key": "342 upper cherry",
      "model": "model_b",
      "rate": 0.1,
      "flags": [
        {
          "severity": "info",
          "type": "commission_ok",
          "detail": "Commission $293.56 verified (csv). base = gross(3597.08) - channel_fees(661.53)"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Supplies - vinegar",
          "amount": 12.99,
          "detail": "Statement expense not found in Airtable: 'Supplies - vinegar' $12.99"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Supplies - Flat sheet, fitted sheet. Fire starter squares, wash cloths, all purpose cleaner, pillow cases, duvet cover, kitchen sponge, paper towels, soap pads, olive oil",
          "amount": 305.01,
          "detail": "Statement expense not found in Airtable: 'Supplies - Flat sheet, fitted sheet. Fire starter squares, wash cloths, all purpose cleaner, pillow cases, duvet cover, kitchen sponge, paper towels, soap pads, olive oil' $305.01"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Duvet and Fitted Sheet",
          "amount": 151.37,
          "detail": "Statement expense not found in Airtable: 'Duvet and Fitted Sheet' $151.37"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "HVAC filter replacement",
          "amount": 50.0,
          "detail": "Statement expense not found in Airtable: 'HVAC filter replacement' $50.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Flat Sheet",
          "amount": 21.19,
          "detail": "Statement expense not found in Airtable: 'Flat Sheet' $21.19"
        },
        {
          "severity": "warning",
          "type": "vague_description",
          "description": "Flat Sheet",
          "detail": "Vague \u2014 needs scope of work: 'Flat Sheet'"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [],
      "commission_stated": 293.56,
      "commission_calc": 293.56,
      "pm_fee_stated": 0.0,
      "total_expenses": 540.56,
      "owner_net": 2539.23,
      "reservation_count": 5,
      "expense_count": 5,
      "commission_method": "csv"
    },
    "365 Hommelville Road": {
      "address": "365 Hommelville Road",
      "config_key": "365 hommelville",
      "model": "standard",
      "rate": 0.25,
      "flags": [
        {
          "severity": "info",
          "type": "commission_ok",
          "detail": "Commission $599.92 verified (csv). base = gross(2959.20) - channel(559.51) - cleaning(0)"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Replaced HVAC air filter, shovel snow, replaced bathroom shower head",
          "amount": 165.0,
          "detail": "Statement expense not found in Airtable: 'Replaced HVAC air filter, shovel snow, replaced bathroom shower head' $165.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Supplies - Laundry detergent, Dishwasher pods, clorox, wand refills, paper towels",
          "amount": 92.77,
          "detail": "Statement expense not found in Airtable: 'Supplies - Laundry detergent, Dishwasher pods, clorox, wand refills, paper towels' $92.77"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Hand soap/body wash refill, 1 gal",
          "amount": 32.38,
          "detail": "Statement expense not found in Airtable: 'Hand soap/body wash refill, 1 gal' $32.38"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [],
      "commission_stated": 599.92,
      "commission_calc": 599.92,
      "pm_fee_stated": 250.0,
      "total_expenses": 290.15,
      "owner_net": 1259.62,
      "reservation_count": 5,
      "expense_count": 3,
      "commission_method": "csv"
    },
    "45 Charles Hommel Rd": {
      "address": "45 Charles Hommel Rd",
      "config_key": "45 charles hommel",
      "model": "standard",
      "rate": 0.25,
      "flags": [
        {
          "severity": "info",
          "type": "commission_ok",
          "detail": "Commission $140.93 verified (csv). base = gross(799.20) - channel(235.48) - cleaning(0)"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Removed old mattress and replace, shovel snow, tree removal",
          "amount": 150.0,
          "detail": "Statement expense not found in Airtable: 'Removed old mattress and replace, shovel snow, tree removal' $150.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Supplies - paper towels",
          "amount": 10.25,
          "detail": "Statement expense not found in Airtable: 'Supplies - paper towels' $10.25"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Plumber visit toilet/bath",
          "amount": 204.12,
          "detail": "Statement expense not found in Airtable: 'Plumber visit toilet/bath' $204.12"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "STR Inspection",
          "amount": 50.0,
          "detail": "Statement expense not found in Airtable: 'STR Inspection' $50.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Mail Drop",
          "amount": 30.0,
          "detail": "Statement expense not found in Airtable: 'Mail Drop' $30.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Postage",
          "amount": 23.94,
          "detail": "Statement expense not found in Airtable: 'Postage' $23.94"
        },
        {
          "severity": "warning",
          "type": "vague_description",
          "description": "STR Inspection",
          "detail": "Vague \u2014 needs scope of work: 'STR Inspection'"
        },
        {
          "severity": "warning",
          "type": "vague_description",
          "description": "Mail Drop",
          "detail": "Vague \u2014 needs scope of work: 'Mail Drop'"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [],
      "commission_stated": 140.93,
      "commission_calc": 140.93,
      "pm_fee_stated": 200.0,
      "total_expenses": 468.31,
      "owner_net": -245.52,
      "reservation_count": 3,
      "expense_count": 6,
      "commission_method": "csv"
    },
    "491 Wilhelm Rd": {
      "address": "491 Wilhelm Rd",
      "config_key": "491 wilhelm",
      "model": "hybrid",
      "rate": 0.25,
      "flags": [
        {
          "severity": "error",
          "type": "commission_mismatch",
          "stated": 858.82,
          "expected": 992.64,
          "diff": -133.82,
          "pct_off": 13.481221792392006,
          "detail": "Commission mismatch: stated $858.82, expected $992.64 (13.48% off). base = gross(4916.00) - channel_fees(945.43)"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Portable Space Heater",
          "amount": 96.28,
          "detail": "Statement expense not found in Airtable: 'Portable Space Heater' $96.28"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Fixed loose inside rails",
          "amount": 75.0,
          "detail": "Statement expense not found in Airtable: 'Fixed loose inside rails' $75.00"
        },
        {
          "severity": "warning",
          "type": "expense_not_in_airtable",
          "description": "Emergency Service Call - No Hot Water, Resolved - Depleted Water Heater",
          "amount": 298.08,
          "detail": "Statement expense not found in Airtable: 'Emergency Service Call - No Hot Water, Resolved - Depleted Water Heater' $298.08"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [],
      "commission_stated": 858.82,
      "commission_calc": 992.64,
      "pm_fee_stated": 250.0,
      "total_expenses": 469.36,
      "owner_net": 4111.09,
      "reservation_count": 7,
      "expense_count": 3,
      "commission_method": "csv"
    },
    "578 Terrace Mountain Rd.": {
      "address": "578 Terrace Mountain Rd.",
      "config_key": "578 terrace",
      "model": "standard",
      "rate": 0.2,
      "flags": [
        {
          "severity": "info",
          "type": "commission_ok",
          "detail": "Commission $1448.12 verified (csv). base = gross(7663.79) - channel(423.19) - cleaning(0)"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "firewood",
          "detail": "Seasonal service may be expected this month: firewood"
        },
        {
          "severity": "info",
          "type": "expected_seasonal",
          "service": "plowing",
          "detail": "Seasonal service may be expected this month: plowing"
        }
      ],
      "needs_review": [],
      "commission_stated": 1448.12,
      "commission_calc": 1448.12,
      "pm_fee_stated": 0.0,
      "total_expenses": 0.0,
      "owner_net": 5792.48,
      "reservation_count": 1,
      "expense_count": 0,
      "commission_method": "csv"
    }
  },
  "needs_review": [
    {
      "address": "1531 Glasco Turnpike",
      "type": "commission_unverifiable",
      "detail": "Cannot verify commission \u2014 no reservation data. Stated: $0.00. no reservation data available \u2014 manual check required"
    },
    {
      "address": "156 Lauren Tice Rd.",
      "type": "commission_unverifiable",
      "detail": "Cannot verify commission \u2014 no reservation data. Stated: $0.00. no reservation data available \u2014 manual check required"
    },
    {
      "address": "214 Goat Hill Road",
      "type": "commission_unverifiable",
      "detail": "Cannot verify commission \u2014 no reservation data. Stated: $0.00. no reservation data available \u2014 manual check required"
    }
  ],
  "validation": {
    "skill": "owner-statement-qa",
    "started_at": "2026-04-29T03:41:23.714309+00:00",
    "checks_run": [
      "csvs_discovered",
      "qa_validator_ran"
    ],
    "summary": {
      "errors": 0,
      "warnings": 2,
      "info": 2
    },
    "findings": [
      {
        "severity": "info",
        "code": "MONTH_RESOLVED",
        "message": "Validating 2026-03 (13 property statements found)",
        "context": {
          "month": "2026-03",
          "csv_count": 13
        }
      },
      {
        "severity": "warning",
        "code": "STATEMENT_ERRORS",
        "message": "5 error-severity finding(s) across 13 statements",
        "context": {
          "count": 5
        }
      },
      {
        "severity": "info",
        "code": "STATEMENT_WARNINGS",
        "message": "65 warning-severity finding(s) \u2014 review the .md interactive flow",
        "context": {}
      },
      {
        "severity": "warning",
        "code": "PAYOUT_HOLDS",
        "message": "4 property statement(s) flagged HOLD (errors block payout)",
        "context": {
          "properties": [
            "132 Irish Cape Road",
            "150 Trailside Rd",
            "34 Sesame St.",
            "491 Wilhelm Rd"
          ]
        }
      }
    ]
  }
}