Extracted from ../../other/migration-benchmark.md.


  • v0.1 — Placeholder created during gap-analysis pass; awaiting Benchmark_Editable DB
  • v1.0POPULATED — comprehensive schema review complete:
    • §1: 150 Benchmark tables inventoried; 9 key domains identified (Projects, Items, Resources, Libraries, Codes, Subcontracting, Commercials, Audit)
    • §2: Entity mapping table populated with 15 major entity pairs + cardinality + transformation notes
    • §3: Field-level mapping completed for 13 key entities (project, project_item, item_library, resource_library, subcontractor_quote, etc.)
    • §4: 14 lost concepts identified and handled (spread mechanics → Rules, ranges → archive, currency variants → AUD, etc.)
    • §5: 8 new concepts requiring post-migration setup (Output Unit, Codes, Reference Rates, Anomaly Review, etc.)
    • §6: Data cleaning rules defined (unit mapping, duplicate resources, stale rates, orphaned records, plugged rates, variables, calculations)
    • §7: Cutover plan fleshed out with Alpha + Release phases, validation strategy, rollback procedure
    • §8: 8 open items documented for decision/clarification
  • v1.1 — Four key decisions locked in:
    • Code naming — Benchmark activity → oxFlow Workcentre (on Items); Benchmark cost_code → oxFlow Activity Code (on Resources). Two separate Code dimensions, aligned with Workbench naming.
    • Rate history — Migrated into oxFlow as archived Price Books with date-range scopes (not discarded, not in audit log only). Feeds Anomaly Review historical comparison (Release).
    • Monte Carlo ranges — Discarded. Consciously out of scope.
    • Output Unit — Sourced directly from Benchmark’s item unit field (typically defined).
    • Updated §2 mappings, §3.7 (resource_rate), §3.8 / §3.9 (Codes), §4 (Lost), §5 (New), §7 (Cutover), §8 (Open items).
  • v1.3 — Flag Catalog + Modifier Catalog model per Resource entity spec v0.3:
    • Benchmark Resource-level fields mapped to locked catalog model (admin-seeded, Lead Estimator editable)
    • Flags: 6 boolean fields (isplugged, iscartage, isgst, iscurrency, isexchlocked, donotinflate) → Flag Catalog entries
    • Modifiers: 5 numeric fields (factor, wastage, flagfall, mindistance, crewsize) → Modifier Catalog entries with math operations
    • Admin catalog seeding plan: use Benchmark field names & types as initial entries; migration script generates seed SQL
    • Updated §3.6 (RESOURCE_LIBRARY field mapping with explicit Flag/Modifier columns), §4 (removed false “lost concept” entries for cartage/factor/wastage), §5 (Flag + Modifier Catalog as new locked models)
  • v1.2 — Added plug_rate mapping per Item spec v0.3 update:
    • Benchmark project_item_rateonly (flag) + project_item_rateonlyamount (value) → oxFlow Item.plug_rate (nullable number)
    • When rateonly=‘Y’ and rateonlyamount is set, migrate to plug_rate; otherwise default to null
    • Item status auto-derived from Worksheet content (Priced if resources present, Plugged if plug_rate set)
    • Updated §3.3 (PROJECT_ITEM → ITEM mapping table)