Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Have it or don't by time period
  • Assumption - run report, everyone is always up to date with data, loading thru stat plan, data has been fixed in edit process, ask for 2021 data its there
  • Automated query cant tell if data is there, may have transax that haven't processed, dont know complete until someone says complete
  • Never in position to say "complete" due to late transax
  • If someone queries data on Dec 31, midday. not complete - transax occur that day but get loaded Jan 3 - never a time where it is "COMPLETE"
  • Time complete = when requested - 2 ways - 1 whenever Trav writes data, "data is good as of X date" metadata attached, Trav writes business rules for that date, OR business logic on extract "as long as date is one day earlier" = data valid as of transax written
  • Manual insertion - might not put more data in there, assume complete as of this date
  • Making req on Dec 31, may not have Dec data in there (might be Nov as of Dec 31)
  • Request itself - I have to have data up to this date - every query will have diff param, data it wants, cant say "I have data for all purposes as of this date"
  • 2 dates: 12/31 load date and the effective date of information (thru Nov 30)
  • Point - could use metadata about insertion OR the actual data, could use one, both or either
  • Data bi-temporal, need both dates, could do both or either, could say if Trv wrote data on Jan 3, assumption all thru 12/31 is good
  • May not be valid, mistake in a load, errors back and fixing it - need to assert MANUYALLY the data is complete as of a cert time
  • 3-4 days to load a months data, at the end of the job, some assertion as to when data is complete
  • most likely as this gets implemented it will be a job that does the loading, not someone attensting to data as of this date -where manual attestation becomes less valuable overe time
  • as loads written (biz rule, etc.) If we load on X date it is valid - X weeks, business rule, not manual attestation - maybe using last transax date is just as good - if Dec 31 is last tranx date, not valid yet - if Dec 31 is last transax date then Jan 1
  • Data for last year - build into system you cant have that for a month 
  • Start with MANUAL attestation and move towards automated
  • Data thru edit and used for SR, data trailing by 2 years
  • doesnt need to be trailing 
  • submission deadline to get data in within 2 years then reconciliation, these reports are trailing - uncomfortable with tis constraint
  • our ? is the data good, are we running up to this end date, not so much about initial transax than claims process
  • May have report that wants 2021 data in 2023 bug 2021 data updated in 2022
  • Attestation is rolling, constantly changing, edit package and sdma is not reconciliatioj it is business logic - doesnt have to be trailing
  • As loading data, whats the last date loaded, attestation date
  • sticky - go back x years a report might want, not sure you can attest to 
  • decoupling attestation from a given report (data current as of x date), 
  • everyting up to the date my attestation is up to date in the system
  • "Data is good through x date" not attesting to period
  • Monkey Wrench: Policy data, our data is good as of Mar 2022 all 2021 data is up to date BUT Loss (incurred and paid) could go 10 years into future
  • some should be Biz Logic built into extrat pattern - saying in HDS< good to what we know as of this date, not saying complete but "good to what we know" - if we want to dome somethign with EP, "I will only use data greater than X months old as policy evolves
  • Loss exposure - all losses resolved, 10 years ahead of date of assertion, as of this date go back 10 years
  • decouple this from any specific data call or stat report - on the report writer 
  • 2 assertion dates - one for policy vs one for claim
  • not saying good complete data, saying accurate to best of knowl knowledge at date x
  • only thing changing is loss side
  • saying data is accurate to this point in time, as of this date we dont have any claim transax on this policy as of this date
  • adding "comfort level" to extraction?  - when you req data you will not req for policies in last 5 years - but if i am eric, wants to und market, cares about attestation I can give in March

Exception Handling

  • Account for exception processing

...

  • am eric, wants to und market, cares about attestation I can give in March

