{
  "file": "/assets/templates/net-worth-tracker-template.xlsx",
  "sha256": "d391a0c931dcef28f943e61c0822692798a724001c44d83d1978598c66720d14",
  "inspected_on": "2026-09-19",
  "inspection_scope": "The published XLSX was imported, formula-inspected and rendered with the workspace spreadsheet runtime. A disposable copy was opened and recalculated in LibreOffice. The published file was not edited.",
  "worksheets": [
    { "name": "Net Worth", "used_range": "A1:E38", "formula_count": 25 },
    { "name": "Monthly History", "used_range": "A1:E29", "formula_count": 24 },
    { "name": "Asset Allocation", "used_range": "A1:D8", "formula_count": 8 },
    { "name": "Instructions", "used_range": "A1:B37", "formula_count": 0 }
  ],
  "formula_count": 57,
  "chart_count": 2,
  "artifact_tool_check": {
    "result": "Passed with one importer limitation",
    "formula_count": 57,
    "formula_errors_found": 0,
    "rendered_sheets": ["Net Worth", "Monthly History", "Asset Allocation", "Instructions"],
    "charts_rendered": ["Net Worth Over Time", "Asset Allocation"],
    "importer_limit": "The table-value inspection returned null for formula cells even though formula inspection found the formulas and the rendered sheets calculated their displayed values. Formula text, rendered output and the independent LibreOffice check were therefore used together."
  },
  "recalculation_check": {
    "engine": "LibreOfficeDev 26.8.0.0.alpha0",
    "method": "A disposable copy was opened and saved once, then Checking Account current value C8 was changed from 3,500 to 4,500 in a second disposable copy and recalculated. The published download remained unchanged.",
    "expected_and_observed": [
      "Checking Account change E8 increased from 300 to 1,300.",
      "Total assets C25 increased from 454,000 to 455,000.",
      "Net worth C38 increased from 134,500 to 135,500.",
      "Net-worth change E38 increased from 4,700 to 5,700.",
      "All 57 formulas and both chart objects remained present; no formula error strings were found."
    ]
  },
  "native_google_sheets_check": {
    "verified_on": "2026-09-19",
    "source_sha256": "d391a0c931dcef28f943e61c0822692798a724001c44d83d1978598c66720d14",
    "converted": true,
    "scope": "The exact current Basic XLSX was converted into a private QA Google Sheet. The QA copy is not the public template.",
    "api_results": {
      "worksheet_count": 4,
      "worksheets": ["Net Worth", "Monthly History", "Asset Allocation", "Instructions"],
      "formula_count": 57,
      "formula_errors_found": 0,
      "chart_count": 2
    },
    "visual_round_trip_results": {
      "method": "The private QA Sheet was exported after conversion, then imported and rendered with the workspace spreadsheet runtime for comparison with the source XLSX.",
      "tables_rendered": ["Net Worth", "Monthly History", "Asset Allocation", "Instructions"],
      "formulas_recalculated": true,
      "chart_objects_present": 2,
      "chart_fidelity": false,
      "lost_labels": [
        "The Asset Allocation chart lost its legend text.",
        "The Monthly History chart lost its category labels."
      ]
    },
    "boundary": "The four tabs and 57 formulas survived conversion with no formula errors, and both chart objects remained. Visual round-trip comparison found lost chart labels, so users must verify or rebuild the allocation legend and monthly category labels. The private QA copy is not the public template. The older public Basic Google Sheet has three tabs and is a different artifact."
  },
  "observed_behavior": [
    "Asset and liability totals feed the net-worth result.",
    "Current and prior balances feed change calculations.",
    "Monthly History contains 24 net-worth formulas and a trend chart.",
    "Asset Allocation reads the asset rows and feeds a chart.",
    "The workbook contains fictional sample balances that must be replaced before personal use.",
    "Blank future Monthly History rows calculate net worth as zero, and the chart plots those zero values. Enter rows in order and do not interpret the unused future rows as observed history."
  ],
  "boundaries": [
    "The Basic workbook has no bank connection or live market-data feed.",
    "Mixed-currency balances must be converted to one reporting currency before entry.",
    "Monthly history is maintained manually.",
    "A representative recalculation passed in LibreOffice. This is not native Microsoft Excel certification and does not cover every possible edit.",
    "The exact XLSX converted to a private Google Sheets QA copy with four tabs, 57 formulas, no formula errors and two chart objects. Visual round-trip comparison found that the allocation legend text and monthly chart category labels were lost, so chart-label fidelity did not pass.",
    "The separate paid workbook was not inspected in this evidence record."
  ]
}