Exception Handling

  • Account for exception processing
    • What is an exception? 
    • PA - loss & premium records, putting stat plan in JSON, older data didn't ask for VIN, some data fields optional
    • KS - exceptions can be expected, capturing & managing situations to be dealt qwith, not "happy path", need to have error codes and remediation steps, documentation for what they all mean and what to do about them (SDMA has internal to edit package) - things like "cant get it in edit package b/c file not correct", etc. - standard way of notifying exceptions throughout system, consistent, exception received and what to do about it
    • PA - ETL stuff, exceptions based on S&S topics, whats the generalize way to handle? or specific except cases?
    • KS - arch needs way to report and document and address/remediate exceptions (consistent, notifying, dealing)
    • PA - options: 
      • messaging format, 
      • db keeping log of all messages
      • hybrid approach of both
    • KS - immediate feedback and non-sequential (messaging or notification feedback)
    • JB - data loading transfer of data or into HDS? 
    • KS - data loading starts with intake file in current statplan format, ends when data in HDS
    • JB - lot of exceptions local to this process loading data, reported to anyone or resolved or level of implementation of who is reporting data,
    • KS - some user interface, allows you to load a file and provide feedback, but a lot is asynchronous, no feedback from UI
    • JB - gen approach to be shared across 
    • KS - consistent way to handle across system (sync/asynch, UI vs notification)
    • PA - 2 lambda funct loaded in, 2 S&S topics (1 topic per lambda), seems like nice granular feedback, as we get more lambdas throughout node would be unweildy, master topic to subscribe to resources
    • KS - too deep for now
    • PA - one general exception thread or thing to subscribe to, get large amount of exceptions as opposed to making the QA team to ind subscribe to each resource (some kind of groupings?) - lot of components throwing exceptions and dont want to sub to each component 
    • KS - do we want to audit exceptions? Likes/Unlikes, Consents, etc. - are there exceptions we want that to be captured on ledger or somewhere to be audited later?
    • PA - consent to data call and dont have data required that should be recorded/captured/to chain, etc. (consented to participate and no data)
    • KS - funct in exception handling, getting close to NFR (disaster recovery, continuity, reacting to scalability, etc.) need to get there at some point - digging deeper, specific exceptions will have different decisions 

Metrics/Reporting (process)

  • KS - Within Data Loading, Feedback (status, presence) on what is loaded, # of records, total premiums
  • DH - by line of business, record counts, premiums, paid losses, incurred losses, significant metrics and claim count
  • KS - SDMA good example, same as SDMA provides (DH says yes)
  • DH - maintaining 5% tolerance ? then we need to know if within tolerance AND where they are relative to tolerance
  • KS - tolerance here is a load thing - amount puot into system (5%), but you can load pieces, certain amounts, going back to report based tolerance, cant determine here  - data loaded for last month or quarter - some time period of loaded data calculating tolerance for AND could be multiple loads
  • DH - requirement could be "must be in tolerance" and combination of loads must be within tolerance
  • KS - want to go back and check tolerance across a time period
  • DH - or a counter that looks at aggregate tolerance over periods of time (calendar year? quarter? month?) - could be continuous
  • KS - and know when to do that counter - editing before gets to HDS, clarify? should not get error records in HDS
  • DH - you might, if within tolerance? theoretically you wouldn't but practivally you will - always have bad zip codes or edits, but minimal in scope and a resource constraint to fix every single record
  • KS - if i had a bad zip, why in HDS being queried? might be valid in other ways but is that how we want to work?
  • DH - do you delete whole record?
  • KS - not based on zip CAN use but based on zip CANT? pretty complicated - what does SDMA do? not passing thru error records to data lake
  • PA - to follow up with Andy, gut feeling still passing, not eliminating rows
  • DH - deleting rows = out of balance 
  • DR - how do we know wrong but not know right zip code?
  • PA - situation where zipcode featured in wrong state (NC in CT) trigger an error event
  • KS - are there some errors we let through b/c a report WONT break? Iffy
  • DR - some automated loading tooling that would prevent from happening, pre-edit package, Carriers may need to inc downstream, if we know it is wrong, it might be ok - HDS is not the one use case (know stat reporting ok), might not be used or below threshold, but if there is a different use case cant make that assumption errors are ok - goal accurate to best of knowledge, if obvs wrong attempt to fix it
  • DH - logistical nightmare, errors cant fix b/c not getting data, valid limit but only on a few records wont pass edit - maybe on HDS a flag "this record did/did not pass edit"
  • KS - IBM thought about this, initially built braindead vers of transform, loading errors into record, put into HDS, and could have records that were self-descriptive of what errors and then up to Extract Pattern to decide
  • DR - if something fails edit package, missing or wrong, could make all missing, all null, if null pattern doesn't have to know - if a record is accurate to one limit field and set to null, wont pass edit package and parser will decide "cant use" w/o metatdata assoc with it - cleaner than playing game of "data is wrong but lets say whats wrong so others can use it" - too complicated
  • KS - "null" is valuable in some cases, error vs value situation
  • DR - trying to put logic on data call extract vs db, isn't always an error and data call should decide if it needs it, shouldnt matter to data call, why matter if not there - put logic onto extract pattern than HDS - wrong or missing
  • JB - conflicts b/w "state and zipcode" - needs some resolution to fix something (inconsistency)
  • KS - hybrid approach - load errors into records and ignore if they dont matter, could bloat things
  • DR - build funct on bloat and bloat becomes feature
  • PA pass or not-pass?
  • KS - loss of fidelity, all use cases for reading data not known, one is fine other is bad, need extract pattern, if null not use record
  • PA - minimum amt of edit package everything should pass?
  • KS - no, doesn't sound like it -
  • DR - didn't pass edit package could wortk in cert cases, but zip code is perfect ex: which is right? know use cases in stat report, up to 5% iffy, would work but dsoesnt scale with other use cases, flags help at record level only, a use case could say "ill accept b/ it is 5%" - need to know what error is 
  • KS - we can have arch bloat and as we learn if this bloat has value we can remove or not - shrink arch to assume null, disciplined to revist this (record-level errors), 
  • DR - record level error, limit to that, boolean, simple, just do record leveling and no further is reasonable approach (stat reporing on day 1, allows others to build more funct on openIDL and allows carriers to build knowing it is there)
  • Dh - some errors more imp than others, zipcode not important for some reports, nature of error, dont know higher level of error coding, if you need to get too geo specific, this record wont work but looking at general, then perhaps it might - rather than not using record at all it makes it more complicated
  • DR - use cases, for other data calls maybe its ok for what that datq call is doing, 90% of records saying "no issues" thats a call for data call to make, put complexity on writers, maybe moot but on day1, let people know some aren't quite perfect - there will be more fine-grained for the carriers, will see more clearly results of the edit package - keep to simple flag
  • KS - simple approach now doesn't obviate the use of the more fine-grain later, if we find it is imp to know the error is the zipcode and x doesn't want to use it we can go back to data and add errors later
  • DR - carrier decision, hold it as data req for HDS, later req could be added (optional or mandatory) "you could add metadata about exceptions" and theat might obviate need for remediation - DH aware - this is rep of downstream system of record
  • DH - systemic issues we fix, these are one-off
  • DR - hard, one-off issues = one-off corrections (data entry error) and not directly impacting admin of policy or claims, hard sell to always clean up, dont want HDS out of sync with system of reocrd and dont wand SoR spammed with error cleanup and affectig ops
  • KS - threshold? everything goes through even with error can enter HDS?
  • DR - ideal world depends on data users (whats acceptable) but we could say at minimum whats most imp 
  • DH - functiioon where run through edit package and where we can fix some errors (what they can) to get within tolerance, run thru edit package to pass edits
  • KS - not sys of record, result of fixing stuff in source systems and getting them out, have to get into and then back o ut of source systems
  • DH - we make edit changes in SDMA today, not going back to source system
  • KS - out of sync between SDMA and source system, hds doesn't match
  • DH - edit correction, then yes not match source systems
  • DR - get in trouble, modifying HDS for one deliverable, might be ok, but harder to use HDS as source of truth, not accurate compared to source systems, if you need to do it that way tread HDS as source of truth and push corrections downstream - HDS accurate rep of downstream systems, but if most corrections/edits not in source of truth makes sense to push edit funct into HDS and  there can be edits on data call or extract pattern - could execute extractpattern ourselves to test - if EP exists, references edit package, doesn't mean running EP in parallel as needed to correct things, correcting NOT at the source but in this method, simpleifies architecture, if HDS is dumb source of truth, complexity goes to EP, say EP is stat report and says "6% problems, out of tolerance", if we know and can run that see out of tolerance and fix some things in ephemeral data store to move INTO tolerance, point to alt locations in EP
  • KS - dont those locations needed by other EPs? loss report that needs those fixes?
  • JB - some errors fix at the source, biz decision for the carrier 
  • DR - fixed today might be source of truth next week, dont want to keep track of error fixes you did, some might have been fixed in changes to the policy, dont need to fix downstream anymore, make tooling correct to see tolerance and adjustments thru UI, whatever gives flexibility and business decision to see why OR really 1-offs and no systemic fix or fix wont happen in a year - vis to see problems and made decsion to change - simplifies getting right, HDS reps source of truth and working on marquee use case (stat reporting), slightly more complex with interim edited data store (div-ing vs full replica)
  • KS - HDS in sync with systems and overlay of edits visible to EPs, but not durable not permanent - exists as a temp thing
  • JB - diff patterns, diff things, replicating corrections?
  • DR - complexity of EP to solve
  • JB - record of what errors were in HDS could choose to deal or not, having a copy of HDS knows records with errors, maybe/maybe not addressed
  • DR - sometimes you need to make changes to get to threshold, just recording doesn't help, changes in plance now HDS doesn't rep core systems (state maangement prob of ANOTHER source of truth)
  • JB - if errors that significant must fix?
  • DH - might be system issue that needs to get fixed
  • KS - do a record level (fix-record), discuss later, better to have record have a fixed version, here's what we got and the fixes to it, simple to see, diff way to do what dr was describing
  • DR - could do "foreign key" to fixed record, db arch instead of flag
  • DH fix record ONCE
  • DR could get lots and lots of those, based on EP, 13 columns of foreign keys, could spiral, some state management, source of truth changed and now core record changed to do we need to link edit package...
  • JB if small p% has errors, 
  • DR - depends in ephermeral or not, tooling to fix errors automatically, read data, modify, fix, kill
  • KS - ephemerility - how ephemeral or length of time ephemeral
  • DR - time prob - 2 months doesnt work, 2 min 2 days maybe
  • KS - i have fixes to rec, will fix downstream systems, do we need a re-run?
  • DR - seperation of concerns is important, logic data, look for speciific field, linked table - now messing with core system to deal with corner cases 
  • KS - not corner case, know records will be messed up and fixed at HDS, things exist
  • DR - how many times will we do edits outside Sys of Rec for data calls
  • DH - dont, no edit package on data calls
  • DR - never on data calls?
  • KS - on the load
  • DH - look for reasonability, dont have edit package to make sure interrelationship of edits is sound
  • KS - this system, edit package on all data you load
  • DR - go two ways, proliferation of edit records, pointing to diff versions of records, could hold like "ONE only ONE edit record, option of querying that or not depending on use case, dep on database design could be problematic
  • KS - could design away with "views", if have a view 

Data Catalog (meta data about whats in the db - some notion of whats available currently)

...

ID

Tenet

1Data will be loaded in a timely manner as it becomes available.
2HDS will track the most recent date that is available to query for pre and post edit package data.
3Data owners will correct any mistakes as soon as they are made aware of the issue. 
4Data owners will follow current practices for logging policy and claim records as they do today. A new record will be created for each event. All records will be loaded in a timely manner after the creation event. 
5There will be a distinction between edited and unedited records. (Successfully gone thru edit package)

Non Functional Requirements (to be moved to requirements doc)

Notes:


Time

Item

Who

Notes